74 lines
1.9 KiB
JavaScript
74 lines
1.9 KiB
JavaScript
var test = require('tap').test;
|
|
|
|
var julian = require('..');
|
|
|
|
test('from Date to JD', function (t) {
|
|
t.equal(julian(new Date(0)), '2440587.500000', 'unix epoch');
|
|
t.equal(julian(new Date('2000-01-01T12:00:00.000Z')), '2451545.000000', 'noon of Jan 1, 2000');
|
|
|
|
t.equal(julian(new Date('2013-01-01T00:30:00.000Z')), '2456293.520833');
|
|
|
|
t.end();
|
|
});
|
|
|
|
test('from JD to Date', function (t) {
|
|
t.equal(+julian.toDate('2440587.500000'), +new Date(0), 'unix epoch');
|
|
t.equal(+julian.toDate('2451545.000000'), +new Date('2000-01-01T12:00:00.000Z'), 'noon of Jan 1, 2000');
|
|
|
|
t.end();
|
|
});
|
|
|
|
test('convert back and forth without floating point errors', function (t) {
|
|
var now = new Date();
|
|
|
|
t.equal(+
|
|
julian.fromJulianDayAndMilliseconds(
|
|
julian.toJulianDay(now),
|
|
julian.toMillisecondsInJulianDay(now)
|
|
),
|
|
+now,
|
|
'now is converted to julian and back safely'
|
|
);
|
|
|
|
t.equal(
|
|
julian.toMillisecondsInJulianDay(new Date('2000-01-01T12:00:00.000Z')),
|
|
0,
|
|
'the day starts at noon, so noon is zero milliseconds'
|
|
);
|
|
|
|
t.equal(
|
|
julian.toJulianDay(new Date('1970-01-01T00:00:00.000Z')),
|
|
2440587,
|
|
'unix epoch starts on julian day 2440587'
|
|
);
|
|
|
|
t.equal(
|
|
julian.toMillisecondsInJulianDay(new Date('1970-01-01T00:00:00.000Z')),
|
|
43200000,
|
|
'unix epoch starts with half a julian day'
|
|
);
|
|
|
|
t.equal(
|
|
julian.toJulianDay(new Date('1970-01-01T12:00:00.000Z')),
|
|
2440588,
|
|
'first noon in unix epoch starts julian day 2440588'
|
|
);
|
|
|
|
t.equal(
|
|
julian.toMillisecondsInJulianDay(new Date('1970-01-01T12:00:00.000Z')),
|
|
0,
|
|
'unix epoch starts with half a julian day'
|
|
);
|
|
|
|
//the instance in time known as j2000, aka terriestial time
|
|
t.equal(
|
|
julian.toJulianDay(new Date('2000-01-01T12:00:00.000Z')),
|
|
2451545,
|
|
'toJulianDay is give correct julian day for j2000 epoch'
|
|
);
|
|
// test data taken from https://en.wikipedia.org/wiki/Epoch_(astronomy)#Julian_years_and_J2000
|
|
|
|
t.end();
|
|
|
|
});
|