1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261
|
#!perl
use strict;
use warnings;
use Test::More;
use Test::Number::Delta relative => 1E-10;
BEGIN {
use_ok('Time::Moment');
}
{
my @tests = (
[ '0001-01-01T00:00:00Z', -678575.0 ],
[ '0001-01-01T00:00:00.001Z', -678574.9999999885 ],
[ '0001-01-01T00:00:00.002Z', -678574.9999999768 ],
[ '0001-01-01T00:00:00.010Z', -678574.9999998843 ],
[ '0001-01-01T00:00:00.020Z', -678574.9999997686 ],
[ '0001-01-01T00:00:00.100Z', -678574.9999988426 ],
[ '0001-01-01T00:00:00.200Z', -678574.9999976852 ],
[ '0001-01-01T00:00:00.300Z', -678574.9999965278 ],
[ '0001-01-01T00:00:00.400Z', -678574.9999953704 ],
[ '0001-01-01T00:00:00.490Z', -678574.9999943287 ],
[ '0001-01-01T00:00:00.499Z', -678574.9999942245 ],
[ '0001-01-01T00:00:00.500Z', -678574.999994213 ],
[ '0001-01-01T00:00:00.501Z', -678574.9999942014 ],
[ '0001-01-01T00:00:00.510Z', -678574.9999940973 ],
[ '0001-01-01T00:00:00.600Z', -678574.9999930556 ],
[ '0001-01-01T00:00:00.700Z', -678574.9999918982 ],
[ '0001-01-01T00:00:00.800Z', -678574.9999907408 ],
[ '0001-01-01T00:00:00.900Z', -678574.9999895834 ],
[ '0001-01-01T00:00:00.980Z', -678574.9999886574 ],
[ '0001-01-01T00:00:00.990Z', -678574.9999885417 ],
[ '0001-01-01T00:00:00.998Z', -678574.999988449 ],
[ '0001-01-01T00:00:00.999Z', -678574.9999884375 ],
[ '0001-01-01T00:00:01Z', -678574.9999884259 ],
[ '0001-01-01T00:00:01.001Z', -678574.9999884143 ],
[ '0001-01-01T00:00:01.002Z', -678574.9999884028 ],
[ '0001-01-01T00:00:01.010Z', -678574.9999883102 ],
[ '0001-01-01T00:00:01.020Z', -678574.9999881944 ],
[ '0001-01-01T00:00:01.100Z', -678574.9999872685 ],
[ '0001-01-01T00:00:01.200Z', -678574.9999861111 ],
[ '1899-12-31T00:00:00Z', 15019.0 ],
[ '1900-01-01T00:00:00Z', 15020.0 ],
[ '1900-02-27T00:00:00Z', 15077.0 ],
[ '1900-02-28T00:00:00Z', 15078.0 ],
[ '1900-03-01T00:00:00Z', 15079.0 ],
[ '1900-03-02T00:00:00Z', 15080.0 ],
[ '1969-12-31T23:59:58Z', 40586.9999768519 ],
[ '1969-12-31T23:59:58.500Z', 40586.9999826389 ],
[ '1969-12-31T23:59:58.800Z', 40586.9999861111 ],
[ '1969-12-31T23:59:58.900Z', 40586.9999872685 ],
[ '1969-12-31T23:59:58.980Z', 40586.9999881944 ],
[ '1969-12-31T23:59:58.990Z', 40586.9999883102 ],
[ '1969-12-31T23:59:58.998Z', 40586.9999884028 ],
[ '1969-12-31T23:59:58.999Z', 40586.9999884144 ],
[ '1969-12-31T23:59:59Z', 40586.9999884259 ],
[ '1969-12-31T23:59:59.001Z', 40586.9999884375 ],
[ '1969-12-31T23:59:59.002Z', 40586.9999884491 ],
[ '1969-12-31T23:59:59.010Z', 40586.9999885417 ],
[ '1969-12-31T23:59:59.020Z', 40586.9999886574 ],
[ '1969-12-31T23:59:59.100Z', 40586.9999895833 ],
[ '1969-12-31T23:59:59.200Z', 40586.9999907407 ],
[ '1969-12-31T23:59:59.300Z', 40586.9999918981 ],
[ '1969-12-31T23:59:59.400Z', 40586.9999930556 ],
[ '1969-12-31T23:59:59.490Z', 40586.9999940972 ],
[ '1969-12-31T23:59:59.499Z', 40586.9999942014 ],
[ '1969-12-31T23:59:59.500Z', 40586.999994213 ],
[ '1969-12-31T23:59:59.501Z', 40586.9999942245 ],
[ '1969-12-31T23:59:59.510Z', 40586.9999943287 ],
[ '1969-12-31T23:59:59.600Z', 40586.9999953704 ],
[ '1969-12-31T23:59:59.700Z', 40586.9999965278 ],
[ '1969-12-31T23:59:59.800Z', 40586.9999976852 ],
[ '1969-12-31T23:59:59.900Z', 40586.9999988426 ],
[ '1969-12-31T23:59:59.980Z', 40586.9999997685 ],
[ '1969-12-31T23:59:59.990Z', 40586.9999998843 ],
[ '1969-12-31T23:59:59.998Z', 40586.9999999769 ],
[ '1969-12-31T23:59:59.999Z', 40586.9999999884 ],
[ '1970-01-01T00:00:00Z', 40587.0 ],
[ '1970-01-01T00:00:00.001Z', 40587.0000000116 ],
[ '1970-01-01T00:00:00.002Z', 40587.0000000231 ],
[ '1970-01-01T00:00:00.010Z', 40587.0000001157 ],
[ '1970-01-01T00:00:00.020Z', 40587.0000002315 ],
[ '1970-01-01T00:00:00.100Z', 40587.0000011574 ],
[ '1970-01-01T00:00:00.200Z', 40587.0000023148 ],
[ '1970-01-01T00:00:00.300Z', 40587.0000034722 ],
[ '1970-01-01T00:00:00.400Z', 40587.0000046296 ],
[ '1970-01-01T00:00:00.490Z', 40587.0000056713 ],
[ '1970-01-01T00:00:00.499Z', 40587.0000057755 ],
[ '1970-01-01T00:00:00.500Z', 40587.000005787 ],
[ '1970-01-01T00:00:00.501Z', 40587.0000057986 ],
[ '1970-01-01T00:00:00.510Z', 40587.0000059028 ],
[ '1970-01-01T00:00:00.600Z', 40587.0000069444 ],
[ '1970-01-01T00:00:00.700Z', 40587.0000081019 ],
[ '1970-01-01T00:00:00.800Z', 40587.0000092593 ],
[ '1970-01-01T00:00:00.900Z', 40587.0000104167 ],
[ '1970-01-01T00:00:00.980Z', 40587.0000113426 ],
[ '1970-01-01T00:00:00.990Z', 40587.0000114583 ],
[ '1970-01-01T00:00:00.998Z', 40587.0000115509 ],
[ '1970-01-01T00:00:00.999Z', 40587.0000115625 ],
[ '1970-01-01T00:00:01Z', 40587.0000115741 ],
[ '1970-01-01T00:00:01.001Z', 40587.0000115856 ],
[ '1970-01-01T00:00:01.002Z', 40587.0000115972 ],
[ '1970-01-01T00:00:01.010Z', 40587.0000116898 ],
[ '1970-01-01T00:00:01.020Z', 40587.0000118056 ],
[ '1970-01-01T00:00:01.100Z', 40587.0000127315 ],
[ '1970-01-01T00:00:01.200Z', 40587.0000138889 ],
[ '1982-08-25T00:15:20.213Z', 45206.0106506134 ],
[ '2065-04-19T00:16:48.290Z', 75394.0116700231 ],
[ '2147-12-15T00:55:25.446Z', 105583.0384889583 ],
[ '2230-08-10T01:02:46.891Z', 135771.0435982755 ],
[ '2313-04-06T01:04:15.597Z', 165960.0446249653 ],
[ '2395-11-30T01:09:40.889Z', 196148.048389919 ],
[ '2478-07-25T01:11:32.560Z', 226336.0496824074 ],
[ '2561-03-21T01:30:19.169Z', 256525.0627218634 ],
[ '2643-11-15T01:48:25.580Z', 286713.0752960648 ],
[ '2726-07-12T02:03:31.919Z', 316902.0857860995 ],
[ '2809-03-06T02:11:11.986Z', 347090.0911109491 ],
[ '2891-10-31T02:24:37.095Z', 377279.1004293403 ],
[ '2974-06-26T02:35:07.220Z', 407467.1077224537 ],
[ '3057-02-19T02:45:12.109Z', 437655.1147234838 ],
[ '3139-10-17T03:06:39.990Z', 467844.1296295139 ],
[ '3222-06-11T03:08:08.251Z', 498032.1306510532 ],
[ '3305-02-05T03:19:12.576Z', 528221.1383399999 ],
[ '3387-10-01T03:29:42.574Z', 558409.1456316435 ],
[ '3470-05-27T03:37:30.813Z', 588597.1510510764 ],
[ '3553-01-21T04:14:38.231Z', 618786.1768313773 ],
[ '3635-09-16T04:16:28.559Z', 648974.1781083217 ],
[ '3718-05-13T04:17:58.222Z', 679163.179146088 ],
[ '3801-01-06T04:21:41.794Z', 709351.1817337269 ],
[ '3883-09-02T04:56:35.792Z', 739540.2059698148 ],
[ '3966-04-28T05:25:14.885Z', 769728.2258667245 ],
[ '4048-12-21T05:26:05.724Z', 799916.2264551389 ],
[ '4131-08-18T05:46:44.068Z', 830105.240787824 ],
[ '4214-04-13T05:48:01.141Z', 860293.2416798727 ],
[ '4296-12-07T05:53:52.315Z', 890482.2457443866 ],
[ '4379-08-03T06:14:48.580Z', 920670.2602844908 ],
[ '4462-03-28T06:46:15.738Z', 950858.2821265972 ],
[ '4544-11-22T07:31:20.407Z', 981047.3134306365 ],
[ '4627-07-19T07:58:33.754Z', 1011235.3323351158 ],
[ '4710-03-15T08:07:43.130Z', 1041424.3386936343 ],
[ '4792-11-07T08:29:11.091Z', 1071612.3536005903 ],
[ '4875-07-04T09:08:15.328Z', 1101801.3807329629 ],
[ '4958-02-27T09:30:41.781Z', 1131989.3963169097 ],
[ '5040-10-23T09:34:04.462Z', 1162177.3986627546 ],
[ '5123-06-20T09:37:23.945Z', 1192366.4009715857 ],
[ '5206-02-12T09:37:56.655Z', 1222554.4013501736 ],
[ '5288-10-08T09:45:12.230Z', 1252743.406391551 ],
[ '5371-06-04T09:54:14.782Z', 1282931.412671088 ],
[ '5454-01-28T09:54:22.108Z', 1313119.4127558796 ],
[ '5536-09-24T10:01:36.151Z', 1343308.4177795255 ],
[ '5619-05-20T12:09:48.602Z', 1373496.5068125231 ],
[ '5702-01-14T12:34:08.549Z', 1403685.5237100578 ],
[ '5784-09-08T12:56:06.495Z', 1433873.5389640625 ],
[ '5867-05-06T12:58:58.217Z', 1464062.5409515856 ],
[ '5949-12-30T12:59:54.263Z', 1494250.5416002662 ],
[ '6032-08-24T13:34:41.331Z', 1524438.5657561459 ],
[ '6115-04-21T13:58:28.601Z', 1554627.5822754744 ],
[ '6197-12-14T14:02:16.899Z', 1584815.5849178126 ],
[ '6280-08-10T14:36:17.444Z', 1615004.6085352316 ],
[ '6363-04-06T14:37:57.451Z', 1645192.60969272 ],
[ '6445-11-30T14:57:42.757Z', 1675381.6234115392 ],
[ '6528-07-26T15:10:48.307Z', 1705569.6325035533 ],
[ '6611-03-22T15:14:39.890Z', 1735757.635183912 ],
[ '6693-11-15T15:19:47.988Z', 1765946.6387498612 ],
[ '6776-07-11T16:04:24.344Z', 1796134.6697262037 ],
[ '6859-03-07T16:22:23.952Z', 1826323.6822216667 ],
[ '6941-10-31T16:29:55.999Z', 1856511.6874536921 ],
[ '7024-06-26T16:58:20.259Z', 1886699.7071789235 ],
[ '7107-02-21T17:04:02.415Z', 1916888.7111390624 ],
[ '7189-10-16T17:18:29.630Z', 1947076.7211762732 ],
[ '7272-06-11T17:47:21.323Z', 1977265.7412190163 ],
[ '7355-02-05T17:53:29.866Z', 2007453.7454845603 ],
[ '7437-10-02T17:53:41.076Z', 2037642.7456143056 ],
[ '7520-05-28T17:55:06.044Z', 2067830.7465977315 ],
[ '7603-01-21T18:14:49.151Z', 2098018.7602910995 ],
[ '7685-09-16T18:17:45.738Z', 2128207.7623349307 ],
[ '7768-05-12T18:29:59.700Z', 2158395.7708298611 ],
[ '7851-01-07T18:33:21.233Z', 2188584.773162419 ],
[ '7933-09-02T19:14:24.673Z', 2218772.8016744559 ],
[ '8016-04-27T19:17:12.816Z', 2248960.8036205554 ],
[ '8098-12-22T19:23:36.418Z', 2279149.8080603937 ],
[ '8181-08-17T19:46:25.908Z', 2309337.8239109721 ],
[ '8264-04-13T20:07:47.314Z', 2339526.8387420601 ],
[ '8346-12-08T20:31:37.603Z', 2369714.855296331 ],
[ '8429-08-03T20:39:57.770Z', 2399903.8610853008 ],
[ '8512-03-29T20:50:17.067Z', 2430091.8682530904 ],
[ '8594-11-22T21:02:57.827Z', 2460279.8770581828 ],
[ '8677-07-19T21:23:05.519Z', 2490468.8910360998 ],
[ '8760-03-14T21:34:49.572Z', 2520656.8991848612 ],
[ '8842-11-08T21:39:05.944Z', 2550845.9021521294 ],
[ '8925-07-04T21:39:18.426Z', 2581033.9022965971 ],
[ '9008-02-28T21:46:07.769Z', 2611221.9070343636 ],
[ '9090-10-24T21:57:55.662Z', 2641410.9152275696 ],
[ '9173-06-19T22:19:11.732Z', 2671598.9299968979 ],
[ '9256-02-13T22:23:51.376Z', 2701787.9332335186 ],
[ '9338-10-09T22:27:58.771Z', 2731975.9360968866 ],
[ '9421-06-05T22:43:30.392Z', 2762164.9468795368 ],
[ '9504-01-30T22:48:25.834Z', 2792352.9502990046 ],
[ '9586-09-24T22:53:51.727Z', 2822540.9540709145 ],
[ '9669-05-20T23:12:56.536Z', 2852729.9673210187 ],
[ '9752-01-14T23:15:54.109Z', 2882917.9693762613 ],
[ '9834-09-10T23:17:12.632Z', 2913106.9702850925 ],
[ '9999-12-31T23:59:58Z', 2973483.999976852 ],
[ '9999-12-31T23:59:58.500Z', 2973483.9999826388 ],
[ '9999-12-31T23:59:58.800Z', 2973483.9999861112 ],
[ '9999-12-31T23:59:58.900Z', 2973483.9999872684 ],
[ '9999-12-31T23:59:58.980Z', 2973483.9999881946 ],
[ '9999-12-31T23:59:58.990Z', 2973483.99998831 ],
[ '9999-12-31T23:59:58.998Z', 2973483.9999884027 ],
[ '9999-12-31T23:59:58.999Z', 2973483.9999884143 ],
[ '9999-12-31T23:59:59Z', 2973483.999988426 ],
[ '9999-12-31T23:59:59Z', 2973483.999988426 ],
[ '9999-12-31T23:59:59.001Z', 2973483.9999884376 ],
[ '9999-12-31T23:59:59.002Z', 2973483.9999884493 ],
[ '9999-12-31T23:59:59.010Z', 2973483.9999885415 ],
[ '9999-12-31T23:59:59.020Z', 2973483.9999886574 ],
[ '9999-12-31T23:59:59.100Z', 2973483.9999895832 ],
[ '9999-12-31T23:59:59.200Z', 2973483.9999907408 ],
[ '9999-12-31T23:59:59.300Z', 2973483.999991898 ],
[ '9999-12-31T23:59:59.400Z', 2973483.9999930556 ],
[ '9999-12-31T23:59:59.490Z', 2973483.9999940973 ],
[ '9999-12-31T23:59:59.499Z', 2973483.9999942016 ],
[ '9999-12-31T23:59:59.500Z', 2973483.9999942128 ],
[ '9999-12-31T23:59:59.501Z', 2973483.9999942244 ],
[ '9999-12-31T23:59:59.510Z', 2973483.9999943287 ],
[ '9999-12-31T23:59:59.600Z', 2973483.9999953704 ],
[ '9999-12-31T23:59:59.700Z', 2973483.9999965276 ],
[ '9999-12-31T23:59:59.800Z', 2973483.9999976852 ],
[ '9999-12-31T23:59:59.900Z', 2973483.9999988424 ],
[ '9999-12-31T23:59:59.980Z', 2973483.9999997686 ],
[ '9999-12-31T23:59:59.990Z', 2973483.9999998841 ],
[ '9999-12-31T23:59:59.998Z', 2973483.9999999767 ],
[ '9999-12-31T23:59:59.999Z', 2973483.9999999884 ],
);
foreach my $test (@tests) {
my ($string, $mjd) = @$test;
my $tm = Time::Moment->from_mjd($mjd);
is($tm->to_string, $string, "Time::Moment->from_mjd($mjd)");
delta_ok($tm->mjd, $mjd, "$tm->mjd");
}
}
{
my $tm = Time::Moment->from_mjd(0, epoch => 719163);
is($tm->to_string, '1970-01-01T00:00:00Z');
}
{
my $tm = Time::Moment->from_mjd(0, epoch => 719163);
is($tm->to_string, '1970-01-01T00:00:00Z');
}
{
my $tm = Time::Moment->from_mjd(0.000001428888889, epoch => 719163, precision => 6);
is($tm->to_string, '1970-01-01T00:00:00.123456Z');
}
done_testing();
|