Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. Installing C:\cpanrun-5.8\build\5-8-0\site\lib\Astro\Coord\ECI.pm Installing C:\cpanrun-5.8\build\5-8-0\site\lib\Astro\Coord\ECI\Moon.pm Installing C:\cpanrun-5.8\build\5-8-0\site\lib\Astro\Coord\ECI\Star.pm Installing C:\cpanrun-5.8\build\5-8-0\site\lib\Astro\Coord\ECI\Sun.pm Installing C:\cpanrun-5.8\build\5-8-0\site\lib\Astro\Coord\ECI\TLE.pm Installing C:\cpanrun-5.8\build\5-8-0\site\lib\Astro\Coord\ECI\Utils.pm Installing C:\cpanrun-5.8\build\5-8-0\site\lib\Astro\Coord\ECI\TLE\Iridium.pm Installing C:\cpanrun-5.8\build\5-8-0\site\lib\Astro\Coord\ECI\TLE\Set.pm Writing C:\cpanrun-5.8\build\5-8-0\site\lib\auto\Astro\Coord\ECI\.packlist Appending installation info to C:\cpanrun-5.8\build\5-8-0\lib/perllocal.pod iversal: 01-Jan-1999 00:00:00 # Expected: 2451179.5 # Got: 2451179.5 ok 4 # Test 5: convert time to Julian centuries since Julian 2000.0 # Universal: 10-Apr-1987 00:00:00 # Expected: -0.127296372348 # Got: -0.127296372347707 ok 5 # Test 6: convert time to Julian centuries since Julian 2000.0 # Universal: 10-Apr-1987 19:21:00 # Expected: -0.1272743 # Got: -0.127274298425736 ok 6 # Test 7: Hour angle of Greenwich (Thetag) # Universal: 10-Apr-1987 00:00:00 # Expected: 3.450397161537 # Got: 3.4503971631111 # Tolerance: 1e-006 ok 7 # Test 8: Hour angle of Greenwich (Thetag) # Universal: 10-Apr-1987 19:21:00 # Expected: 2.246899761682 # Got: 2.24689976069944 # Tolerance: 1e-006 ok 8 # Test 9: Hour angle of Greenwich at 0 UT (Theta0) # Universal: 10-Apr-1987 19:21:00 # Expected: 3.450397161537 # Got: 3.4503971631111 # Tolerance: 1e-006 ok 9 # Test 10: Ecliptic longitude of Moon's mean ascending node # Time: 10-Apr-1987 00:00:00 (dynamical) # Expected: 0.196403646056174 # Got: 0.196403352891055 # Tolerance: 1e-005 ok 10 # Test 11: Nutation in longitude # Time: 10-Apr-1987 00:00:00 (dynamical) # Expected: -1.83647422404292e-005 # Got: -1.8727225242912e-005 # Tolerance: 2.42406840554768e-006 ok 11 # Test 12: Nutation in obliquity # Time: 10-Apr-1987 00:00:00 (dynamical) # Expected: 4.57809559071735e-005 # Got: 4.5902080485278e-005 # Tolerance: 4.84813681109536e-007 ok 12 # Test 13: Equation of time # Time: 13-Oct-1992 00:00:00 (dynamical) # Expected: 822.7 seconds # Got: 822.657712687504 seconds # Tolerance: 0.1 seconds ok 13 # Test 14: Obliquity of the ecliptic # Time: 10-Apr-1987 00:00:00 (dynamical) # Expected: 0.409167475225493 # Got: 0.409167588430015 # Tolerance: 1e-006 ok 14 # Test 15: Light intensity to magnitude # Expected: -6.75 # Got: -6.74742501084005 # Tolerance: 0.01 ok 15 # Test 16: Atmospheric extinction # Conditions: Z = 80, height = 0 # Expected: 1.59 # Got: 1.58500403474407 ok 16 # Test 17: Atmospheric extinction # Conditions: Z = 45, height = 0.5 # Expected: 0.34 # Got: 0.336985600012987 ok 17 # Test 18: Atmospheric extinction # Conditions: Z = 1, height = 1 # Expected: 0.21 # Got: 0.205683588533058 ok 18 # # Testing date2jd (4.81, 9, 57) # # Test 19 - date2jd output jd # Expected: 2436116.31 # Got: 2436116.31 # Tolerance: 0.005 ok 19 # # Testing date2jd (12, 27, 0, -1567) # # Test 20 - date2jd output jd # Expected: 1842713 # Got: 1842713 # Tolerance: 0.5 ok 20 # # Testing jd2date (2436116.31) # # Test 21 - jd2date output day # Expected: 4.81 # Got: 4.81000000005588 # Tolerance: 0.005 ok 21 # # Test 22 - jd2date output mon # Expected: 9 # Got: 9 # Tolerance: 0.5 ok 22 # # Test 23 - jd2date output yr # Expected: 57 # Got: 57 # Tolerance: 0.5 ok 23 # # Testing jd2date (1842713) # # Test 24 - jd2date output day # Expected: 27.5 # Got: 27.5 # Tolerance: 0.05 ok 24 # # Test 25 - jd2date output mon # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 25 # # Test 26 - jd2date output yr # Expected: -1567 # Got: -1567 # Tolerance: 0.5 ok 26 # # Testing jd2date (1507900.13) # # Test 27 - jd2date output day # Expected: 28.63 # Got: 28.6299999998882 # Tolerance: 0.005 ok 27 # # Test 28 - jd2date output mon # Expected: 4 # Got: 4 # Tolerance: 0.5 ok 28 # # Test 29 - jd2date output yr # Expected: -2484 # Got: -2484 # Tolerance: 0.5 ok 29 # # Testing date2epoch (12, 1, 0, 100) # # Test 30 - date2epoch output epoch # Expected: 946728000 # Got: 946728000 # Tolerance: 0.5 ok 30 # # Testing epoch2datetime (946728000) # # Test 31 - epoch2datetime output sec # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 31 # # Test 32 - epoch2datetime output min # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 32 # # Test 33 - epoch2datetime output hr # Expected: 12 # Got: 12 # Tolerance: 0.5 ok 33 # # Test 34 - epoch2datetime output day # Expected: 1 # Got: 1 # Tolerance: 0.5 ok 34 # # Test 35 - epoch2datetime output mon # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 35 # # Test 36 - epoch2datetime output yr # Expected: 100 # Got: 100 # Tolerance: 0.5 ok 36 # # Testing jd2datetime (2434923.5) # # Test 37 - jd2datetime output sec # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 37 # # Test 38 - jd2datetime output min # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 38 # # Test 39 - jd2datetime output hr # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 39 # # Test 40 - jd2datetime output day # Expected: 30 # Got: 30 # Tolerance: 0.5 ok 40 # # Test 41 - jd2datetime output mon # Expected: 5 # Got: 5 # Tolerance: 0.5 ok 41 # # Test 42 - jd2datetime output yr # Expected: 54 # Got: 54 # Tolerance: 0.5 ok 42 # # Test 43 - jd2datetime output wday # Expected: 3 # Got: 3 # Tolerance: 0.5 ok 43 # # Testing jd2datetime (2443826.5) # # Test 44 - jd2datetime output sec # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 44 # # Test 45 - jd2datetime output min # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 45 # # Test 46 - jd2datetime output hr # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 46 # # Test 47 - jd2datetime output day # Expected: 14 # Got: 14 # Tolerance: 0.5 ok 47 # # Test 48 - jd2datetime output mon # Expected: 10 # Got: 10 # Tolerance: 0.5 ok 48 # # Test 49 - jd2datetime output yr # Expected: 78 # Got: 78 # Tolerance: 0.5 ok 49 # # Test 50 - jd2datetime output yday # Expected: 317 # Got: 317 # Tolerance: 0.5 ok 50 # # Testing jd2datetime (2447273.5) # # Test 51 - jd2datetime output sec # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 51 # # Test 52 - jd2datetime output min # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 52 # # Test 53 - jd2datetime output hr # Expected: 0 # Got: 0 # Tolerance: 0.5 ok 53 # # Test 54 - jd2datetime output day # Expected: 22 # Got: 22 # Tolerance: 0.5 ok 54 # # Test 55 - jd2datetime output mon # Expected: 3 # Got: 3 # Tolerance: 0.5 ok 55 # # Test 56 - jd2datetime output yr # Expected: 88 # Got: 88 # Tolerance: 0.5 ok 56 # # Test 57 - jd2datetime output yday # Expected: 112 # Got: 112 # Tolerance: 0.5 ok 57 ok t\eci.............1..65 # Test 1: storage and retrieval of universal time # Stored: 01-Jan-2000 00:00:00 # Got: 01-Jan-2000 00:00:00 ok 1 # Test 2: storage and retrieval of universal time # Stored: 01-Jan-2005 00:00:00 # Got: 01-Jan-2005 00:00:00 ok 2 # Test 3: convert universal time to dynamical time. # Universal: 01-Jan-2000 00:00:00 # Expected: 01-Jan-2000 00:01:05 # Got: 01-Jan-2000 00:01:05 ok 3 # Test 4: convert universal time to dynamical time. # Universal: 01-Jan-2005 00:00:00 # Expected: 01-Jan-2005 00:01:12 # Got: 01-Jan-2005 00:01:12 ok 4 # Test 5: convert dynamical time to universal time. # Dynamical: 01-Jan-2000 00:00:00 # Expected: 31-Dec-1999 23:58:55 # Got: 31-Dec-1999 23:58:55 ok 5 # Test 6: convert dynamical time to universal time. # Dynamical: 01-Jan-2005 00:00:00 # Expected: 31-Dec-2004 23:58:48 # Got: 31-Dec-2004 23:58:48 ok 6 # Test 7: Geocentric ecef coordinates. # Axis: X # Expected: 3000 # Got: 3000 ok 7 # Test 8: Geocentric ecef coordinates. # Axis: Y # Expected: 4000 # Got: 4000 ok 8 # Test 9: Geocentric ecef coordinates. # Axis: Z # Expected: 5000 # Got: 5000 ok 9 # Test 10: Geocentric to geodetic # Quantity: rho * sin (phiprime) # Expected: 0.546861 # Got: 0.54686082406049 ok 10 # Test 11: Geocentric to geodetic # Quantity: rho * cos (phiprime) # Expected: 0.836339 # Got: 0.836339232352542 ok 11 # Test 12: Geocentric to geodetic # Quantity: rho * sin (phiprime) # Expected: -0.546861 # Got: -0.54686082406049 ok 12 # Test 13: Geocentric to geodetic # Quantity: rho * cos (phiprime) # Expected: 0.836339 # Got: 0.836339232352542 ok 13 # Test 14: Geodetic to geocentric # Quantity: latitude # Expected: 0.58217396455 # Got: 0.582174240202124 # Tolerance: 1e-006 ok 14 # Test 15: Geodetic to geocentric # Quantity: longitude # Expected: -2.060487233536 # Got: -2.060487233536 # Tolerance: 1e-006 ok 15 # Test 16: Geodetic to geocentric # Quantity: elevation above mean sea level # Expected: 1.706 # Got: 1.70537916374315 # Tolerance: 0.001 ok 16 # Test 17: Geodetic to geocentric # Quantity: latitude # Expected: -0.58217396455 # Got: -0.582174240202124 # Tolerance: 1e-006 ok 17 # Test 18: Geodetic to geocentric # Quantity: longitude # Expected: 1.08110542005979 # Got: 1.08110542005979 # Tolerance: 1e-006 ok 18 # Test 19: Geodetic to geocentric # Quantity: elevation above mean sea level # Expected: 1.706 # Got: 1.70537916374315 # Tolerance: 0.001 ok 19 # # In the following twelve tests the tolerance is degraded because the # book solution is calculated using a different, and apparently # simpler model attributed to Escobal, "Methods of Orbit # Determination", 1965, Wiley & Sons, Inc., pp. 27-29. # # Test 20: Geodetic to Earth-Centered, Earth-Fixed # Quantity: x # Expected: -2508.9754549 # Got: -2508.99827702187 # Tolerance: 1e-005 ok 20 # Test 21: Geodetic to Earth-Centered, Earth-Fixed # Quantity: y # Expected: -4707.4038939 # Got: -4707.39172998017 # Tolerance: 1e-005 ok 21 # Test 22: Geodetic to Earth-Centered, Earth-Fixed # Quantity: z # Expected: 3487.9532711 # Got: 3487.95327107408 # Tolerance: 1e-005 ok 22 # Test 23: Geodetic to Earth-Centered, Earth-Fixed # Quantity: x # Expected: 2508.9754549 # Got: 2508.99827699364 # Tolerance: 1e-005 ok 23 # Test 24: Geodetic to Earth-Centered, Earth-Fixed # Quantity: y # Expected: 4707.4038939 # Got: 4707.39172999522 # Tolerance: 1e-005 ok 24 # Test 25: Geodetic to Earth-Centered, Earth-Fixed # Quantity: z # Expected: -3487.9532711 # Got: -3487.95327107408 # Tolerance: 1e-005 ok 25 # Test 26: Earth-Centered, Earth-Fixed to Geodetic # Quantity: latitude # Expected: 0.58217396455 # Got: 0.582173964553316 # Tolerance: 1e-005 ok 26 # Test 27: Earth-Centered, Earth-Fixed to Geodetic # Quantity: longitude # Expected: -2.060487233536 # Got: -2.06048238539627 # Tolerance: 1e-005 ok 27 # Test 28: Earth-Centered, Earth-Fixed to Geodetic # Quantity: elevation # Expected: 1.706 # Got: 1.7060000151198 # Tolerance: 1e-005 ok 28 # Test 29: Earth-Centered, Earth-Fixed to Geodetic # Quantity: latitude # Expected: -0.58217396455 # Got: -0.582173964553316 # Tolerance: 1e-005 ok 29 # Test 30: Earth-Centered, Earth-Fixed to Geodetic # Quantity: longitude # Expected: 1.08110542005979 # Got: 1.08111026819352 # Tolerance: 1e-005 ok 30 # Test 31: Earth-Centered, Earth-Fixed to Geodetic # Quantity: elevation # Expected: 1.706 # Got: 1.7060000151198 # Tolerance: 1e-005 ok 31 # Test 32: Geodetic to ECI # Quantity: x # Expected: 1703.295 # Got: 1703.2950634698 # Tolerance: 1e-006 ok 32 # Test 33: Geodetic to ECI # Quantity: y # Expected: 4586.65 # Got: 4586.64997101737 # Tolerance: 1e-006 ok 33 # Test 34: Geodetic to ECI # Quantity: z # Expected: 4077.984 # Got: 4077.98449631391 # Tolerance: 1e-006 ok 34 # Test 35: Geodetic to ECI # Quantity: x # Expected: -1703.295 # Got: -1703.2950634698 # Tolerance: 1e-006 ok 35 # Test 36: Geodetic to ECI # Quantity: y # Expected: -4586.65 # Got: -4586.64997101737 # Tolerance: 1e-006 ok 36 # Test 37: Geodetic to ECI # Quantity: z # Expected: -4077.984 # Got: -4077.98449631391 # Tolerance: 1e-006 ok 37 # Test 38: Geodetic to ECI # Quantity: latitude # Expected: 0.698131700797732 # Got: 0.698131640522469 # Tolerance: 1e-006 ok 38 # Test 39: Geodetic to ECI # Quantity: longitude # Expected: -1.30899693899575 # Got: -1.30899692477269 # Tolerance: 1e-006 ok 39 # Test 40: Geodetic to ECI # Quantity: elevation + equatorial radius # Expected: 6378.14 # Got: 6378.13968486246 # Tolerance: 1e-006 ok 40 # Test 41: Geodetic to ECI # Quantity: latitude # Expected: -0.698131700797732 # Got: -0.698131640522469 # Tolerance: 1e-006 ok 41 # Test 42: Geodetic to ECI # Quantity: longitude # Expected: 1.83259571459405 # Got: 1.8325957288171 # Tolerance: 1e-006 ok 42 # Test 43: Geodetic to ECI # Quantity: elevation + equatorial radius # Expected: 6378.14 # Got: 6378.13968486246 # Tolerance: 1e-006 ok 43 # # In the following three tests the tolerance is degraded because the # book solution is calculated by http://www.satcom.co.uk/article.asp?article=1 # which apparently assumes an exactly synchronous orbit. Their exact # altitude assuymption is undocumented, as is their algorithm. So the # tests are really more of a sanity check. # # Debug - reference ellipsoid = 'GRS80' # Test 44: altitude/azimuth for observer # Quantity: altitude # Expected: 0.79730130889605 # Got: 0.797631843582951 # Tolerance: 0.001 ok 44 # Test 45: altitude/azimuth for observer # Quantity: azimuth # Expected: 3.00032570393337 # Got: 3.0003208639356 # Tolerance: 0.001 ok 45 # Test 46: altitude/azimuth for observer # Quantity: range # Expected: 37355.457 # Got: 37371.3530287888 # Tolerance: 0.001 ok 46 # Test 47: correction for atmospheric refraction # Expected: 0.0168319553062333 # Got: 0.0168325579936093 # Tolerance: 0.0001 ok 47 # Test 48: Angle between two points as seen from a third # Expected: 1.5707963267949 # Got: 1.5707963267949 # Tolerance: 1e-006 ok 48 # Test 49: Precession of equinoxes # Expected: 41.547214 degrees right ascension # Got: 41.547214370935 degrees right ascension # Tolerance: 1e-006 ok 49 # Test 50: Precession of equinoxes # Expected: 49.348483 degrees declination # Got: 49.3484831098608 degrees declination # Tolerance: 1e-006 ok 50 # Test 51: Right ascension/declination to ecliptic latitude/longitude # Time: 30-Jul-2009 02:27:36 (dynamical) # Quantity: latitude # Expected: 0.116660774263029 # Got: 0.116660770848178 # Tolerance: 1e-006 ok 51 # Test 52: Right ascension/declination to ecliptic latitude/longitude # Time: 30-Jul-2009 02:27:36 (dynamical) # Quantity: longitude # Expected: 1.97598550821967 # Got: 1.97598550087448 # Tolerance: 1e-006 ok 52 # Test 53: Ecliptic latitude/longitude to right ascension/declination # Time: 30-Jul-2009 02:27:36 (dynamical) # Quantity: right ascension # Expected: 2.03032305326152 # Got: 2.03032306208166 # Tolerance: 1e-006 ok 53 # Test 54: Ecliptic latitude/longitude to right ascension/declination # Time: 30-Jul-2009 02:27:36 (dynamical) # Quantity: declination # Expected: 0.489149170116462 # Got: 0.489149172181142 # Tolerance: 1e-006 ok 54 # Test 55: Ecliptic latitude/longitude to ECI # Time: 13-Oct-1992 00:00:00 (dynamical) # Quantity: x # Expected: -140322083.990224 # Got: -140322079.919823 # Tolerance: 1e-005 ok 55 # Test 56: Ecliptic latitude/longitude to ECI # Time: 13-Oct-1992 00:00:00 (dynamical) # Quantity: y # Expected: -46622834.416128 # Got: -46622865.2115433 # Tolerance: 1e-005 ok 56 # Test 57: Ecliptic latitude/longitude to ECI # Time: 13-Oct-1992 00:00:00 (dynamical) # Quantity: z # Expected: -20213888.591205 # Got: -20213814.1738684 # Tolerance: 1e-005 ok 57 # Test 58: universal time to local mean time # Time: 01-Jan-2001 00:00:00 (universal) # Expected: 31-Dec-2000 18:15:28 (local mean) # Got: 31-Dec-2000 18:15:28 (local mean) ok 58 # Test 59: local mean time to universal time # Time: 31-Dec-2000 18:15:28 (universal) # Expected: 01-Jan-2001 00:00:00 (local mean) # Got: 01-Jan-2001 00:00:00 (local mean) ok 59 # Test 60: Equatorial coordinates relative to observer. # Quantity: right ascension # Got: 5.71056721505964 # Expected: 5.71056721505964 ok 60 # Test 61: Equatorial coordinates relative to observer. # Quantity: declination # Got: -0.853415158345284 # Expected: -0.853415158345284 ok 61 # Test 62: Equatorial coordinates relative to observer. # Quantity: range # Got: 3004.01392172313 # Expected: 3004.01392172313 ok 62 # Test 63: Astro::Coord::ECI->represents () # Got: Astro::Coord::ECI # Expected: Astro::Coord::ECI ok 63 # Test 64: Astro::Coord::ECI->represents ('Astro::Coord::ECI') # Got: 1 # Expected: 1 ok 64 # Test 65: Astro::Coord::ECI->represents ('Astro::Coord::ECI::TLE') # Got: # Expected: 0 ok 65 ok t\iridium.........1..9 # Test 1: Rebless TLE to Iridium # Expecting: 'Astro::Coord::ECI::TLE::Iridium' # Got: 'Astro::Coord::ECI::TLE::Iridium' ok 1 # Test 2: Rebless Iridium back to TLE # Expecting: 'Astro::Coord::ECI::TLE' # Got: 'Astro::Coord::ECI::TLE' ok 2 Flare prediction tests require file t/iridium.dat. This needs to contain NORAD IDs 24905, 24965, 25104, 25285, 25288, and 25577 for June 5, 2006. If you have the Astro::SpaceTrack package installed, you can obtain these yourself using the SpaceTrack command-line utility, or with this package. Assuming you have not installed this package yet, set your default to your, working directory, and proceed as follows: $ perl -Mblib bin/satpass (front matter printed here) satpass> st retrieve -start 2006/06/04 -end 2006/06/06 \ _satpass> 24905 24965 25104 25285 25288 25577 satpass> choose -time 'June 6 2006 midnight' satpass> tle >t/iridium.dat satpass> exit Obviously I have this file, but I do not have permission to redistribute the elements. # Test 3: Number of flares found. # Expected: 7 # Got: 0 ok 3 # skip Must provide iridium.dat # Test 4: Number of am flares found. # Expected: 2 # Got: 0 ok 4 # skip Must provide iridium.dat # Test 5: Number of day flares found. # Expected: 4 # Got: 0 ok 5 # skip Must provide iridium.dat # Test 6: Number of pm flares found. # Expected: 1 # Got: 0 ok 6 # skip Must provide iridium.dat # Test 7: Flare 1 (from 0) time # Expected: Tue Jun 6 09:24:13 2006 # Got: Thu Jan 1 00:00:00 1970 # Tolerance: 1 ok 7 # skip Must provide iridium.dat # Test 8: Flare 1 (from 0) magnitude # Expected: -8 # Got: 0 # Tolerance: 0.1 ok 8 # skip Must provide iridium.dat # Test 9: Flare 1 (from 0) mma # Expected: 2 # Got: 0 # Tolerance: 0 ok 9 # skip Must provide iridium.dat ok 7/9 skipped: Must provide iridium.dat t\moon............1..9 # Test 1: Ecliptic latitude/longitude and distance of the Moon # Quantity: latitude # Expected: -0.0563588806617544 # Time: 12-Apr-1992 00:00:00 (dynamical) # Got: -0.0563588879785865 # Tolerance: 1e-006 ok 1 # Test 2: Ecliptic latitude/longitude and distance of the Moon # Quantity: longitude # Expected: 2.32420723012581 # Time: 12-Apr-1992 00:00:00 (dynamical) # Got: 2.3242066762981 # Tolerance: 1e-006 ok 2 # Test 3: Ecliptic latitude/longitude and distance of the Moon # Quantity: distance # Expected: 368409.7 # Time: 12-Apr-1992 00:00:00 (dynamical) # Got: 368409.684816126 # Tolerance: 1e-006 ok 3 # Test 4: Phase of the moon at a given time # Time: 18-Feb-1977 03:37:42 (dynamical) # Expected: 6.28318530717959 # Got: 6.28310573447447 # Tolerance: 0.0001 ok 4 # Test 5: Phase and illumination # Time: 12-Apr-1992 00:00:00 (dynamical) # Quantity: phase # Expected: 1.9359960007992 # Got: 1.93430741652139 # Tolerance: 0.003 ok 5 # Test 6: Phase and illumination # Time: 12-Apr-1992 00:00:00 (dynamical) # Quantity: illumination # Expected: 0.6786 # Got: 0.677779036436966 # Tolerance: 0.01 ok 6 # Test 7: Next quarter after given time. # Time: 01-Feb-1977 00:00:00 (dynamical) # Quarter: 0 # Expected: 18-Feb-1977 03:37:42 (dynamical) # Got: 18-Feb-1977 03:37:40 (dynamical) # Tolerance: 2 seconds ok 7 # Test 8: $Astro::Coord::ECI::Moon::Singleton = 1 # Expected: same # Got: skipped ok 8 # skip Scalar::Util does not implement refaddr (). # Test 9: $Astro::Coord::ECI::Moon::Singleton = 0 # Expected: different # Got: skipped ok 9 # skip Scalar::Util does not implement refaddr (). ok 2/9 skipped: various reasons t\pod.............1..8 ok 1 - blib\lib\Astro\Coord\ECI.pm ok 2 - blib\lib\Astro\Coord\ECI\Moon.pm ok 3 - blib\lib\Astro\Coord\ECI\Star.pm ok 4 - blib\lib\Astro\Coord\ECI\Sun.pm ok 5 - blib\lib\Astro\Coord\ECI\TLE.pm ok 6 - blib\lib\Astro\Coord\ECI\Utils.pm ok 7 - blib\lib\Astro\Coord\ECI\TLE\Iridium.pm ok 8 - blib\lib\Astro\Coord\ECI\TLE\Set.pm ok t\pod_coverage....1..8 ok 1 - Pod coverage on Astro::Coord::ECI ok 2 - Pod coverage on Astro::Coord::ECI::Moon ok 3 - Pod coverage on Astro::Coord::ECI::Star ok 4 - Pod coverage on Astro::Coord::ECI::Sun ok 5 - Pod coverage on Astro::Coord::ECI::TLE ok 6 - Pod coverage on Astro::Coord::ECI::Utils ok 7 - Pod coverage on Astro::Coord::ECI::TLE::Iridium ok 8 - Pod coverage on Astro::Coord::ECI::TLE::Set ok t\set.............1..53 # # Test 1 - Instantiate a set. ok 1 # # Test 2 - Add first member. ok 2 # # Test 3 - Add second member. ok 3 # # Test 4 - Select before set members. # Time: Sat Jul 1 00:00:00 2006 GMT # Expect: Sun Jul 2 00:00:00 2006 GMT # Got: Sun Jul 2 00:00:00 2006 GMT ok 4 # # Test 5 - Select first set members. # Time: Sun Jul 2 00:00:00 2006 GMT # Expect: Sun Jul 2 00:00:00 2006 GMT # Got: Sun Jul 2 00:00:00 2006 GMT ok 5 # # Test 6 - Select between set members. # Time: Mon Jul 3 00:00:00 2006 GMT # Expect: Sun Jul 2 00:00:00 2006 GMT # Got: Sun Jul 2 00:00:00 2006 GMT ok 6 # # Test 7 - Select last set members. # Time: Tue Jul 4 00:00:00 2006 GMT # Expect: Tue Jul 4 00:00:00 2006 GMT # Got: Tue Jul 4 00:00:00 2006 GMT ok 7 # # Test 8 - Select after set members. # Time: Wed Jul 5 00:00:00 2006 GMT # Expect: Tue Jul 4 00:00:00 2006 GMT # Got: Tue Jul 4 00:00:00 2006 GMT ok 8 # # Test 9 - Set universal() before set members - resultant epoch. # Time: Sat Jul 1 00:00:00 2006 GMT # Expect: Sun Jul 2 00:00:00 2006 GMT # Got: Sun Jul 2 00:00:00 2006 GMT ok 9 # # Test 10 - Set universal() before set members - resultant member's time. # Expect: Sat Jul 1 00:00:00 2006 GMT # Got: Sat Jul 1 00:00:00 2006 GMT ok 10 # # Test 11 - Set universal() before set members - time returned by set object. # Expect: Sat Jul 1 00:00:00 2006 GMT # Got: Sat Jul 1 00:00:00 2006 GMT ok 11 # # Test 12 - Set universal() first set members - resultant epoch. # Time: Sun Jul 2 00:00:00 2006 GMT # Expect: Sun Jul 2 00:00:00 2006 GMT # Got: Sun Jul 2 00:00:00 2006 GMT ok 12 # # Test 13 - Set universal() first set members - resultant member's time. # Expect: Sun Jul 2 00:00:00 2006 GMT # Got: Sun Jul 2 00:00:00 2006 GMT ok 13 # # Test 14 - Set universal() first set members - time returned by set object. # Expect: Sun Jul 2 00:00:00 2006 GMT # Got: Sun Jul 2 00:00:00 2006 GMT ok 14 # # Test 15 - Set universal() between set members - resultant epoch. # Time: Mon Jul 3 00:00:00 2006 GMT # Expect: Sun Jul 2 00:00:00 2006 GMT # Got: Sun Jul 2 00:00:00 2006 GMT ok 15 # # Test 16 - Set universal() between set members - resultant member's time. # Expect: Mon Jul 3 00:00:00 2006 GMT # Got: Mon Jul 3 00:00:00 2006 GMT ok 16 # # Test 17 - Set universal() between set members - time returned by set object. # Expect: Mon Jul 3 00:00:00 2006 GMT # Got: Mon Jul 3 00:00:00 2006 GMT ok 17 # # Test 18 - Set universal() last set members - resultant epoch. # Time: Tue Jul 4 00:00:00 2006 GMT # Expect: Tue Jul 4 00:00:00 2006 GMT # Got: Tue Jul 4 00:00:00 2006 GMT ok 18 # # Test 19 - Set universal() last set members - resultant member's time. # Expect: Tue Jul 4 00:00:00 2006 GMT # Got: Tue Jul 4 00:00:00 2006 GMT ok 19 # # Test 20 - Set universal() last set members - time returned by set object. # Expect: Tue Jul 4 00:00:00 2006 GMT # Got: Tue Jul 4 00:00:00 2006 GMT ok 20 # # Test 21 - Set universal() after set members - resultant epoch. # Time: Wed Jul 5 00:00:00 2006 GMT # Expect: Tue Jul 4 00:00:00 2006 GMT # Got: Tue Jul 4 00:00:00 2006 GMT ok 21 # # Test 22 - Set universal() after set members - resultant member's time. # Expect: Wed Jul 5 00:00:00 2006 GMT # Got: Wed Jul 5 00:00:00 2006 GMT ok 22 # # Test 23 - Set universal() after set members - time returned by set object. # Expect: Wed Jul 5 00:00:00 2006 GMT # Got: Wed Jul 5 00:00:00 2006 GMT ok 23 # # Test 24 - $set->members (); # Expected: 2 # Got: 2 ok 24 # # Test 25 - $set->set (name => 'Nemo') # Expected: no exception # Got: no exception ok 25 # # Test 26 - Epoch of member 0 # Expected: Sun Jul 2 00:00:00 2006 GMT # Got: Sun Jul 2 00:00:00 2006 GMT ok 26 # # Test 27 - Effect of $set->set ('Nemo') on member 0 # Expected: 'Nemo' # Got: 'Nemo' ok 27 # # Test 28 - Epoch of member 1 # Expected: Tue Jul 4 00:00:00 2006 GMT # Got: Tue Jul 4 00:00:00 2006 GMT ok 28 # # Test 29 - Effect of $set->set ('Nemo') on member 1 # Expected: 'Nemo' # Got: 'Nemo' ok 29 # # Test 30 - $set->clear () # Expected: 0 # Got: 0 ok 30 # # Test 31 - Aggregate TLEs with Singleton = 0. ok 31 # # Test 32 - Number of objects generated by aggregate(). # Expect: 2 # Got: 2 ok 32 # # Test 33 - Class of $set[0] # Expect: Astro::Coord::ECI::TLE # Got: Astro::Coord::ECI::TLE ok 33 # # Test 34 - Class of $set[1] # Expect: Astro::Coord::ECI::TLE::Set # Got: Astro::Coord::ECI::TLE::Set ok 34 # # Test 35 - Aggregate TLEs with Singleton = 1. ok 35 # # Test 36 - Number of objects generated by aggregate(). # Expect: 2 # Got: 2 ok 36 # # Test 37 - Class of $set[0] # Expect: Astro::Coord::ECI::TLE::Set # Got: Astro::Coord::ECI::TLE::Set ok 37 # # Test 38 - Class of $set[1] # Expect: Astro::Coord::ECI::TLE::Set # Got: Astro::Coord::ECI::TLE::Set ok 38 # # Test 39 - Add a set to another set. # Expected: 1 member. # Got: 1 member ok 39 # # Test 40 - Delegation - delegate() # Expect: 't::SetDelegate' # Got: 't::SetDelegate' ok 40 # # Test 41 - Delegation - nodelegate() # Expect: 'Astro::Coord::ECI::TLE::Set' # Got: 'Astro::Coord::ECI::TLE::Set' ok 41 # # Test 42 - $set->can ('members') with $set empty. # Expect: 1 # Got: 1 ok 42 # # Test 43 - $set->can ('delegate') with $set empty. # Expect: 0 # Got: 0 ok 43 # # Test 44 - $set->can ('members') with $set non-empty. # Expect: 1 # Got: 1 ok 44 # # Test 45 - $set->can ('delegate') with $set non-empty. # Expect: 1 # Got: 1 ok 45 # # Test 46 - $set->can ('members') with $set empty. # Expect: 1 # Got: 1 ok 46 # # Test 47 - $set->can ('delegate') with $set empty. # Expect: 0 # Got: 0 ok 47 # # Test 48 - $set->represents (undef) # Members: 0 # Expect: Exception thrown # Got: Exception thrown ok 48 # # Test 49 - $set->represents ('Astro::Coord::ECI') # Members: 0 # Expect: Exception thrown # Got: Exception thrown ok 49 # # Test 50 - $set->represents (undef) # Members: 1 # Expect: Astro::Coord::ECI::TLE # Got: Astro::Coord::ECI::TLE ok 50 # # Test 51 - $set->represents ('Astro::Coord::ECI') # Members: 1 # Expect: 1 # Got: 1 ok 51 # # Test 52 - $set->represents ('Astro::Coord::ECI::TLE') # Members: 1 # Expect: 1 # Got: 1 ok 52 # # Test 53 - $set->represents ('Astro::Coord::ECI::TLE::Set') # Members: 1 # Expect: 0 # Got: ok 53 ok t\star............1..2 # # In the following the tolerance is in radians. This seems a little large, # amounting to 4 seconds of arc. It's difficult to check in detail, since # I went through ecliptic coordinates and Meeus' example is in equatorial # coordinates. # # Test 1: Position of a star at a given time. # Quantity: right ascension # Got: 0.725370457027202 # Expected: 0.725358109908322 # Tolerance: 2e-005 ok 1 # Test 2: Position of a star at a given time. # Quantity: declination # Got: 0.861348493083334 # Expected: 0.861356104478444 # Tolerance: 2e-005 ok 2 ok t\sun.............1..21 # Test 1: Ecliptic latitude/longitude of the sun # Time: 13-Oct-1992 00:00:00 (dynamical) # Quantity: longitude # Expected: 3.48906938170472 # Got: 3.4890693184269 # Tolerance: 1e-005 ok 1 # Test 2: Ecliptic latitude/longitude of the sun # Time: 13-Oct-1992 00:00:00 (dynamical) # Quantity: distance # Expected: 149247810.9842 # Got: 149248102.506773 # Tolerance: 1e-005 ok 2 # Test 3: Ecliptic latitude/longitude of the sun # Time: 13-Oct-1992 00:00:00 (dynamical) # Quantity: geometric longitude # Expected: 3.48908561326676 # Got: 3.48908556380776 # Tolerance: 1e-005 ok 3 # Test 4: Sunrise at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 20-Mar-2005 # Expected: 20-Mar-2005 06:11:00 (Eastern Standard) # Got: 20-Mar-2005 06:11:21 (Eastern Standard) # Tolerance: 30 seconds ok 4 # Test 5: Noon at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 20-Mar-2005 # Expected: 20-Mar-2005 12:16:00 (Eastern Standard) # Got: 20-Mar-2005 12:15:31 (Eastern Standard) # Tolerance: 30 seconds ok 5 # Test 6: Sunset at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 20-Mar-2005 # Expected: 20-Mar-2005 18:20:00 (Eastern Standard) # Got: 20-Mar-2005 18:20:20 (Eastern Standard) # Tolerance: 30 seconds ok 6 # Test 7: Sunrise at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 21-Jun-2005 # Expected: 21-Jun-2005 04:43:00 (Eastern Standard) # Got: 21-Jun-2005 04:43:03 (Eastern Standard) # Tolerance: 30 seconds ok 7 # Test 8: Noon at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 21-Jun-2005 # Expected: 21-Jun-2005 12:10:00 (Eastern Standard) # Got: 21-Jun-2005 12:09:59 (Eastern Standard) # Tolerance: 30 seconds ok 8 # Test 9: Sunset at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 21-Jun-2005 # Expected: 21-Jun-2005 19:37:00 (Eastern Standard) # Got: 21-Jun-2005 19:36:55 (Eastern Standard) # Tolerance: 30 seconds ok 9 # Test 10: Sunrise at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 22-Sep-2005 # Expected: 22-Sep-2005 05:56:00 (Eastern Standard) # Got: 22-Sep-2005 05:55:56 (Eastern Standard) # Tolerance: 30 seconds ok 10 # Test 11: Noon at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 22-Sep-2005 # Expected: 22-Sep-2005 12:01:00 (Eastern Standard) # Got: 22-Sep-2005 12:00:44 (Eastern Standard) # Tolerance: 30 seconds ok 11 # Test 12: Sunset at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 22-Sep-2005 # Expected: 22-Sep-2005 18:05:00 (Eastern Standard) # Got: 22-Sep-2005 18:04:54 (Eastern Standard) # Tolerance: 30 seconds ok 12 # Test 13: Sunrise at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 21-Dec-2005 # Expected: 21-Dec-2005 07:23:00 (Eastern Standard) # Got: 21-Dec-2005 07:23:09 (Eastern Standard) # Tolerance: 30 seconds ok 13 # Test 14: Noon at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 21-Dec-2005 # Expected: 21-Dec-2005 12:06:00 (Eastern Standard) # Got: 21-Dec-2005 12:06:24 (Eastern Standard) # Tolerance: 30 seconds ok 14 # Test 15: Sunset at latitude 38.8833 degrees, longitude -77.0333 degrees # Date: 21-Dec-2005 # Expected: 21-Dec-2005 16:50:00 (Eastern Standard) # Got: 21-Dec-2005 16:49:39 (Eastern Standard) # Tolerance: 30 seconds ok 15 # Test 16: Spring equinox 2005 # Expected: 20-Mar-2005 12:34:29 (dynamical) # Got: 20-Mar-2005 12:33:44 (dynamical) # Tolerance: 1000 seconds ok 16 # Test 17: Summer solstice 2005 # Expected: 21-Jun-2005 06:47:12 (dynamical) # Got: 21-Jun-2005 06:39:30 (dynamical) # Tolerance: 1000 seconds ok 17 # Test 18: Fall equinox 2005 # Expected: 22-Sep-2005 22:24:14 (dynamical) # Got: 22-Sep-2005 22:16:39 (dynamical) # Tolerance: 1000 seconds ok 18 # Test 19: Winter solstice 2005 # Expected: 21-Dec-2005 18:36:01 (dynamical) # Got: 21-Dec-2005 18:33:57 (dynamical) # Tolerance: 1000 seconds ok 19 # Test 20: $Astro::Coord::ECI::Sun::Singleton = 1 # Expected: same # Got: skipped ok 20 # skip Scalar::Util does not implement refaddr (). # Test 21: $Astro::Coord::ECI::Sun::Singleton = 0 # Expected: different # Got: skipped ok 21 # skip Scalar::Util does not implement refaddr (). ok 2/21 skipped: various reasons t\tle.............1..150 # # The following tests are as described in Spacetrack Report no. 3, # Models for Propagation of NORAD Element Sets # # **** sgp **** # 1 88888U 80275.98708465 .00073094 13844-3 66816-4 0 8 # 2 88888 72.8435 115.9689 0086731 52.6988 110.5714 16.05824518 105 # Test 1: tsince = 0. X std: 2328.96594238, calc 2328.9660830338 ok 1 # Test 2: tsince = 0. Y std: -5995.21600342, calc -5995.21603827729 ok 2 # Test 3: tsince = 0. Z std: 1719.97894287, calc 1719.97873535898 ok 3 # Test 4: tsince = 0. XDOT std: 2.91110113, calc 2.91110102134804 ok 4 # Test 5: tsince = 0. YDOT std: -0.98164053, calc -0.981640333886773 ok 5 # Test 6: tsince = 0. ZDOT std: -7.09049922, calc -7.09049932929797 ok 6 # Test 7: tsince = 360. X std: 2456.00610352, calc 2456.00666958045 ok 7 # Test 8: tsince = 360. Y std: -6071.94232177, calc -6071.94243628913 ok 8 # Test 9: tsince = 360. Z std: 1222.95977784, calc 1222.95881204839 ok 9 # Test 10: tsince = 360. XDOT std: 2.67852119, calc 2.6785206736662 ok 10 # Test 11: tsince = 360. YDOT std: -0.44705850, calc -0.447057387160165 ok 11 # Test 12: tsince = 360. ZDOT std: -7.22800565, calc -7.22800586113486 ok 12 # Test 13: tsince = 720. X std: 2567.39477539, calc 2567.39619702482 ok 13 # Test 14: tsince = 720. Y std: -6112.49725342, calc -6112.49733286379 ok 14 # Test 15: tsince = 720. Z std: 713.97710419, calc 713.973775310458 ok 15 # Test 16: tsince = 720. XDOT std: 2.43952477, calc 2.43952311703706 ok 16 # Test 17: tsince = 720. YDOT std: 0.09884824, calc 0.0988519604127627 ok 17 # Test 18: tsince = 720. ZDOT std: -7.31889641, calc -7.31889679623253 ok 18 # Test 19: tsince = 1080. X std: 2663.03179932, calc 2663.03277756196 ok 19 # Test 20: tsince = 1080. Y std: -6115.37414551, calc -6115.37384559672 ok 20 # Test 21: tsince = 1080. Z std: 195.73919105, calc 195.736377727532 ok 21 # Test 22: tsince = 1080. XDOT std: 2.19531813, calc 2.19531668840517 ok 22 # Test 23: tsince = 1080. YDOT std: 0.65333930, calc 0.653342433020684 ok 23 # Test 24: tsince = 1080. ZDOT std: -7.36169147, calc -7.36169153603002 ok 24 # Test 25: tsince = 1440. X std: 2742.85470581, calc 2742.85535988475 ok 25 # Test 26: tsince = 1440. Y std: -6079.13580322, calc -6079.13550739366 ok 26 # Test 27: tsince = 1440. Z std: -328.86091614, calc -328.862848832715 ok 27 # Test 28: tsince = 1440. XDOT std: 1.94707947, calc 1.94707844612717 ok 28 # Test 29: tsince = 1440. YDOT std: 1.21346101, calc 1.21346316663037 ok 29 # Test 30: tsince = 1440. ZDOT std: -7.35499924, calc -7.35499922074501 ok 30 # # **** sgp4 **** # 1 88888U 80275.98708465 .00073094 13844-3 66816-4 0 8 # 2 88888 72.8435 115.9689 0086731 52.6988 110.5714 16.05824518 105 # Test 31: tsince = 0. X std: 2328.97048951, calc 2328.97070292336 ok 31 # Test 32: tsince = 0. Y std: -5995.22076416, calc -5995.22083201297 ok 32 # Test 33: tsince = 0. Z std: 1719.97067261, calc 1719.97065819533 ok 33 # Test 34: tsince = 0. XDOT std: 2.91207230, calc 2.91207225329518 ok 34 # Test 35: tsince = 0. YDOT std: -0.98341546, calc -0.983415310654711 ok 35 # Test 36: tsince = 0. ZDOT std: -7.09081703, calc -7.09081696887152 ok 36 # Test 37: tsince = 360. X std: 2456.10705566, calc 2456.10785488045 ok 37 # Test 38: tsince = 360. Y std: -6071.93853760, calc -6071.93868493554 ok 38 # Test 39: tsince = 360. Z std: 1222.89727783, calc 1222.89555542489 ok 39 # Test 40: tsince = 360. XDOT std: 2.67938992, calc 2.67938906323826 ok 40 # Test 41: tsince = 360. YDOT std: -0.44829041, calc -0.448288397052829 ok 41 # Test 42: tsince = 360. ZDOT std: -7.22879231, calc -7.2287926403315 ok 42 # Test 43: tsince = 720. X std: 2567.56195068, calc 2567.5629272438 ok 43 # Test 44: tsince = 720. Y std: -6112.50384522, calc -6112.50381174738 ok 44 # Test 45: tsince = 720. Z std: 713.96397400, calc 713.961853345583 ok 45 # Test 46: tsince = 720. XDOT std: 2.44024599, calc 2.44024485772685 ok 46 # Test 47: tsince = 720. YDOT std: 0.09810869, calc 0.0981111280020338 ok 47 # Test 48: tsince = 720. ZDOT std: -7.31995916, calc -7.31995950510418 ok 48 # Test 49: tsince = 1080. X std: 2663.09078980, calc 2663.09012460468 ok 49 # Test 50: tsince = 1080. Y std: -6115.48229980, calc -6115.48276378568 ok 50 # Test 51: tsince = 1080. Z std: 196.39640427, calc 196.399114927312 ok 51 # Test 52: tsince = 1080. XDOT std: 2.19611958, calc 2.19612077906939 ok 52 # Test 53: tsince = 1080. YDOT std: 0.65241995, calc 0.652416893176613 ok 53 # Test 54: tsince = 1080. ZDOT std: -7.36282432, calc -7.36282420827646 ok 54 # Test 55: tsince = 1440. X std: 2742.55133057, calc 2742.5543370605 ok 55 # Test 56: tsince = 1440. Y std: -6079.67144775, calc -6079.66987220964 ok 56 # Test 57: tsince = 1440. Z std: -326.38095856, calc -326.391444615315 ok 57 # Test 58: tsince = 1440. XDOT std: 1.94850229, calc 1.94849699193723 ok 58 # Test 59: tsince = 1440. YDOT std: 1.21106251, calc 1.21107413881727 ok 59 # Test 60: tsince = 1440. ZDOT std: -7.35619372, calc -7.35619305044935 ok 60 # # **** sgp8 **** # 1 88888U 80275.98708465 .00073094 13844-3 66816-4 0 8 # 2 88888 72.8435 115.9689 0086731 52.6988 110.5714 16.05824518 105 # Test 61: tsince = 0. X std: 2328.87265015, calc 2328.87330091212 ok 61 # Test 62: tsince = 0. Y std: -5995.21289063, calc -5995.2126595693 ok 62 # Test 63: tsince = 0. Z std: 1720.04884338, calc 1720.04860798697 ok 63 # Test 64: tsince = 0. XDOT std: 2.91210661, calc 2.91210628399856 ok 64 # Test 65: tsince = 0. YDOT std: -0.98353850, calc -0.983538063945152 ok 65 # Test 66: tsince = 0. ZDOT std: -7.09081554, calc -7.09081552148 ok 66 # Test 67: tsince = 360. X std: 2456.04577637, calc 2456.04638941355 ok 67 # Test 68: tsince = 360. Y std: -6071.90490722, calc -6071.90492662884 ok 68 # Test 69: tsince = 360. Z std: 1222.84086609, calc 1222.83939257898 ok 69 # Test 70: tsince = 360. XDOT std: 2.67936245, calc 2.67936164226068 ok 70 # Test 71: tsince = 360. YDOT std: -0.44820847, calc -0.448206889608532 ok 71 # Test 72: tsince = 360. ZDOT std: -7.22888553, calc -7.22888596680379 ok 72 # Test 73: tsince = 720. X std: 2567.68383789, calc 2567.68503990156 ok 73 # Test 74: tsince = 720. Y std: -6112.40881348, calc -6112.40873906347 ok 74 # Test 75: tsince = 720. Z std: 713.29282379, calc 713.290566228043 ok 75 # Test 76: tsince = 720. XDOT std: 2.43992555, calc 2.43992421032326 ok 76 # Test 77: tsince = 720. YDOT std: 0.09893919, calc 0.0989417743347117 ok 77 # Test 78: tsince = 720. ZDOT std: -7.32018769, calc -7.32018815977686 ok 78 # Test 79: tsince = 1080. X std: 2663.49508667, calc 2663.49578391374 ok 79 # Test 80: tsince = 1080. Y std: -6115.18182373, calc -6115.18153296825 ok 80 # Test 81: tsince = 1080. Z std: 194.62816810, calc 194.62559984917 ok 81 # Test 82: tsince = 1080. XDOT std: 2.19525236, calc 2.19525089188113 ok 82 # Test 83: tsince = 1080. YDOT std: 0.65453661, calc 0.654539369022011 ok 83 # Test 84: tsince = 1080. ZDOT std: -7.36308974, calc -7.36308978780947 ok 84 # Test 85: tsince = 1440. X std: 2743.29238892, calc 2743.2943524834 ok 85 # Test 86: tsince = 1440. Y std: -6078.90783691, calc -6078.9066919683 ok 86 # Test 87: tsince = 1440. Z std: -329.73434067, calc -329.740765589634 ok 87 # Test 88: tsince = 1440. XDOT std: 1.94680957, calc 1.94680612648849 ok 88 # Test 89: tsince = 1440. YDOT std: 1.21500109, calc 1.21500821257638 ok 89 # Test 90: tsince = 1440. ZDOT std: -7.35625595, calc -7.35625566289895 ok 90 # # **** sdp4 **** # 1 11801U 80230.29629788 .01431103 00000-0 14311-1 # 2 11801 46.7916 230.4354 7318036 47.4722 10.4117 2.28537848 # Test 91: tsince = 0. X std: 7473.37066650, calc 7473.37213067007 ok 91 # Test 92: tsince = 0. Y std: 428.95261765, calc 428.954621987101 ok 92 # Test 93: tsince = 0. Z std: 5828.74786377, calc 5828.74786654493 ok 93 # Test 94: tsince = 0. XDOT std: 5.10715413, calc 5.10715289053116 ok 94 # Test 95: tsince = 0. YDOT std: 6.44468284, calc 6.44468288932545 ok 95 # Test 96: tsince = 0. ZDOT std: -0.18613096, calc -0.186131813691158 ok 96 # Test 97: tsince = 360. X std: -3305.22537232, calc -3305.22418379502 ok 97 # Test 98: tsince = 360. Y std: 32410.86328125, calc 32410.8635700008 ok 98 # Test 99: tsince = 360. Z std: -24697.17675781, calc -24697.1773104853 ok 99 # Test 100: tsince = 360. XDOT std: -1.30113538, calc -1.30113547045269 ok 100 # Test 101: tsince = 360. YDOT std: -1.15131518, calc -1.15131512805413 ok 101 # Test 102: tsince = 360. ZDOT std: -0.28333528, calc -0.283335283723647 ok 102 # Test 103: tsince = 720. X std: 14271.28759766, calc 14271.2869450204 ok 103 # Test 104: tsince = 720. Y std: 24110.46411133, calc 24110.4630210244 ok 104 # Test 105: tsince = 720. Z std: -4725.76837158, calc -4725.76754197576 ok 105 # Test 106: tsince = 720. XDOT std: -0.32050445, calc -0.320504424452805 ok 106 # Test 107: tsince = 720. YDOT std: 2.67984074, calc 2.67984096503003 ok 107 # Test 108: tsince = 720. ZDOT std: -2.08405289, calc -2.08405301242859 ok 108 # Test 109: tsince = 1080. X std: -9990.05883789, calc -9990.05756290768 ok 109 # Test 110: tsince = 1080. Y std: 22717.35522461, calc 22717.3610955531 ok 110 # Test 111: tsince = 1080. Z std: -23616.89062501, calc -23616.8935135692 ok 111 # Test 112: tsince = 1080. XDOT std: -1.01667246, calc -1.01667267433696 ok 112 # Test 113: tsince = 1080. YDOT std: -2.29026759, calc -2.29026701969338 ok 113 # Test 114: tsince = 1080. ZDOT std: 0.72892364, calc 0.728923088666958 ok 114 # Test 115: tsince = 1440. X std: 9787.86975097, calc 9787.87225427144 ok 115 # Test 116: tsince = 1440. Y std: 33753.34667969, calc 33753.3442776303 ok 116 # Test 117: tsince = 1440. Z std: -15030.81176758, calc -15030.8063826274 ok 117 # Test 118: tsince = 1440. XDOT std: -1.09425066, calc -1.09425039034415 ok 118 # Test 119: tsince = 1440. YDOT std: 0.92358845, calc 0.92358952297445 ok 119 # Test 120: tsince = 1440. ZDOT std: -1.52230928, calc -1.52230978151137 ok 120 # # **** sdp8 **** # 1 11801U 80230.29629788 .01431103 00000-0 14311-1 # 2 11801 46.7916 230.4354 7318036 47.4722 10.4117 2.28537848 # Test 121: tsince = 0. X std: 7469.47631836, calc 7469.47640411882 ok 121 # Test 122: tsince = 0. Y std: 415.99390792, calc 415.99369096763 ok 122 # Test 123: tsince = 0. Z std: 5829.64318848, calc 5829.64332248999 ok 123 # Test 124: tsince = 0. XDOT std: 5.11402285, calc 5.11402281352808 ok 124 # Test 125: tsince = 0. YDOT std: 6.44403201, calc 6.44403167465267 ok 125 # Test 126: tsince = 0. ZDOT std: -0.18296110, calc -0.182961066169689 ok 126 # Test 127: tsince = 360. X std: -3337.38992310, calc -3337.38636112907 ok 127 # Test 128: tsince = 360. Y std: 32351.39086914, calc 32351.3919976154 ok 128 # Test 129: tsince = 360. Z std: -24658.63037109, calc -24658.6311622807 ok 129 # Test 130: tsince = 360. XDOT std: -1.30200730, calc -1.30200739692571 ok 130 # Test 131: tsince = 360. YDOT std: -1.15603013, calc -1.15602990486218 ok 131 # Test 132: tsince = 360. ZDOT std: -0.28164955, calc -0.281649587139593 ok 132 # Test 133: tsince = 720. X std: 14226.54333496, calc 14226.5444293972 ok 133 # Test 134: tsince = 720. Y std: 24236.08740234, calc 24236.086032833 ok 134 # Test 135: tsince = 720. Z std: -4856.19744873, calc -4856.1957271505 ok 135 # Test 136: tsince = 720. XDOT std: -0.33951668, calc -0.339516425601592 ok 136 # Test 137: tsince = 720. YDOT std: 2.65315416, calc 2.65315445896329 ok 137 # Test 138: tsince = 720. ZDOT std: -2.08114153, calc -2.08114154433412 ok 138 # Test 139: tsince = 1080. X std: -10151.59838867, calc -10151.5956594856 ok 139 # Test 140: tsince = 1080. Y std: 22223.69848633, calc 22223.7049321985 ok 140 # Test 141: tsince = 1080. Z std: -23392.39770508, calc -23392.4000779392 ok 141 # Test 142: tsince = 1080. XDOT std: -1.00112480, calc -1.00112512629243 ok 142 # Test 143: tsince = 1080. YDOT std: -2.33532837, calc -2.33532772951387 ok 143 # Test 144: tsince = 1080. ZDOT std: 0.76987664, calc 0.769876044660344 ok 144 # Test 145: tsince = 1440. X std: 9420.08203125, calc 9420.08375377069 ok 145 # Test 146: tsince = 1440. Y std: 33847.21875000, calc 33847.2180928808 ok 146 # Test 147: tsince = 1440. Z std: -15391.06469727, calc -15391.0601515367 ok 147 # Test 148: tsince = 1440. XDOT std: -1.11986055, calc -1.11986034942692 ok 148 # Test 149: tsince = 1440. YDOT std: 0.85410149, calc 0.854102284772449 ok 149 # Test 150: tsince = 1440. ZDOT std: -1.49506933, calc -1.49506974108458 ok 150 ok t\tle_sgp4r....... This test requires file sgp4-ver.tle, which is contained in http://celestrak.com/publications/AIAA/2006-6753/AIAA-2006-6753.zip I am not authorized to redistribute TLEs, so I have not included this file in the distribution. Dr. Kelso of celestrak.com _is_ authorized, but either the user has requested that it not be downloaded, or my attempt to do so was unsuccessful. The download requires that the web site be up and accessable, and that you have File::Temp, LWP::UserAgent, and Archive::Zip installed. If the download failed for whatever reason, you can download and extract the file yourself, placing it in the 't' subdirectory. The file has Internet/DOS line endings (cr/lf), but Perl's digestion is robust enough that this should not be a problem. 1..0 # skip Automated testing and t\sgp4-ver.tle not downloaded skipped all skipped: Automated testing and t\sgp4-ver.tle not downloaded t\tle_support.....1..31 # # Test 1 - status items initially # Expect: 92 # Got: 92 ok 1 # # Test 2 - status items after TLE->status ('clear') # Expect: 0 # Got: 0 ok 2 # # Test 3 - status items after TLE->status (add => 22222, iridium => '') # Expect: 1 # Got: 1 ok 3 # # Test 4 - class after TLE->new (id => 11111) # Expect: Astro::Coord::ECI::TLE # Got: Astro::Coord::ECI::TLE ok 4 # # Test 5 - value of $tle->can_flare () # Expect: 0 # Got: 0 ok 5 # # Test 6 - class after TLE->rebless ('iridium') # Expect: Astro::Coord::ECI::TLE::Iridium # Got: Astro::Coord::ECI::TLE::Iridium ok 6 # # Test 7 - value of $tle->can_flare () # Expect: 1 # Got: 1 ok 7 # # Test 8 - class after TLE->rebless () # Expect: Astro::Coord::ECI::TLE # Got: Astro::Coord::ECI::TLE ok 8 # # Test 9 - value of $tle->can_flare () # Expect: 0 # Got: 0 ok 9 # # Test 10 - class after TLE->set (id => 22222) # Expect: Astro::Coord::ECI::TLE::Iridium # Got: Astro::Coord::ECI::TLE::Iridium ok 10 # # Test 11 - value of $tle->can_flare () # Expect: 1 # Got: 1 ok 11 # # Test 12 - class after TLE->set (id => 33333) # Expect: Astro::Coord::ECI::TLE::Iridium # Got: Astro::Coord::ECI::TLE::Iridium ok 12 # # Test 13 - value of $tle->can_flare () # Expect: 0 # Got: 0 ok 13 # # Test 14 - class after TLE->new (id => 22222) # Expect: Astro::Coord::ECI::TLE::Iridium # Got: Astro::Coord::ECI::TLE::Iridium ok 14 # # Test 15 - class after TLE->new (reblessable => '0', id => 22222) # Expect: Astro::Coord::ECI::TLE # Got: Astro::Coord::ECI::TLE ok 15 # # Test 16 - class after TLE->set (reblessable => 1) # Expect: Astro::Coord::ECI::TLE::Iridium # Got: Astro::Coord::ECI::TLE::Iridium ok 16 # # Test 17 - class after TLE->rebless ('tle') # Expect: Astro::Coord::ECI::TLE # Got: Astro::Coord::ECI::TLE ok 17 # # Test 18 - class after TLE->rebless () # Expect: Astro::Coord::ECI::TLE::Iridium # Got: Astro::Coord::ECI::TLE::Iridium ok 18 # # Test 19 - class after TLE->set (id => 11111) # Expect: Astro::Coord::ECI::TLE # Got: Astro::Coord::ECI::TLE ok 19 # # Test 20 - value of TLE->is_model_attribute ('reblessable') # Expect: 0 # Got: 0 ok 20 # # Test 21 - value of TLE->is_model_attribute ('horizon') # Expect: 0 # Got: 0 ok 21 # # Test 22 - value of TLE->is_model_attribute ('status') # Expect: 0 # Got: 0 ok 22 # # Test 23 - value of TLE->is_model_attribute ('bstardrag') # Expect: 1 # Got: 1 ok 23 # # Test 24 - value of TLE->is_model_attribute ('meananomaly') # Expect: 1 # Got: 1 ok 24 # # Test 25 - value of TLE->is_model_attribute ('id') # Expect: 0 # Got: 0 ok 25 # # Test 26 - value of TLE->is_model_attribute ('name') # Expect: 0 # Got: 0 ok 26 # # Test 27 - value of TLE->is_valid_model ('model') # Expect: 1 # Got: 1 ok 27 # # Test 28 - value of TLE->is_valid_model ('null') # Expect: 1 # Got: 1 ok 28 # # Test 29 - value of TLE->is_valid_model ('sgp4') # Expect: 1 # Got: 1 ok 29 # # Test 30 - value of TLE->is_valid_model ('sdp4') # Expect: 1 # Got: 1 ok 30 # # Test 31 - value of TLE->is_valid_model ('pdq4') # Expect: 0 # Got: 0 ok 31 ok All tests successful, 1 test and 11 subtests skipped. Files=12, Tests=413, 5 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU)