Astro-satpass
view release on metacpan or search on metacpan
t/tle_pass_extra.t view on Meta::CPAN
is format_pass( $pass[6] ), <<'EOD', 'Pass 7';
2011/04/28 21:43:59 10.0 258.6 1309.6 lit rise
2011/04/28 21:44:48 13.9 244.5 1106.9 shdw shdw
2011/04/28 21:45:59 16.9 215.3 978.9 shdw max
2011/04/28 21:48:00 9.9 171.4 1309.0 shdw set
EOD
is format_pass( $pass[7] ), <<'EOD', 'Pass 8';
2011/04/29 20:32:50 10.0 272.4 1312.6 lit rise
2011/04/29 20:35:31 32.6 205.9 614.1 lit max
2011/04/29 20:36:43 22.6 160.3 805.6 shdw shdw
2011/04/29 20:38:11 10.0 139.9 1308.8 shdw set
EOD
is format_pass( $pass[8] ), <<'EOD', 'Pass 9';
2011/04/30 20:57:40 10.0 257.8 1310.6 lit rise
2011/04/30 20:59:38 16.5 215.4 995.9 lit max
2011/04/30 21:00:03 16.0 204.4 1012.0 shdw shdw
2011/04/30 21:01:35 10.0 173.2 1305.2 shdw set
EOD
is format_pass( $pass[9] ), <<'EOD', 'Pass 10';
2011/05/01 19:46:23 10.1 272.1 1309.5 lit rise
2011/05/01 19:49:02 31.8 206.8 624.9 lit max
2011/05/01 19:51:42 9.9 140.9 1309.4 lit set
EOD
# Purpose of test: Confirm that extremely short passes are reported
# reliably, and have their maximum elevations correctly calculated.
$sta = Astro::Coord::ECI->new(
name => 'Bogota',
)->geodetic(
deg2rad( 4.656370 ),
deg2rad( -74.117790 ),
46 / 1000,
);
$tle->set( horizon => deg2rad( 11 ), twilight => deg2rad( -3 ) );
@pass = ();
$offset = 34;
if ( eval {
@pass = $tle->pass(
$sta,
timegm( $offset, 0, 17, 13, 4, 111 ),
timegm( $offset, 0, 17, 20, 4, 111 ),
[ $moon ],
);
1;
} ) {
ok @pass == 7,
"Found 7 passes over Bogota at $offset sec after minute"
or diag "Found @{[ scalar @pass ]} passes over Bogota";
} else {
fail "Error in pass() method: $@";
}
is format_pass( $pass[0] ), <<'EOD', 'Pass 1';
2011/05/14 00:32:45 11.0 244.1 1237.5 lit rise
2011/05/14 00:33:11 11.3 234.9 1223.3 lit max
2011/05/14 00:33:39 11.0 225.1 1239.4 lit set
EOD
is format_pass( $pass[1] ), <<'EOD', 'Pass 2';
2011/05/14 23:19:14 11.1 319.6 1232.4 lit rise
2011/05/14 23:21:58 73.2 232.8 359.7 lit max
2011/05/14 23:24:43 10.9 149.4 1245.3 lit set
EOD
is format_pass( $pass[2] ), <<'EOD', 'Pass 3';
2011/05/15 23:45:28 11.0 237.6 1238.1 lit rise
2011/05/15 23:45:36 11.0 234.8 1236.9 lit max
2011/05/15 23:45:44 11.0 232.0 1238.3 lit set
EOD
is format_pass( $pass[3] ), <<'EOD', 'Pass 4';
2011/05/17 09:59:17 11.0 154.7 1236.0 lit rise
2011/05/17 10:00:38 13.9 125.1 1091.2 lit max
2011/05/17 10:01:59 11.0 95.5 1236.0 lit set
EOD
is format_pass( $pass[4] ), <<'EOD', 'Pass 5';
2011/05/18 10:21:25 11.1 217.9 1230.4 lit rise
2011/05/18 10:24:09 81.8 307.8 347.4 lit max
2011/05/18 10:26:53 11.0 33.4 1233.7 lit set
EOD
is format_pass( $pass[5] ), <<'EOD', 'Pass 6';
2011/05/19 09:11:21 11.0 155.1 1233.2 shdw rise
2011/05/19 09:12:10 13.4 138.2 1109.8 lit lit
2011/05/19 09:12:43 14.0 125.1 1084.3 lit max
2011/05/19 09:14:06 10.9 94.7 1237.1 lit set
EOD
is format_pass( $pass[6] ), <<'EOD', 'Pass 7';
2011/05/20 09:33:24 11.1 218.1 1230.7 shdw rise
2011/05/20 09:35:30 50.2 226.7 439.8 shdw apls
50.3 226.0 0.5 Moon
2011/05/20 09:35:31 50.6 226.9 437.4 lit lit
2011/05/20 09:36:08 81.0 307.4 347.6 lit max
2011/05/20 09:38:52 11.0 33.1 1233.7 lit set
EOD
# Purpose of test: Confirm that extremely short passes are reported
# reliably, and have their maximum elevations correctly calculated.
@pass = ();
$offset = 44;
if ( eval {
@pass = $tle->pass(
$sta,
timegm( $offset, 0, 17, 13, 4, 111 ),
timegm( $offset, 0, 17, 20, 4, 111 ),
[ $moon ],
);
1;
} ) {
ok @pass == 7,
"Found 7 passes over Bogota at $offset sec after minute"
or diag "Found @{[ scalar @pass ]} passes over Bogota";
} else {
fail "Error in pass() method: $@";
}
is format_pass( $pass[0] ), <<'EOD', 'Pass 1';
2011/05/14 00:32:45 11.0 244.1 1237.5 lit rise
2011/05/14 00:33:11 11.3 234.9 1223.3 lit max
2011/05/14 00:33:39 11.0 225.1 1239.4 lit set
EOD
is format_pass( $pass[1] ), <<'EOD', 'Pass 2';
2011/05/14 23:19:14 11.1 319.6 1232.4 lit rise
2011/05/14 23:21:58 73.2 232.8 359.7 lit max
2011/05/14 23:24:43 10.9 149.4 1245.3 lit set
EOD
is format_pass( $pass[2] ), <<'EOD', 'Pass 3';
2011/05/15 23:45:28 11.0 237.6 1238.1 lit rise
2011/05/15 23:45:36 11.0 234.8 1236.9 lit max
2011/05/15 23:45:44 11.0 232.0 1238.3 lit set
EOD
is format_pass( $pass[3] ), <<'EOD', 'Pass 4';
2011/05/17 09:59:17 11.0 154.7 1236.0 lit rise
2011/05/17 10:00:38 13.9 125.1 1091.2 lit max
2011/05/17 10:01:59 11.0 95.5 1236.0 lit set
EOD
is format_pass( $pass[4] ), <<'EOD', 'Pass 5';
2011/05/18 10:21:25 11.1 217.9 1230.4 lit rise
2011/05/18 10:24:09 81.8 307.8 347.4 lit max
2011/05/18 10:26:53 11.0 33.4 1233.7 lit set
EOD
is format_pass( $pass[5] ), <<'EOD', 'Pass 6';
2011/05/19 09:11:21 11.0 155.1 1233.2 shdw rise
2011/05/19 09:12:10 13.4 138.2 1109.8 lit lit
2011/05/19 09:12:43 14.0 125.1 1084.3 lit max
2011/05/19 09:14:06 10.9 94.7 1237.1 lit set
EOD
# Purpose of test: Confirm that appulses are correctly reported.
is format_pass( $pass[6] ), <<'EOD', 'Pass 7';
2011/05/20 09:33:24 11.1 218.1 1230.7 shdw rise
2011/05/20 09:35:30 50.2 226.7 439.8 shdw apls
50.3 226.0 0.5 Moon
2011/05/20 09:35:31 50.6 226.9 437.4 lit lit
2011/05/20 09:36:08 81.0 307.4 347.6 lit max
2011/05/20 09:38:52 11.0 33.1 1233.7 lit set
EOD
# Purpose of test: confirm that passes in progress at the beginning of
# the prediciton interval are correctly reported.
$sta = Astro::Coord::ECI->new(
name => 'Sao Paulo',
)->geodetic(
deg2rad( -23.55 ),
deg2rad( -46.6333333333333 ),
0,
);
( $tle ) = get_oid( '03597', @all_tle );
$tle->set( visible => 0 );
@pass = ();
$offset = 0;
if ( eval {
@pass = $tle->pass(
$sta,
timegm( $offset, 0, 12, 27, 4, 111 ),
timegm( $offset, 0, 13, 27, 4, 111 ),
[ $moon ],
);
1;
} ) {
ok @pass == 1,
"Found 1 pass of OAO 2 over Sao Paulo at $offset sec after minute"
or diag "Found @{[ scalar @pass ]} passes over Sao Paulo";
} else {
fail "Error in pass() method: $@";
}
is format_pass( $pass[0] ), <<'EOD', 'Pass 1 of OAO 2 over Sao Paulo';
2011/05/27 11:58:17 20.0 204.7 1678.3 day rise
2011/05/27 11:59:57 23.2 178.2 1545.7 day max
2011/05/27 12:01:38 20.0 151.4 1681.3 day set
t/tle_pass_extra.t view on Meta::CPAN
# the illumination.
( $tle ) = get_oid( '00733', @all_tle );
@pass = ();
$offset = 0;
if ( eval {
$tle->set( interval => 1 );
@pass = $tle->pass(
$sta,
timegm( $offset, 0, 14, 30, 4, 111 ),
timegm( $offset, 0, 16, 30, 4, 111 ),
[ $moon ],
);
1;
} ) {
ok @pass == 1,
"Found 1 pass of OID 00733 over Shanghai at $offset sec after minute"
or diag "Found @{[ scalar @pass ]} passes over Shanghai";
} else {
fail "Error in pass() method: $@";
}
is format_pass( $pass[0] ), <<'EOD', 'Pass 1 of OID 00733 over Shanghai';
2011/05/30 14:12:20 20.0 234.7 1759.9 shdw rise
2011/05/30 14:12:21 20.1 234.9 1757.1 shdw
2011/05/30 14:12:22 20.2 235.2 1754.2 shdw
2011/05/30 14:12:23 20.2 235.4 1751.3 shdw
2011/05/30 14:12:24 20.3 235.6 1748.5 shdw
2011/05/30 14:12:25 20.3 235.9 1745.7 shdw
2011/05/30 14:12:26 20.4 236.1 1743.0 shdw
2011/05/30 14:12:27 20.5 236.3 1740.2 shdw
2011/05/30 14:12:28 20.5 236.6 1737.5 shdw
2011/05/30 14:12:29 20.6 236.8 1734.8 shdw
2011/05/30 14:12:30 20.6 237.1 1732.1 shdw
2011/05/30 14:12:31 20.7 237.3 1729.4 shdw
2011/05/30 14:12:32 20.7 237.6 1726.8 shdw
2011/05/30 14:12:33 20.8 237.8 1724.2 shdw
2011/05/30 14:12:34 20.9 238.0 1721.6 shdw
2011/05/30 14:12:35 20.9 238.3 1719.1 shdw
2011/05/30 14:12:36 21.0 238.5 1716.5 shdw
2011/05/30 14:12:37 21.0 238.8 1714.0 shdw
2011/05/30 14:12:38 21.1 239.0 1711.5 shdw
2011/05/30 14:12:39 21.1 239.3 1709.1 shdw
2011/05/30 14:12:40 21.2 239.5 1706.7 shdw
2011/05/30 14:12:41 21.2 239.8 1704.2 shdw
2011/05/30 14:12:42 21.3 240.0 1701.9 shdw
2011/05/30 14:12:43 21.3 240.3 1699.5 shdw
2011/05/30 14:12:44 21.4 240.5 1697.2 shdw
2011/05/30 14:12:45 21.5 240.8 1694.9 shdw
2011/05/30 14:12:46 21.5 241.1 1692.6 shdw
2011/05/30 14:12:47 21.6 241.3 1690.3 shdw
2011/05/30 14:12:48 21.6 241.6 1688.1 shdw
2011/05/30 14:12:49 21.7 241.8 1685.9 shdw
2011/05/30 14:12:50 21.7 242.1 1683.7 shdw
2011/05/30 14:12:51 21.8 242.3 1681.6 shdw
2011/05/30 14:12:52 21.8 242.6 1679.5 shdw
2011/05/30 14:12:53 21.9 242.9 1677.4 shdw
2011/05/30 14:12:54 21.9 243.1 1675.3 shdw
2011/05/30 14:12:55 21.9 243.4 1673.2 shdw
2011/05/30 14:12:56 22.0 243.7 1671.2 shdw
2011/05/30 14:12:57 22.0 243.9 1669.2 shdw
2011/05/30 14:12:58 22.1 244.2 1667.3 shdw
2011/05/30 14:12:59 22.1 244.5 1665.3 shdw
2011/05/30 14:13:00 22.2 244.7 1663.4 shdw
2011/05/30 14:13:01 22.2 245.0 1661.6 shdw
2011/05/30 14:13:02 22.3 245.3 1659.7 shdw
2011/05/30 14:13:03 22.3 245.5 1657.9 shdw
2011/05/30 14:13:04 22.3 245.8 1656.1 shdw
2011/05/30 14:13:05 22.4 246.1 1654.3 shdw
2011/05/30 14:13:06 22.4 246.3 1652.6 shdw
2011/05/30 14:13:07 22.5 246.6 1650.8 shdw
2011/05/30 14:13:08 22.5 246.9 1649.2 shdw
2011/05/30 14:13:09 22.5 247.2 1647.5 shdw
2011/05/30 14:13:10 22.6 247.4 1645.9 shdw
2011/05/30 14:13:11 22.6 247.7 1644.3 shdw
2011/05/30 14:13:12 22.7 248.0 1642.7 shdw
2011/05/30 14:13:13 22.7 248.3 1641.1 shdw
2011/05/30 14:13:14 22.7 248.5 1639.6 shdw
2011/05/30 14:13:15 22.8 248.8 1638.1 shdw
2011/05/30 14:13:16 22.8 249.1 1636.7 shdw
2011/05/30 14:13:17 22.8 249.4 1635.2 shdw
2011/05/30 14:13:18 22.9 249.7 1633.8 shdw
2011/05/30 14:13:19 22.9 249.9 1632.5 shdw
2011/05/30 14:13:20 22.9 250.2 1631.1 shdw
2011/05/30 14:13:21 23.0 250.5 1629.8 shdw
2011/05/30 14:13:22 23.0 250.8 1628.5 shdw
2011/05/30 14:13:23 23.0 251.1 1627.2 shdw
2011/05/30 14:13:24 23.1 251.3 1626.0 shdw
2011/05/30 14:13:25 23.1 251.6 1624.8 shdw
2011/05/30 14:13:26 23.1 251.9 1623.6 shdw
2011/05/30 14:13:27 23.1 252.2 1622.5 shdw
2011/05/30 14:13:28 23.2 252.5 1621.4 shdw
2011/05/30 14:13:29 23.2 252.8 1620.3 shdw
2011/05/30 14:13:30 23.2 253.1 1619.2 shdw
2011/05/30 14:13:31 23.3 253.3 1618.2 shdw
2011/05/30 14:13:32 23.3 253.6 1617.2 shdw
2011/05/30 14:13:33 23.3 253.9 1616.3 shdw
2011/05/30 14:13:34 23.3 254.2 1615.3 shdw
2011/05/30 14:13:35 23.3 254.5 1614.4 shdw
2011/05/30 14:13:36 23.4 254.8 1613.5 shdw
2011/05/30 14:13:37 23.4 255.1 1612.7 shdw
2011/05/30 14:13:38 23.4 255.4 1611.9 shdw
2011/05/30 14:13:39 23.4 255.7 1611.1 shdw
2011/05/30 14:13:40 23.4 255.9 1610.3 shdw
2011/05/30 14:13:41 23.5 256.2 1609.6 shdw
2011/05/30 14:13:42 23.5 256.5 1608.9 shdw
2011/05/30 14:13:43 23.5 256.8 1608.2 shdw
2011/05/30 14:13:44 23.5 257.1 1607.6 shdw
2011/05/30 14:13:45 23.5 257.4 1607.0 shdw
2011/05/30 14:13:46 23.5 257.7 1606.4 shdw
2011/05/30 14:13:47 23.6 258.0 1605.9 shdw
2011/05/30 14:13:48 23.6 258.3 1605.4 shdw
2011/05/30 14:13:49 23.6 258.6 1604.9 shdw
2011/05/30 14:13:50 23.6 258.9 1604.4 shdw
2011/05/30 14:13:51 23.6 259.2 1604.0 shdw
2011/05/30 14:13:52 23.6 259.5 1603.6 shdw
2011/05/30 14:13:53 23.6 259.8 1603.2 shdw
2011/05/30 14:13:54 23.6 260.0 1602.9 shdw
2011/05/30 14:13:55 23.6 260.3 1602.6 shdw
2011/05/30 14:13:56 23.6 260.6 1602.3 shdw
2011/05/30 14:13:57 23.6 260.9 1602.1 shdw
( run in 2.750 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )