@Test
    public void poleIsPassed() throws SatNotFoundException {
        final TLE tle = new TLE(LEO_TLE);
        assertThat(tle.isDeepspace()).isFalse();

            final PassPredictor passPredictor = new PassPredictor(tle,
                    GROUND_STATION);
            DateTime cal = new DateTime(DATE_2009_01_05T07_00_00Z);

            boolean northFound = false;
            boolean southFound = false;

            for (int minute = 0; minute < 60 * 24 * 7; minute++) {
                final long startTime = cal.toDate().getTime();
                if (northFound && southFound) {
                    break;
                }
                final SatPassTime passTime = passPredictor.nextSatPass(cal
                        .toDate());
                final long endTime = passTime.getEndTime().getTime();
                final String polePassed = passTime.getPolePassed();
                if (!polePassed.equals(NONE)) {
                    if (!northFound && polePassed.equals(NORTH)) {
                        assertThat(String.format(STRING_PAIR, TZ_FORMAT
                                .format(passTime.getStartTime()),
                                polePassed)).isEqualTo("2009-01-05T07:42:45+0000, north");
                        northFound = true;

                        minute += (int) ((endTime - startTime) / 60000);
                    } else if (!southFound && polePassed.equals("south")) {
                        assertThat(String.format(STRING_PAIR, TZ_FORMAT
                                .format(passTime.getStartTime()),
                                polePassed)).isEqualTo("2009-01-06T07:03:20+0000, south");
                        southFound = true;

                        minute += (int) ((endTime - startTime) / 60000);
                    }
                }

                cal = cal.plusMinutes(minute);
            }
    }