gnss-js 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -17,17 +17,14 @@ declare const MILLISECONDS_IN_MINUTE: number;
17
17
  declare const MILLISECONDS_IN_SECOND: number;
18
18
  declare const MILLISECONDS_TT_TAI: number;
19
19
  declare const MILLISECONDS_GPS_TAI: number;
20
- declare const START_LEAP_SECS_GPS: number;
21
20
  declare const START_GPS_TIME: Date;
22
21
  declare const START_GAL_TIME: Date;
23
22
  declare const START_BDS_TIME: Date;
24
23
  declare const START_UNIX_TIME: Date;
25
24
  declare const START_NTP_TIME: Date;
26
25
  declare const START_GLO_LEAP: Date;
27
- declare const START_MJD2000_TIME: Date;
28
26
  declare const START_TAI_TIME: Date;
29
27
  declare const RINEX_CODES: HourCode[];
30
- declare const START_JULIAN_CALENDAR_UNIX_SECONDS = 2440587.5;
31
28
  declare const START_JULIAN_TAI = 2436204.5;
32
29
  declare const DAYS_MJD_JULIAN = 2400000.5;
33
30
  declare const DAYS_MJD2000_MJD = 51544.5;
@@ -54,10 +51,10 @@ declare function getDateFromUnixTime(unixTime: number): Date;
54
51
  declare function getWeekNumber(date: Date): number;
55
52
  declare function getTimeOfWeek(date: Date): number;
56
53
  declare function getDateFromGpsData(weekNumber: number, timeOfWeek: number): Date;
57
- declare function getTAIDate(date: Date): Date;
58
- declare function getDateFromTAI(tai_date: Date): Date;
59
- declare function getTTDate(date: Date): Date;
60
- declare function getDateFromTT(tt_date: Date): Date;
54
+ declare function getTaiDate(date: Date): Date;
55
+ declare function getDateFromTai(tai_date: Date): Date;
56
+ declare function getTtDate(date: Date): Date;
57
+ declare function getDateFromTt(tt_date: Date): Date;
61
58
  declare function getGloN4(date: Date): number;
62
59
  declare function getGloNA(date: Date): number;
63
60
  declare function getDateFromGloN(n4: number, na: number, tod: number): Date;
@@ -80,6 +77,7 @@ declare function getTimeDifferenceFromObject(timeDifferenceObject: TimeDifferenc
80
77
  declare function getLeap(date: Date): number;
81
78
  declare function getGpsLeap(date: Date): number;
82
79
  declare function getUtcDate(date: Date): Date;
80
+ declare function getDateFromUtc(utc_date: Date): Date;
83
81
 
84
82
  declare function getJulianDate(date: Date): number;
85
83
  declare function getDateFromJulianDate(julianDate: number): Date;
@@ -88,4 +86,4 @@ declare function getDateFromMJD(mjd: number): Date;
88
86
  declare function getMJD2000(date: Date): number;
89
87
  declare function getDateFromMJD2000(mjd2000: number): Date;
90
88
 
91
- export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_CALENDAR_UNIX_SECONDS, START_JULIAN_TAI, START_LEAP_SECS_GPS, START_MJD2000_TIME, START_MJD_UNIX_SECONDS, START_NTP_TIME, START_TAI_TIME, START_UNIX_TIME, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTAI, getDateFromTT, getDateFromTimeOfDay, getDateFromUnixTime, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsLeap, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeap, getMJD, getMJD2000, getMinutesFromTimeDifference, getNtpTime, getRINEX, getSecondsFromTimeDifference, getTAIDate, getTTDate, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getUnixTime, getUtcDate, getWeekNumber, getWeekOfYear };
89
+ export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_TAI, START_MJD_UNIX_SECONDS, START_NTP_TIME, START_TAI_TIME, START_UNIX_TIME, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTai, getDateFromTimeOfDay, getDateFromTt, getDateFromUnixTime, getDateFromUtc, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsLeap, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeap, getMJD, getMJD2000, getMinutesFromTimeDifference, getNtpTime, getRINEX, getSecondsFromTimeDifference, getTaiDate, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getTtDate, getUnixTime, getUtcDate, getWeekNumber, getWeekOfYear };
package/dist/index.d.ts CHANGED
@@ -17,17 +17,14 @@ declare const MILLISECONDS_IN_MINUTE: number;
17
17
  declare const MILLISECONDS_IN_SECOND: number;
18
18
  declare const MILLISECONDS_TT_TAI: number;
19
19
  declare const MILLISECONDS_GPS_TAI: number;
20
- declare const START_LEAP_SECS_GPS: number;
21
20
  declare const START_GPS_TIME: Date;
22
21
  declare const START_GAL_TIME: Date;
23
22
  declare const START_BDS_TIME: Date;
24
23
  declare const START_UNIX_TIME: Date;
25
24
  declare const START_NTP_TIME: Date;
26
25
  declare const START_GLO_LEAP: Date;
27
- declare const START_MJD2000_TIME: Date;
28
26
  declare const START_TAI_TIME: Date;
29
27
  declare const RINEX_CODES: HourCode[];
30
- declare const START_JULIAN_CALENDAR_UNIX_SECONDS = 2440587.5;
31
28
  declare const START_JULIAN_TAI = 2436204.5;
32
29
  declare const DAYS_MJD_JULIAN = 2400000.5;
33
30
  declare const DAYS_MJD2000_MJD = 51544.5;
@@ -54,10 +51,10 @@ declare function getDateFromUnixTime(unixTime: number): Date;
54
51
  declare function getWeekNumber(date: Date): number;
55
52
  declare function getTimeOfWeek(date: Date): number;
56
53
  declare function getDateFromGpsData(weekNumber: number, timeOfWeek: number): Date;
57
- declare function getTAIDate(date: Date): Date;
58
- declare function getDateFromTAI(tai_date: Date): Date;
59
- declare function getTTDate(date: Date): Date;
60
- declare function getDateFromTT(tt_date: Date): Date;
54
+ declare function getTaiDate(date: Date): Date;
55
+ declare function getDateFromTai(tai_date: Date): Date;
56
+ declare function getTtDate(date: Date): Date;
57
+ declare function getDateFromTt(tt_date: Date): Date;
61
58
  declare function getGloN4(date: Date): number;
62
59
  declare function getGloNA(date: Date): number;
63
60
  declare function getDateFromGloN(n4: number, na: number, tod: number): Date;
@@ -80,6 +77,7 @@ declare function getTimeDifferenceFromObject(timeDifferenceObject: TimeDifferenc
80
77
  declare function getLeap(date: Date): number;
81
78
  declare function getGpsLeap(date: Date): number;
82
79
  declare function getUtcDate(date: Date): Date;
80
+ declare function getDateFromUtc(utc_date: Date): Date;
83
81
 
84
82
  declare function getJulianDate(date: Date): number;
85
83
  declare function getDateFromJulianDate(julianDate: number): Date;
@@ -88,4 +86,4 @@ declare function getDateFromMJD(mjd: number): Date;
88
86
  declare function getMJD2000(date: Date): number;
89
87
  declare function getDateFromMJD2000(mjd2000: number): Date;
90
88
 
91
- export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_CALENDAR_UNIX_SECONDS, START_JULIAN_TAI, START_LEAP_SECS_GPS, START_MJD2000_TIME, START_MJD_UNIX_SECONDS, START_NTP_TIME, START_TAI_TIME, START_UNIX_TIME, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTAI, getDateFromTT, getDateFromTimeOfDay, getDateFromUnixTime, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsLeap, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeap, getMJD, getMJD2000, getMinutesFromTimeDifference, getNtpTime, getRINEX, getSecondsFromTimeDifference, getTAIDate, getTTDate, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getUnixTime, getUtcDate, getWeekNumber, getWeekOfYear };
89
+ export { DAYS_MJD2000_MJD, DAYS_MJD_JULIAN, type HourCode, MILLISECONDS_GPS_TAI, MILLISECONDS_IN_DAY, MILLISECONDS_IN_HOUR, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_WEEK, MILLISECONDS_TT_TAI, RINEX_CODES, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SECONDS_IN_WEEK, START_BDS_TIME, START_GAL_TIME, START_GLO_LEAP, START_GPS_TIME, START_JULIAN_TAI, START_MJD_UNIX_SECONDS, START_NTP_TIME, START_TAI_TIME, START_UNIX_TIME, type TimeDifference, getBdsTime, getDateFromBdsTime, getDateFromDayOfWeek, getDateFromDayOfYear, getDateFromGalTime, getDateFromGloN, getDateFromGpsData, getDateFromGpsTime, getDateFromHourCode, getDateFromJulianDate, getDateFromMJD, getDateFromMJD2000, getDateFromRINEX, getDateFromTai, getDateFromTimeOfDay, getDateFromTt, getDateFromUnixTime, getDateFromUtc, getDayOfWeek, getDayOfYear, getGalTime, getGloN4, getGloNA, getGpsLeap, getGpsTime, getHourCode, getHoursFromTimeDifference, getJulianDate, getLeap, getMJD, getMJD2000, getMinutesFromTimeDifference, getNtpTime, getRINEX, getSecondsFromTimeDifference, getTaiDate, getTimeDifference, getTimeDifferenceFromDays, getTimeDifferenceFromHours, getTimeDifferenceFromMinutes, getTimeDifferenceFromObject, getTimeDifferenceFromSeconds, getTimeOfDay, getTimeOfWeek, getTotalDaysFromTimeDifference, getTtDate, getUnixTime, getUtcDate, getWeekNumber, getWeekOfYear };
package/dist/index.js CHANGED
@@ -38,10 +38,7 @@ __export(src_exports, {
38
38
  START_GAL_TIME: () => START_GAL_TIME,
39
39
  START_GLO_LEAP: () => START_GLO_LEAP,
40
40
  START_GPS_TIME: () => START_GPS_TIME,
41
- START_JULIAN_CALENDAR_UNIX_SECONDS: () => START_JULIAN_CALENDAR_UNIX_SECONDS,
42
41
  START_JULIAN_TAI: () => START_JULIAN_TAI,
43
- START_LEAP_SECS_GPS: () => START_LEAP_SECS_GPS,
44
- START_MJD2000_TIME: () => START_MJD2000_TIME,
45
42
  START_MJD_UNIX_SECONDS: () => START_MJD_UNIX_SECONDS,
46
43
  START_NTP_TIME: () => START_NTP_TIME,
47
44
  START_TAI_TIME: () => START_TAI_TIME,
@@ -59,10 +56,11 @@ __export(src_exports, {
59
56
  getDateFromMJD: () => getDateFromMJD,
60
57
  getDateFromMJD2000: () => getDateFromMJD2000,
61
58
  getDateFromRINEX: () => getDateFromRINEX,
62
- getDateFromTAI: () => getDateFromTAI,
63
- getDateFromTT: () => getDateFromTT,
59
+ getDateFromTai: () => getDateFromTai,
64
60
  getDateFromTimeOfDay: () => getDateFromTimeOfDay,
61
+ getDateFromTt: () => getDateFromTt,
65
62
  getDateFromUnixTime: () => getDateFromUnixTime,
63
+ getDateFromUtc: () => getDateFromUtc,
66
64
  getDayOfWeek: () => getDayOfWeek,
67
65
  getDayOfYear: () => getDayOfYear,
68
66
  getGalTime: () => getGalTime,
@@ -80,8 +78,7 @@ __export(src_exports, {
80
78
  getNtpTime: () => getNtpTime,
81
79
  getRINEX: () => getRINEX,
82
80
  getSecondsFromTimeDifference: () => getSecondsFromTimeDifference,
83
- getTAIDate: () => getTAIDate,
84
- getTTDate: () => getTTDate,
81
+ getTaiDate: () => getTaiDate,
85
82
  getTimeDifference: () => getTimeDifference,
86
83
  getTimeDifferenceFromDays: () => getTimeDifferenceFromDays,
87
84
  getTimeDifferenceFromHours: () => getTimeDifferenceFromHours,
@@ -91,6 +88,7 @@ __export(src_exports, {
91
88
  getTimeOfDay: () => getTimeOfDay,
92
89
  getTimeOfWeek: () => getTimeOfWeek,
93
90
  getTotalDaysFromTimeDifference: () => getTotalDaysFromTimeDifference,
91
+ getTtDate: () => getTtDate,
94
92
  getUnixTime: () => getUnixTime,
95
93
  getUtcDate: () => getUtcDate,
96
94
  getWeekNumber: () => getWeekNumber,
@@ -110,14 +108,12 @@ var MILLISECONDS_IN_MINUTE = 6e4;
110
108
  var MILLISECONDS_IN_SECOND = 1e3;
111
109
  var MILLISECONDS_TT_TAI = 32184;
112
110
  var MILLISECONDS_GPS_TAI = 19e3;
113
- var START_LEAP_SECS_GPS = 19;
114
111
  var START_GPS_TIME = /* @__PURE__ */ new Date("1980-01-06T00:00:00Z");
115
112
  var START_GAL_TIME = /* @__PURE__ */ new Date("1999-08-22T00:00:00Z");
116
- var START_BDS_TIME = /* @__PURE__ */ new Date("2006-01-01T00:00:00Z");
117
- var START_UNIX_TIME = /* @__PURE__ */ new Date("1970-01-01T00:00:00Z");
113
+ var START_BDS_TIME = /* @__PURE__ */ new Date("2006-01-01T00:00:13Z");
114
+ var START_UNIX_TIME = /* @__PURE__ */ new Date("1969-12-31T23:59:49Z");
118
115
  var START_NTP_TIME = /* @__PURE__ */ new Date("1900-01-01T00:00:00Z");
119
116
  var START_GLO_LEAP = /* @__PURE__ */ new Date("1996-01-01T00:00:00Z");
120
- var START_MJD2000_TIME = /* @__PURE__ */ new Date("2000-01-01T00:00:00Z");
121
117
  var START_TAI_TIME = /* @__PURE__ */ new Date("1957-12-31T23:59:41Z");
122
118
  var RINEX_CODES = [
123
119
  "a",
@@ -145,7 +141,6 @@ var RINEX_CODES = [
145
141
  "w",
146
142
  "x"
147
143
  ];
148
- var START_JULIAN_CALENDAR_UNIX_SECONDS = 24405875e-1;
149
144
  var START_JULIAN_TAI = 24362045e-1;
150
145
  var DAYS_MJD_JULIAN = 24000005e-1;
151
146
  var DAYS_MJD2000_MJD = 51544.5;
@@ -264,6 +259,98 @@ function getTimeDifferenceFromObject(timeDifferenceObject) {
264
259
  return getTimeDifferenceFromSeconds(seconds) + getTimeDifferenceFromMinutes(minutes) + getTimeDifferenceFromHours(hours) + getTimeDifferenceFromDays(days);
265
260
  }
266
261
 
262
+ // src/time/utc.ts
263
+ function getLeap(date) {
264
+ const ntp_time = getNtpTime(date);
265
+ const leapSecondsMap = {
266
+ 2272060800: 10,
267
+ // 1 Jan 1972
268
+ 2287785600: 11,
269
+ // 1 Jul 1972
270
+ 2303683200: 12,
271
+ // 1 Jan 1973
272
+ 2335219200: 13,
273
+ // 1 Jan 1974
274
+ 2366755200: 14,
275
+ // 1 Jan 1975
276
+ 2398291200: 15,
277
+ // 1 Jan 1976
278
+ 2429913600: 16,
279
+ // 1 Jan 1977
280
+ 2461449600: 17,
281
+ // 1 Jan 1978
282
+ 2492985600: 18,
283
+ // 1 Jan 1979
284
+ 2524521600: 19,
285
+ // 1 Jan 1980
286
+ 2571782400: 20,
287
+ // 1 Jul 1981
288
+ 2603318400: 21,
289
+ // 1 Jul 1982
290
+ 2634854400: 22,
291
+ // 1 Jul 1983
292
+ 2698012800: 23,
293
+ // 1 Jul 1985
294
+ 2776982400: 24,
295
+ // 1 Jan 1988
296
+ 2840140800: 25,
297
+ // 1 Jan 1990
298
+ 2871676800: 26,
299
+ // 1 Jan 1991
300
+ 2918937600: 27,
301
+ // 1 Jul 1992
302
+ 2950473600: 28,
303
+ // 1 Jul 1993
304
+ 2982009600: 29,
305
+ // 1 Jul 1994
306
+ 3029443200: 30,
307
+ // 1 Jan 1996
308
+ 3076704e3: 31,
309
+ // 1 Jul 1997
310
+ 3124137600: 32,
311
+ // 1 Jan 1999
312
+ 3345062400: 33,
313
+ // 1 Jan 2006
314
+ 3439756800: 34,
315
+ // 1 Jan 2009
316
+ 3550089600: 35,
317
+ // 1 Jul 2012
318
+ 3644697600: 36,
319
+ // 1 Jul 2015
320
+ 3692217600: 37
321
+ // 1 Jan 2017
322
+ };
323
+ for (const [timestamp, leapSeconds] of Object.entries(
324
+ leapSecondsMap
325
+ ).reverse()) {
326
+ if (ntp_time / MILLISECONDS_IN_SECOND - leapSeconds >= Number(timestamp)) {
327
+ return leapSeconds;
328
+ }
329
+ }
330
+ return 8;
331
+ }
332
+ function getGpsLeap(date) {
333
+ const leap_seconds = getLeap(date);
334
+ if (leap_seconds < 0)
335
+ return 0;
336
+ return leap_seconds - 19;
337
+ }
338
+ function getUtcDate(date) {
339
+ const tai_date = getTaiDate(date);
340
+ const leap_seconds = getLeap(date);
341
+ return new Date(tai_date.getTime() - leap_seconds * MILLISECONDS_IN_SECOND);
342
+ }
343
+ function getDateFromUtc(utc_date) {
344
+ const tai_date = new Date(
345
+ utc_date.getTime() + getLeap(utc_date) * MILLISECONDS_IN_SECOND
346
+ );
347
+ const leap_seconds = getLeap(getDateFromTai(tai_date));
348
+ const gps_date = getDateFromTai(
349
+ new Date(utc_date.getTime() + leap_seconds * MILLISECONDS_IN_SECOND)
350
+ );
351
+ return gps_date;
352
+ }
353
+
267
354
  // src/time/gnss.ts
268
355
  function getGpsTime(date) {
269
356
  return date.getTime() - START_GPS_TIME.getTime();
@@ -284,10 +371,11 @@ function getDateFromBdsTime(bdsTime) {
284
371
  return new Date(bdsTime + START_BDS_TIME.getTime());
285
372
  }
286
373
  function getUnixTime(date) {
287
- return date.getTime() - START_UNIX_TIME.getTime();
374
+ const utc_date = getUtcDate(date);
375
+ return utc_date.getTime();
288
376
  }
289
377
  function getDateFromUnixTime(unixTime) {
290
- return new Date(unixTime + START_UNIX_TIME.getTime());
378
+ return getDateFromUtc(new Date(unixTime));
291
379
  }
292
380
  function getWeekNumber(date) {
293
381
  return Math.floor(getGpsTime(date) / MILLISECONDS_IN_WEEK);
@@ -300,16 +388,16 @@ function getDateFromGpsData(weekNumber, timeOfWeek) {
300
388
  weekNumber * MILLISECONDS_IN_WEEK + timeOfWeek * MILLISECONDS_IN_SECOND + START_GPS_TIME.getTime()
301
389
  );
302
390
  }
303
- function getTAIDate(date) {
391
+ function getTaiDate(date) {
304
392
  return new Date(date.getTime() + MILLISECONDS_GPS_TAI);
305
393
  }
306
- function getDateFromTAI(tai_date) {
394
+ function getDateFromTai(tai_date) {
307
395
  return new Date(tai_date.getTime() - MILLISECONDS_GPS_TAI);
308
396
  }
309
- function getTTDate(date) {
397
+ function getTtDate(date) {
310
398
  return new Date(date.getTime() + MILLISECONDS_GPS_TAI + MILLISECONDS_TT_TAI);
311
399
  }
312
- function getDateFromTT(tt_date) {
400
+ function getDateFromTt(tt_date) {
313
401
  return new Date(
314
402
  tt_date.getTime() - MILLISECONDS_GPS_TAI - MILLISECONDS_TT_TAI
315
403
  );
@@ -332,7 +420,7 @@ function getDateFromGloN(n4, na, tod) {
332
420
  return date;
333
421
  }
334
422
  function getNtpTime(date) {
335
- return getTAIDate(date).getTime() - START_NTP_TIME.getTime();
423
+ return getTaiDate(date).getTime() - START_NTP_TIME.getTime();
336
424
  }
337
425
 
338
426
  // src/time/rinex.ts
@@ -364,88 +452,6 @@ function getDateFromRINEX(rinex) {
364
452
  return date;
365
453
  }
366
454
 
367
- // src/time/utc.ts
368
- function getLeap(date) {
369
- const ntp_time = getNtpTime(date);
370
- const leapSecondsMap = {
371
- 2272060800: 10,
372
- // 1 Jan 1972
373
- 2287785600: 11,
374
- // 1 Jul 1972
375
- 2303683200: 12,
376
- // 1 Jan 1973
377
- 2335219200: 13,
378
- // 1 Jan 1974
379
- 2366755200: 14,
380
- // 1 Jan 1975
381
- 2398291200: 15,
382
- // 1 Jan 1976
383
- 2429913600: 16,
384
- // 1 Jan 1977
385
- 2461449600: 17,
386
- // 1 Jan 1978
387
- 2492985600: 18,
388
- // 1 Jan 1979
389
- 2524521600: 19,
390
- // 1 Jan 1980
391
- 2571782400: 20,
392
- // 1 Jul 1981
393
- 2603318400: 21,
394
- // 1 Jul 1982
395
- 2634854400: 22,
396
- // 1 Jul 1983
397
- 2698012800: 23,
398
- // 1 Jul 1985
399
- 2776982400: 24,
400
- // 1 Jan 1988
401
- 2840140800: 25,
402
- // 1 Jan 1990
403
- 2871676800: 26,
404
- // 1 Jan 1991
405
- 2918937600: 27,
406
- // 1 Jul 1992
407
- 2950473600: 28,
408
- // 1 Jul 1993
409
- 2982009600: 29,
410
- // 1 Jul 1994
411
- 3029443200: 30,
412
- // 1 Jan 1996
413
- 3076704e3: 31,
414
- // 1 Jul 1997
415
- 3124137600: 32,
416
- // 1 Jan 1999
417
- 3345062400: 33,
418
- // 1 Jan 2006
419
- 3439756800: 34,
420
- // 1 Jan 2009
421
- 3550089600: 35,
422
- // 1 Jul 2012
423
- 3644697600: 36,
424
- // 1 Jul 2015
425
- 3692217600: 37
426
- // 1 Jan 2017
427
- };
428
- for (const [timestamp, leapSeconds] of Object.entries(
429
- leapSecondsMap
430
- ).reverse()) {
431
- if (ntp_time / MILLISECONDS_IN_SECOND - leapSeconds >= Number(timestamp)) {
432
- return leapSeconds;
433
- }
434
- }
435
- return 0;
436
- }
437
- function getGpsLeap(date) {
438
- const leap_seconds = getLeap(date);
439
- if (leap_seconds < 0)
440
- return 0;
441
- return leap_seconds - 19;
442
- }
443
- function getUtcDate(date) {
444
- const tai_date = getTAIDate(date);
445
- const leap_seconds = getLeap(date);
446
- return new Date(tai_date.getTime() - leap_seconds * MILLISECONDS_IN_SECOND);
447
- }
448
-
449
455
  // src/time/julian.ts
450
456
  function getJulianDate(date) {
451
457
  return (date.getTime() - START_TAI_TIME.getTime()) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
@@ -487,10 +493,7 @@ function getDateFromMJD2000(mjd2000) {
487
493
  START_GAL_TIME,
488
494
  START_GLO_LEAP,
489
495
  START_GPS_TIME,
490
- START_JULIAN_CALENDAR_UNIX_SECONDS,
491
496
  START_JULIAN_TAI,
492
- START_LEAP_SECS_GPS,
493
- START_MJD2000_TIME,
494
497
  START_MJD_UNIX_SECONDS,
495
498
  START_NTP_TIME,
496
499
  START_TAI_TIME,
@@ -508,10 +511,11 @@ function getDateFromMJD2000(mjd2000) {
508
511
  getDateFromMJD,
509
512
  getDateFromMJD2000,
510
513
  getDateFromRINEX,
511
- getDateFromTAI,
512
- getDateFromTT,
514
+ getDateFromTai,
513
515
  getDateFromTimeOfDay,
516
+ getDateFromTt,
514
517
  getDateFromUnixTime,
518
+ getDateFromUtc,
515
519
  getDayOfWeek,
516
520
  getDayOfYear,
517
521
  getGalTime,
@@ -529,8 +533,7 @@ function getDateFromMJD2000(mjd2000) {
529
533
  getNtpTime,
530
534
  getRINEX,
531
535
  getSecondsFromTimeDifference,
532
- getTAIDate,
533
- getTTDate,
536
+ getTaiDate,
534
537
  getTimeDifference,
535
538
  getTimeDifferenceFromDays,
536
539
  getTimeDifferenceFromHours,
@@ -540,6 +543,7 @@ function getDateFromMJD2000(mjd2000) {
540
543
  getTimeOfDay,
541
544
  getTimeOfWeek,
542
545
  getTotalDaysFromTimeDifference,
546
+ getTtDate,
543
547
  getUnixTime,
544
548
  getUtcDate,
545
549
  getWeekNumber,
package/dist/index.mjs CHANGED
@@ -10,14 +10,12 @@ var MILLISECONDS_IN_MINUTE = 6e4;
10
10
  var MILLISECONDS_IN_SECOND = 1e3;
11
11
  var MILLISECONDS_TT_TAI = 32184;
12
12
  var MILLISECONDS_GPS_TAI = 19e3;
13
- var START_LEAP_SECS_GPS = 19;
14
13
  var START_GPS_TIME = /* @__PURE__ */ new Date("1980-01-06T00:00:00Z");
15
14
  var START_GAL_TIME = /* @__PURE__ */ new Date("1999-08-22T00:00:00Z");
16
- var START_BDS_TIME = /* @__PURE__ */ new Date("2006-01-01T00:00:00Z");
17
- var START_UNIX_TIME = /* @__PURE__ */ new Date("1970-01-01T00:00:00Z");
15
+ var START_BDS_TIME = /* @__PURE__ */ new Date("2006-01-01T00:00:13Z");
16
+ var START_UNIX_TIME = /* @__PURE__ */ new Date("1969-12-31T23:59:49Z");
18
17
  var START_NTP_TIME = /* @__PURE__ */ new Date("1900-01-01T00:00:00Z");
19
18
  var START_GLO_LEAP = /* @__PURE__ */ new Date("1996-01-01T00:00:00Z");
20
- var START_MJD2000_TIME = /* @__PURE__ */ new Date("2000-01-01T00:00:00Z");
21
19
  var START_TAI_TIME = /* @__PURE__ */ new Date("1957-12-31T23:59:41Z");
22
20
  var RINEX_CODES = [
23
21
  "a",
@@ -45,7 +43,6 @@ var RINEX_CODES = [
45
43
  "w",
46
44
  "x"
47
45
  ];
48
- var START_JULIAN_CALENDAR_UNIX_SECONDS = 24405875e-1;
49
46
  var START_JULIAN_TAI = 24362045e-1;
50
47
  var DAYS_MJD_JULIAN = 24000005e-1;
51
48
  var DAYS_MJD2000_MJD = 51544.5;
@@ -164,6 +161,98 @@ function getTimeDifferenceFromObject(timeDifferenceObject) {
164
161
  return getTimeDifferenceFromSeconds(seconds) + getTimeDifferenceFromMinutes(minutes) + getTimeDifferenceFromHours(hours) + getTimeDifferenceFromDays(days);
165
162
  }
166
163
 
164
+ // src/time/utc.ts
165
+ function getLeap(date) {
166
+ const ntp_time = getNtpTime(date);
167
+ const leapSecondsMap = {
168
+ 2272060800: 10,
169
+ // 1 Jan 1972
170
+ 2287785600: 11,
171
+ // 1 Jul 1972
172
+ 2303683200: 12,
173
+ // 1 Jan 1973
174
+ 2335219200: 13,
175
+ // 1 Jan 1974
176
+ 2366755200: 14,
177
+ // 1 Jan 1975
178
+ 2398291200: 15,
179
+ // 1 Jan 1976
180
+ 2429913600: 16,
181
+ // 1 Jan 1977
182
+ 2461449600: 17,
183
+ // 1 Jan 1978
184
+ 2492985600: 18,
185
+ // 1 Jan 1979
186
+ 2524521600: 19,
187
+ // 1 Jan 1980
188
+ 2571782400: 20,
189
+ // 1 Jul 1981
190
+ 2603318400: 21,
191
+ // 1 Jul 1982
192
+ 2634854400: 22,
193
+ // 1 Jul 1983
194
+ 2698012800: 23,
195
+ // 1 Jul 1985
196
+ 2776982400: 24,
197
+ // 1 Jan 1988
198
+ 2840140800: 25,
199
+ // 1 Jan 1990
200
+ 2871676800: 26,
201
+ // 1 Jan 1991
202
+ 2918937600: 27,
203
+ // 1 Jul 1992
204
+ 2950473600: 28,
205
+ // 1 Jul 1993
206
+ 2982009600: 29,
207
+ // 1 Jul 1994
208
+ 3029443200: 30,
209
+ // 1 Jan 1996
210
+ 3076704e3: 31,
211
+ // 1 Jul 1997
212
+ 3124137600: 32,
213
+ // 1 Jan 1999
214
+ 3345062400: 33,
215
+ // 1 Jan 2006
216
+ 3439756800: 34,
217
+ // 1 Jan 2009
218
+ 3550089600: 35,
219
+ // 1 Jul 2012
220
+ 3644697600: 36,
221
+ // 1 Jul 2015
222
+ 3692217600: 37
223
+ // 1 Jan 2017
224
+ };
225
+ for (const [timestamp, leapSeconds] of Object.entries(
226
+ leapSecondsMap
227
+ ).reverse()) {
228
+ if (ntp_time / MILLISECONDS_IN_SECOND - leapSeconds >= Number(timestamp)) {
229
+ return leapSeconds;
230
+ }
231
+ }
232
+ return 8;
233
+ }
234
+ function getGpsLeap(date) {
235
+ const leap_seconds = getLeap(date);
236
+ if (leap_seconds < 0)
237
+ return 0;
238
+ return leap_seconds - 19;
239
+ }
240
+ function getUtcDate(date) {
241
+ const tai_date = getTaiDate(date);
242
+ const leap_seconds = getLeap(date);
243
+ return new Date(tai_date.getTime() - leap_seconds * MILLISECONDS_IN_SECOND);
244
+ }
245
+ function getDateFromUtc(utc_date) {
246
+ const tai_date = new Date(
247
+ utc_date.getTime() + getLeap(utc_date) * MILLISECONDS_IN_SECOND
248
+ );
249
+ const leap_seconds = getLeap(getDateFromTai(tai_date));
250
+ const gps_date = getDateFromTai(
251
+ new Date(utc_date.getTime() + leap_seconds * MILLISECONDS_IN_SECOND)
252
+ );
253
+ return gps_date;
254
+ }
255
+
167
256
  // src/time/gnss.ts
168
257
  function getGpsTime(date) {
169
258
  return date.getTime() - START_GPS_TIME.getTime();
@@ -184,10 +273,11 @@ function getDateFromBdsTime(bdsTime) {
184
273
  return new Date(bdsTime + START_BDS_TIME.getTime());
185
274
  }
186
275
  function getUnixTime(date) {
187
- return date.getTime() - START_UNIX_TIME.getTime();
276
+ const utc_date = getUtcDate(date);
277
+ return utc_date.getTime();
188
278
  }
189
279
  function getDateFromUnixTime(unixTime) {
190
- return new Date(unixTime + START_UNIX_TIME.getTime());
280
+ return getDateFromUtc(new Date(unixTime));
191
281
  }
192
282
  function getWeekNumber(date) {
193
283
  return Math.floor(getGpsTime(date) / MILLISECONDS_IN_WEEK);
@@ -200,16 +290,16 @@ function getDateFromGpsData(weekNumber, timeOfWeek) {
200
290
  weekNumber * MILLISECONDS_IN_WEEK + timeOfWeek * MILLISECONDS_IN_SECOND + START_GPS_TIME.getTime()
201
291
  );
202
292
  }
203
- function getTAIDate(date) {
293
+ function getTaiDate(date) {
204
294
  return new Date(date.getTime() + MILLISECONDS_GPS_TAI);
205
295
  }
206
- function getDateFromTAI(tai_date) {
296
+ function getDateFromTai(tai_date) {
207
297
  return new Date(tai_date.getTime() - MILLISECONDS_GPS_TAI);
208
298
  }
209
- function getTTDate(date) {
299
+ function getTtDate(date) {
210
300
  return new Date(date.getTime() + MILLISECONDS_GPS_TAI + MILLISECONDS_TT_TAI);
211
301
  }
212
- function getDateFromTT(tt_date) {
302
+ function getDateFromTt(tt_date) {
213
303
  return new Date(
214
304
  tt_date.getTime() - MILLISECONDS_GPS_TAI - MILLISECONDS_TT_TAI
215
305
  );
@@ -232,7 +322,7 @@ function getDateFromGloN(n4, na, tod) {
232
322
  return date;
233
323
  }
234
324
  function getNtpTime(date) {
235
- return getTAIDate(date).getTime() - START_NTP_TIME.getTime();
325
+ return getTaiDate(date).getTime() - START_NTP_TIME.getTime();
236
326
  }
237
327
 
238
328
  // src/time/rinex.ts
@@ -264,88 +354,6 @@ function getDateFromRINEX(rinex) {
264
354
  return date;
265
355
  }
266
356
 
267
- // src/time/utc.ts
268
- function getLeap(date) {
269
- const ntp_time = getNtpTime(date);
270
- const leapSecondsMap = {
271
- 2272060800: 10,
272
- // 1 Jan 1972
273
- 2287785600: 11,
274
- // 1 Jul 1972
275
- 2303683200: 12,
276
- // 1 Jan 1973
277
- 2335219200: 13,
278
- // 1 Jan 1974
279
- 2366755200: 14,
280
- // 1 Jan 1975
281
- 2398291200: 15,
282
- // 1 Jan 1976
283
- 2429913600: 16,
284
- // 1 Jan 1977
285
- 2461449600: 17,
286
- // 1 Jan 1978
287
- 2492985600: 18,
288
- // 1 Jan 1979
289
- 2524521600: 19,
290
- // 1 Jan 1980
291
- 2571782400: 20,
292
- // 1 Jul 1981
293
- 2603318400: 21,
294
- // 1 Jul 1982
295
- 2634854400: 22,
296
- // 1 Jul 1983
297
- 2698012800: 23,
298
- // 1 Jul 1985
299
- 2776982400: 24,
300
- // 1 Jan 1988
301
- 2840140800: 25,
302
- // 1 Jan 1990
303
- 2871676800: 26,
304
- // 1 Jan 1991
305
- 2918937600: 27,
306
- // 1 Jul 1992
307
- 2950473600: 28,
308
- // 1 Jul 1993
309
- 2982009600: 29,
310
- // 1 Jul 1994
311
- 3029443200: 30,
312
- // 1 Jan 1996
313
- 3076704e3: 31,
314
- // 1 Jul 1997
315
- 3124137600: 32,
316
- // 1 Jan 1999
317
- 3345062400: 33,
318
- // 1 Jan 2006
319
- 3439756800: 34,
320
- // 1 Jan 2009
321
- 3550089600: 35,
322
- // 1 Jul 2012
323
- 3644697600: 36,
324
- // 1 Jul 2015
325
- 3692217600: 37
326
- // 1 Jan 2017
327
- };
328
- for (const [timestamp, leapSeconds] of Object.entries(
329
- leapSecondsMap
330
- ).reverse()) {
331
- if (ntp_time / MILLISECONDS_IN_SECOND - leapSeconds >= Number(timestamp)) {
332
- return leapSeconds;
333
- }
334
- }
335
- return 0;
336
- }
337
- function getGpsLeap(date) {
338
- const leap_seconds = getLeap(date);
339
- if (leap_seconds < 0)
340
- return 0;
341
- return leap_seconds - 19;
342
- }
343
- function getUtcDate(date) {
344
- const tai_date = getTAIDate(date);
345
- const leap_seconds = getLeap(date);
346
- return new Date(tai_date.getTime() - leap_seconds * MILLISECONDS_IN_SECOND);
347
- }
348
-
349
357
  // src/time/julian.ts
350
358
  function getJulianDate(date) {
351
359
  return (date.getTime() - START_TAI_TIME.getTime()) / MILLISECONDS_IN_DAY + START_JULIAN_TAI;
@@ -386,10 +394,7 @@ export {
386
394
  START_GAL_TIME,
387
395
  START_GLO_LEAP,
388
396
  START_GPS_TIME,
389
- START_JULIAN_CALENDAR_UNIX_SECONDS,
390
397
  START_JULIAN_TAI,
391
- START_LEAP_SECS_GPS,
392
- START_MJD2000_TIME,
393
398
  START_MJD_UNIX_SECONDS,
394
399
  START_NTP_TIME,
395
400
  START_TAI_TIME,
@@ -407,10 +412,11 @@ export {
407
412
  getDateFromMJD,
408
413
  getDateFromMJD2000,
409
414
  getDateFromRINEX,
410
- getDateFromTAI,
411
- getDateFromTT,
415
+ getDateFromTai,
412
416
  getDateFromTimeOfDay,
417
+ getDateFromTt,
413
418
  getDateFromUnixTime,
419
+ getDateFromUtc,
414
420
  getDayOfWeek,
415
421
  getDayOfYear,
416
422
  getGalTime,
@@ -428,8 +434,7 @@ export {
428
434
  getNtpTime,
429
435
  getRINEX,
430
436
  getSecondsFromTimeDifference,
431
- getTAIDate,
432
- getTTDate,
437
+ getTaiDate,
433
438
  getTimeDifference,
434
439
  getTimeDifferenceFromDays,
435
440
  getTimeDifferenceFromHours,
@@ -439,6 +444,7 @@ export {
439
444
  getTimeOfDay,
440
445
  getTimeOfWeek,
441
446
  getTotalDaysFromTimeDifference,
447
+ getTtDate,
442
448
  getUnixTime,
443
449
  getUtcDate,
444
450
  getWeekNumber,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gnss-js",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Tool to peform GNSS-related computations",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -7,10 +7,12 @@ const {
7
7
  getDateFromBdsTime,
8
8
  getUnixTime,
9
9
  getDateFromUnixTime,
10
- getTAIDate,
11
- getTTDate,
12
- getDateFromTAI,
13
- getDateFromTT,
10
+ getTaiDate,
11
+ getTtDate,
12
+ getDateFromTai,
13
+ getDateFromTt,
14
+ getWeekNumber,
15
+ getDateFromGpsData,
14
16
  } = require('../src/index');
15
17
 
16
18
  test('getGpsTime', () => {
@@ -18,61 +20,76 @@ test('getGpsTime', () => {
18
20
  expect(gps_time).toBe(0);
19
21
  });
20
22
 
21
- test('getGalTime', () => {
22
- const gal_time = getGalTime(new Date('1999-08-22T00:00:00Z'));
23
- expect(gal_time).toBe(0);
23
+ test('getDateFromGpsTime', () => {
24
+ const date = getDateFromGpsTime(0);
25
+ expect(date.getTime()).toBe(new Date('1980-01-06T00:00:00Z').getTime());
24
26
  });
25
27
 
26
- test('getBdsTime', () => {
27
- const bds_time = getBdsTime(new Date('2006-01-01T00:00:00Z'));
28
- expect(bds_time).toBe(0);
28
+ test('getWeekNumber', () => {
29
+ const week_no = getWeekNumber(new Date('1980-01-06T00:00:00Z'));
30
+ expect(week_no).toBe(0);
29
31
  });
30
32
 
31
- test('getUnixTime', () => {
32
- const unix_time = getUnixTime(new Date('1970-01-01T00:00:00Z'));
33
- expect(unix_time).toBe(0);
33
+ test('getTimeOfWeek', () => {
34
+ const tow = getWeekNumber(new Date('1980-01-06T00:00:00Z'));
35
+ expect(tow).toBe(0);
34
36
  });
35
37
 
36
- test('getDateFromGpsTime', () => {
37
- const date = getDateFromGpsTime(0);
38
+ test('getDateFromGpsData', () => {
39
+ const date = getDateFromGpsData(0, 0);
38
40
  expect(date.getTime()).toBe(new Date('1980-01-06T00:00:00Z').getTime());
39
41
  });
40
42
 
43
+ test('getGalTime', () => {
44
+ const gal_time = getGalTime(new Date('1999-08-22T00:00:00Z'));
45
+ expect(gal_time).toBe(0);
46
+ });
47
+
41
48
  test('getDateFromGalTime', () => {
42
49
  const date = getDateFromGalTime(0);
43
50
  expect(date.getTime()).toBe(new Date('1999-08-22T00:00:00Z').getTime());
44
51
  });
45
52
 
53
+ test('getBdsTime', () => {
54
+ const bds_time = getBdsTime(new Date('2006-01-01T00:00:13Z'));
55
+ expect(bds_time).toBe(0);
56
+ });
57
+
46
58
  test('getDateFromBdsTime', () => {
47
59
  const date = getDateFromBdsTime(0);
48
- expect(date.getTime()).toBe(new Date('2006-01-01T00:00:00Z').getTime());
60
+ expect(date.getTime()).toBe(new Date('2006-01-01T00:00:13Z').getTime());
61
+ });
62
+
63
+ test('getUnixTime', () => {
64
+ const unix_time = getUnixTime(new Date('2025-01-01T00:00:18Z'));
65
+ expect(unix_time).toBe(1735689600000);
49
66
  });
50
67
 
51
68
  test('getDateFromUnixTime', () => {
52
69
  const date = getDateFromUnixTime(0);
53
- expect(date.getTime()).toBe(new Date('1970-01-01T00:00:00Z').getTime());
70
+ expect(date.toISOString()).toBe('1969-12-31T23:59:49.000Z');
54
71
  });
55
72
 
56
- test('getTAIDate', () => {
73
+ test('getTaiDate', () => {
57
74
  const date = getDateFromGpsTime(0);
58
- const tai_date = getTAIDate(date);
75
+ const tai_date = getTaiDate(date);
59
76
  expect(tai_date.getTime()).toBe(new Date('1980-01-06T00:00:19Z').getTime());
60
77
  });
61
78
 
62
- test('getDateFromTAI', () => {
63
- const date = getDateFromTAI(new Date('1980-01-06T00:00:19Z'));
79
+ test('getDateFromTai', () => {
80
+ const date = getDateFromTai(new Date('1980-01-06T00:00:19Z'));
64
81
  expect(getGpsTime(date)).toBe(0);
65
82
  });
66
83
 
67
- test('getTTDate', () => {
84
+ test('getTtDate', () => {
68
85
  const date = getDateFromGpsTime(0);
69
- const tt_date = getTTDate(date);
86
+ const tt_date = getTtDate(date);
70
87
  expect(tt_date.getTime()).toBe(
71
88
  new Date('1980-01-06T00:00:51.184Z').getTime()
72
89
  );
73
90
  });
74
91
 
75
- test('getDateFromTT', () => {
76
- const date = getDateFromTT(new Date('1980-01-06T00:00:51.184Z'));
92
+ test('getDateFromTt', () => {
93
+ const date = getDateFromTt(new Date('1980-01-06T00:00:51.184Z'));
77
94
  expect(getGpsTime(date)).toBe(0);
78
95
  });
package/test/test.js ADDED
@@ -0,0 +1,11 @@
1
+ // To run: npx tsc && node test/test.js
2
+
3
+ const { getTaiDate, getDateFromUtc } = require('../dist/index');
4
+
5
+ const utc_date = new Date('2017-01-01T00:00:01.000Z');
6
+ // const utc_date = new Date('2016-12-31T23:59:59.000Z');
7
+ const gps_date = getDateFromUtc(utc_date);
8
+
9
+ console.log('TAI Date:', getTaiDate(gps_date).toISOString());
10
+ console.log('UTC Date:', utc_date.toISOString());
11
+ console.log('GPS Date:', gps_date.toISOString());
package/test/utc.test.js CHANGED
@@ -1,4 +1,9 @@
1
- const { getLeap, getGpsLeap, getUtcDate } = require('../src/index');
1
+ const {
2
+ getLeap,
3
+ getGpsLeap,
4
+ getUtcDate,
5
+ getDateFromUtc,
6
+ } = require('../src/index');
2
7
 
3
8
  test('getLeap', () => {
4
9
  const gps_date = new Date('2017-01-01T00:00:31Z');
@@ -17,3 +22,9 @@ test('getUtcDate', () => {
17
22
  const utc_date = getUtcDate(gps_date);
18
23
  expect(utc_date.toISOString()).toBe('2017-01-01T00:00:13.000Z');
19
24
  });
25
+
26
+ test('getDateFromUtc', () => {
27
+ const utc_date = new Date('2017-01-01T00:00:01.000Z');
28
+ const gps_date = getDateFromUtc(utc_date);
29
+ expect(gps_date.toISOString()).toBe('2017-01-01T00:00:19.000Z');
30
+ });