@checkdigit/time 4.0.0-PR.18-81a3 → 4.0.0-PR.18-e0fa
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/README.md +0 -2
- package/package.json +1 -1
- package/src/date-fns/_lib/addLeadingZeros/test.mts +0 -12
- package/src/date-fns/_lib/getRoundingMethod/test.mts +0 -50
- package/src/date-fns/_lib/getTimezoneOffsetInMilliseconds/test.mts +0 -25
- package/src/date-fns/add/test.mts +0 -95
- package/src/date-fns/addBusinessDays/test.mts +0 -78
- package/src/date-fns/addDays/test.mts +0 -90
- package/src/date-fns/addHours/test.mts +0 -30
- package/src/date-fns/addISOWeekYears/test.mts +0 -41
- package/src/date-fns/addMilliseconds/test.mts +0 -30
- package/src/date-fns/addMinutes/test.mts +0 -30
- package/src/date-fns/addMonths/test.mts +0 -123
- package/src/date-fns/addQuarters/test.mts +0 -47
- package/src/date-fns/addSeconds/test.mts +0 -30
- package/src/date-fns/addWeeks/test.mts +0 -30
- package/src/date-fns/addYears/test.mts +0 -46
- package/src/date-fns/areIntervalsOverlapping/test.mts +0 -231
- package/src/date-fns/clamp/test.mts +0 -36
- package/src/date-fns/closestIndexTo/test.mts +0 -51
- package/src/date-fns/closestTo/test.mts +0 -49
- package/src/date-fns/compareAsc/test.mts +0 -58
- package/src/date-fns/compareDesc/test.mts +0 -58
- package/src/date-fns/constructFrom/test.mts +0 -47
- package/src/date-fns/constructNow/test.mts +0 -37
- package/src/date-fns/daysToWeeks/test.mts +0 -36
- package/src/date-fns/differenceInBusinessDays/test.mts +0 -102
- package/src/date-fns/differenceInCalendarDays/test.mts +0 -206
- package/src/date-fns/differenceInCalendarISOWeekYears/test.mts +0 -93
- package/src/date-fns/differenceInCalendarISOWeeks/test.mts +0 -89
- package/src/date-fns/differenceInCalendarMonths/test.mts +0 -82
- package/src/date-fns/differenceInCalendarQuarters/test.mts +0 -82
- package/src/date-fns/differenceInCalendarWeeks/test.mts +0 -136
- package/src/date-fns/differenceInCalendarYears/test.mts +0 -82
- package/src/date-fns/differenceInDays/test.mts +0 -175
- package/src/date-fns/differenceInHours/test.mts +0 -122
- package/src/date-fns/differenceInISOWeekYears/test.mts +0 -93
- package/src/date-fns/differenceInMilliseconds/test.mts +0 -53
- package/src/date-fns/differenceInMinutes/test.mts +0 -123
- package/src/date-fns/differenceInMonths/test.mts +0 -121
- package/src/date-fns/differenceInQuarters/test.mts +0 -109
- package/src/date-fns/differenceInSeconds/test.mts +0 -144
- package/src/date-fns/differenceInWeeks/test.mts +0 -111
- package/src/date-fns/differenceInYears/test.mts +0 -97
- package/src/date-fns/eachDayOfInterval/test.mts +0 -164
- package/src/date-fns/eachHourOfInterval/test.mts +0 -154
- package/src/date-fns/eachMinuteOfInterval/test.mts +0 -159
- package/src/date-fns/eachMonthOfInterval/test.mts +0 -151
- package/src/date-fns/eachQuarterOfInterval/test.mts +0 -136
- package/src/date-fns/eachWeekOfInterval/test.mts +0 -177
- package/src/date-fns/eachWeekendOfInterval/test.mts +0 -67
- package/src/date-fns/eachWeekendOfMonth/test.mts +0 -23
- package/src/date-fns/eachWeekendOfYear/test.mts +0 -18
- package/src/date-fns/eachYearOfInterval/test.mts +0 -136
- package/src/date-fns/endOfDay/test.mts +0 -27
- package/src/date-fns/endOfDecade/test.mts +0 -32
- package/src/date-fns/endOfHour/test.mts +0 -26
- package/src/date-fns/endOfISOWeek/test.mts +0 -27
- package/src/date-fns/endOfISOWeekYear/test.mts +0 -36
- package/src/date-fns/endOfMinute/test.mts +0 -26
- package/src/date-fns/endOfMonth/test.mts +0 -41
- package/src/date-fns/endOfQuarter/test.mts +0 -27
- package/src/date-fns/endOfSecond/test.mts +0 -26
- package/src/date-fns/endOfToday/test.mts +0 -19
- package/src/date-fns/endOfTomorrow/test.mts +0 -29
- package/src/date-fns/endOfWeek/test.mts +0 -86
- package/src/date-fns/endOfYear/test.mts +0 -27
- package/src/date-fns/endOfYesterday/test.mts +0 -29
- package/src/date-fns/format/test.mts +0 -909
- package/src/date-fns/formatDistance/test.mts +0 -189
- package/src/date-fns/formatDistanceStrict/test.mts +0 -329
- package/src/date-fns/formatDistanceToNow/test.mts +0 -196
- package/src/date-fns/formatDistanceToNowStrict/test.mts +0 -293
- package/src/date-fns/formatDuration/test.mts +0 -74
- package/src/date-fns/formatISO/test.mts +0 -55
- package/src/date-fns/formatISO9075/test.mts +0 -35
- package/src/date-fns/formatISODuration/test.mts +0 -75
- package/src/date-fns/formatRFC3339/test.mts +0 -41
- package/src/date-fns/formatRFC7231/test.mts +0 -18
- package/src/date-fns/formatRelative/test.mts +0 -92
- package/src/date-fns/fp/_lib/convertToFP/test.mts +0 -114
- package/src/date-fns/fromUnixTime/test.mts +0 -14
- package/src/date-fns/getDate/test.mts +0 -19
- package/src/date-fns/getDay/test.mts +0 -19
- package/src/date-fns/getDayOfYear/test.mts +0 -27
- package/src/date-fns/getDaysInMonth/test.mts +0 -33
- package/src/date-fns/getDaysInYear/test.mts +0 -35
- package/src/date-fns/getDecade/test.mts +0 -24
- package/src/date-fns/getDefaultOptions/test.mts +0 -58
- package/src/date-fns/getHours/test.mts +0 -19
- package/src/date-fns/getISODay/test.mts +0 -24
- package/src/date-fns/getISOWeek/test.mts +0 -54
- package/src/date-fns/getISOWeekYear/test.mts +0 -27
- package/src/date-fns/getISOWeeksInYear/test.mts +0 -37
- package/src/date-fns/getMilliseconds/test.mts +0 -19
- package/src/date-fns/getMinutes/test.mts +0 -19
- package/src/date-fns/getMonth/test.mts +0 -19
- package/src/date-fns/getOverlappingDaysInIntervals/test.mts +0 -243
- package/src/date-fns/getQuarter/test.mts +0 -19
- package/src/date-fns/getSeconds/test.mts +0 -19
- package/src/date-fns/getTime/test.mts +0 -21
- package/src/date-fns/getUnixTime/test.mts +0 -26
- package/src/date-fns/getWeek/test.mts +0 -56
- package/src/date-fns/getWeekOfMonth/test.mts +0 -75
- package/src/date-fns/getWeekYear/test.mts +0 -49
- package/src/date-fns/getWeeksInMonth/test.mts +0 -51
- package/src/date-fns/getYear/test.mts +0 -19
- package/src/date-fns/hoursToMilliseconds/test.mts +0 -23
- package/src/date-fns/hoursToMinutes/test.mts +0 -25
- package/src/date-fns/hoursToSeconds/test.mts +0 -25
- package/src/date-fns/interval/test.mts +0 -42
- package/src/date-fns/intervalToDuration/test.mts +0 -235
- package/src/date-fns/intlFormat/test.mts +0 -88
- package/src/date-fns/intlFormatDistance/test.mts +0 -588
- package/src/date-fns/isAfter/test.mts +0 -39
- package/src/date-fns/isBefore/test.mts +0 -39
- package/src/date-fns/isDate/test.mts +0 -72
- package/src/date-fns/isEqual/test.mts +0 -34
- package/src/date-fns/isExists/test.mts +0 -14
- package/src/date-fns/isFirstDayOfMonth/test.mts +0 -25
- package/src/date-fns/isFriday/test.mts +0 -24
- package/src/date-fns/isFuture/test.mts +0 -34
- package/src/date-fns/isLastDayOfMonth/test.mts +0 -25
- package/src/date-fns/isLeapYear/test.mts +0 -35
- package/src/date-fns/isMatch/test.mts +0 -27
- package/src/date-fns/isMonday/test.mts +0 -24
- package/src/date-fns/isPast/test.mts +0 -34
- package/src/date-fns/isSameDay/test.mts +0 -37
- package/src/date-fns/isSameHour/test.mts +0 -37
- package/src/date-fns/isSameISOWeek/test.mts +0 -34
- package/src/date-fns/isSameISOWeekYear/test.mts +0 -48
- package/src/date-fns/isSameMinute/test.mts +0 -37
- package/src/date-fns/isSameMonth/test.mts +0 -34
- package/src/date-fns/isSameQuarter/test.mts +0 -34
- package/src/date-fns/isSameSecond/test.mts +0 -43
- package/src/date-fns/isSameWeek/test.mts +0 -58
- package/src/date-fns/isSameYear/test.mts +0 -34
- package/src/date-fns/isSaturday/test.mts +0 -24
- package/src/date-fns/isSunday/test.mts +0 -24
- package/src/date-fns/isThisHour/test.mts +0 -34
- package/src/date-fns/isThisISOWeek/test.mts +0 -34
- package/src/date-fns/isThisMinute/test.mts +0 -34
- package/src/date-fns/isThisMonth/test.mts +0 -34
- package/src/date-fns/isThisQuarter/test.mts +0 -34
- package/src/date-fns/isThisSecond/test.mts +0 -34
- package/src/date-fns/isThisWeek/test.mts +0 -39
- package/src/date-fns/isThisYear/test.mts +0 -34
- package/src/date-fns/isThursday/test.mts +0 -24
- package/src/date-fns/isToday/test.mts +0 -34
- package/src/date-fns/isTomorrow/test.mts +0 -34
- package/src/date-fns/isTuesday/test.mts +0 -24
- package/src/date-fns/isValid/test.mts +0 -24
- package/src/date-fns/isWednesday/test.mts +0 -24
- package/src/date-fns/isWeekend/test.mts +0 -24
- package/src/date-fns/isWithinInterval/test.mts +0 -92
- package/src/date-fns/isYesterday/test.mts +0 -34
- package/src/date-fns/lastDayOfDecade/test.mts +0 -32
- package/src/date-fns/lastDayOfISOWeek/test.mts +0 -27
- package/src/date-fns/lastDayOfISOWeekYear/test.mts +0 -36
- package/src/date-fns/lastDayOfMonth/test.mts +0 -41
- package/src/date-fns/lastDayOfQuarter/test.mts +0 -27
- package/src/date-fns/lastDayOfWeek/test.mts +0 -86
- package/src/date-fns/lastDayOfYear/test.mts +0 -27
- package/src/date-fns/lightFormat/test.mts +0 -126
- package/src/date-fns/max/test.mts +0 -34
- package/src/date-fns/milliseconds/test.mts +0 -62
- package/src/date-fns/millisecondsToHours/test.mts +0 -24
- package/src/date-fns/millisecondsToMinutes/test.mts +0 -24
- package/src/date-fns/millisecondsToSeconds/test.mts +0 -24
- package/src/date-fns/min/test.mts +0 -34
- package/src/date-fns/minutesToHours/test.mts +0 -24
- package/src/date-fns/minutesToMilliseconds/test.mts +0 -23
- package/src/date-fns/minutesToSeconds/test.mts +0 -23
- package/src/date-fns/monthsToQuarters/test.mts +0 -24
- package/src/date-fns/monthsToYears/test.mts +0 -24
- package/src/date-fns/nextDay/test.mts +0 -44
- package/src/date-fns/nextFriday/test.mts +0 -24
- package/src/date-fns/nextMonday/test.mts +0 -24
- package/src/date-fns/nextSaturday/test.mts +0 -24
- package/src/date-fns/nextSunday/test.mts +0 -24
- package/src/date-fns/nextThursday/test.mts +0 -24
- package/src/date-fns/nextTuesday/test.mts +0 -23
- package/src/date-fns/nextWednesday/test.mts +0 -24
- package/src/date-fns/parse/test.mts +0 -2202
- package/src/date-fns/parseISO/test.mts +0 -362
- package/src/date-fns/parseJSON/test.mts +0 -129
- package/src/date-fns/previousDay/test.mts +0 -42
- package/src/date-fns/previousFriday/test.mts +0 -22
- package/src/date-fns/previousMonday/test.mts +0 -22
- package/src/date-fns/previousSaturday/test.mts +0 -22
- package/src/date-fns/previousSunday/test.mts +0 -22
- package/src/date-fns/previousThursday/test.mts +0 -22
- package/src/date-fns/previousTuesday/test.mts +0 -22
- package/src/date-fns/previousWednesday/test.mts +0 -22
- package/src/date-fns/quartersToMonths/test.mts +0 -24
- package/src/date-fns/quartersToYears/test.mts +0 -24
- package/src/date-fns/roundToNearestHours/test.mts +0 -200
- package/src/date-fns/roundToNearestMinutes/test.mts +0 -208
- package/src/date-fns/secondsToHours/test.mts +0 -24
- package/src/date-fns/secondsToMilliseconds/test.mts +0 -14
- package/src/date-fns/secondsToMinutes/test.mts +0 -24
- package/src/date-fns/set/test.mts +0 -121
- package/src/date-fns/setDate/test.mts +0 -30
- package/src/date-fns/setDay/test.mts +0 -112
- package/src/date-fns/setDayOfYear/test.mts +0 -30
- package/src/date-fns/setDefaultOptions/test.mts +0 -498
- package/src/date-fns/setHours/test.mts +0 -30
- package/src/date-fns/setISODay/test.mts +0 -59
- package/src/date-fns/setISOWeek/test.mts +0 -41
- package/src/date-fns/setISOWeekYear/test.mts +0 -50
- package/src/date-fns/setMilliseconds/test.mts +0 -30
- package/src/date-fns/setMinutes/test.mts +0 -30
- package/src/date-fns/setMonth/test.mts +0 -46
- package/src/date-fns/setQuarter/test.mts +0 -46
- package/src/date-fns/setSeconds/test.mts +0 -30
- package/src/date-fns/setWeek/test.mts +0 -63
- package/src/date-fns/setWeekYear/test.mts +0 -72
- package/src/date-fns/setYear/test.mts +0 -30
- package/src/date-fns/startOfDay/test.mts +0 -27
- package/src/date-fns/startOfDecade/test.mts +0 -32
- package/src/date-fns/startOfHour/test.mts +0 -27
- package/src/date-fns/startOfISOWeek/test.mts +0 -27
- package/src/date-fns/startOfISOWeekYear/test.mts +0 -41
- package/src/date-fns/startOfMinute/test.mts +0 -27
- package/src/date-fns/startOfMonth/test.mts +0 -27
- package/src/date-fns/startOfQuarter/test.mts +0 -27
- package/src/date-fns/startOfSecond/test.mts +0 -27
- package/src/date-fns/startOfToday/test.mts +0 -19
- package/src/date-fns/startOfTomorrow/test.mts +0 -29
- package/src/date-fns/startOfWeek/test.mts +0 -86
- package/src/date-fns/startOfWeekYear/test.mts +0 -58
- package/src/date-fns/startOfYear/test.mts +0 -38
- package/src/date-fns/startOfYesterday/test.mts +0 -29
- package/src/date-fns/sub/test.mts +0 -83
- package/src/date-fns/subBusinessDays/test.mts +0 -40
- package/src/date-fns/subDays/test.mts +0 -30
- package/src/date-fns/subHours/test.mts +0 -30
- package/src/date-fns/subISOWeekYears/test.mts +0 -41
- package/src/date-fns/subMilliseconds/test.mts +0 -30
- package/src/date-fns/subMinutes/test.mts +0 -30
- package/src/date-fns/subMonths/test.mts +0 -47
- package/src/date-fns/subQuarters/test.mts +0 -47
- package/src/date-fns/subSeconds/test.mts +0 -30
- package/src/date-fns/subWeeks/test.mts +0 -30
- package/src/date-fns/subYears/test.mts +0 -46
- package/src/date-fns/toDate/test.mts +0 -35
- package/src/date-fns/weeksToDays/test.mts +0 -24
- package/src/date-fns/yearsToDays/test.mts +0 -24
- package/src/date-fns/yearsToMonths/test.mts +0 -24
- package/src/date-fns/yearsToQuarters/test.mts +0 -24
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { differenceInISOWeekYears } from './index';
|
|
3
|
-
|
|
4
|
-
describe('differenceInISOWeekYears', () => {
|
|
5
|
-
it('returns the number of full ISO week-numbering years between the given dates', () => {
|
|
6
|
-
const result = differenceInISOWeekYears(
|
|
7
|
-
new Date(2012, 6 /* Jul */, 2, 18, 0),
|
|
8
|
-
new Date(2011, 6 /* Jul */, 2, 6, 0),
|
|
9
|
-
);
|
|
10
|
-
expect(result).toBe(1);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
it('returns a negative number if the time value of the first date is smaller', () => {
|
|
14
|
-
const result = differenceInISOWeekYears(
|
|
15
|
-
new Date(2011, 6 /* Jul */, 2, 6, 0),
|
|
16
|
-
new Date(2012, 6 /* Jul */, 2, 18, 0),
|
|
17
|
-
);
|
|
18
|
-
expect(result).toBe(-1);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it('accepts timestamps', () => {
|
|
22
|
-
const result = differenceInISOWeekYears(
|
|
23
|
-
new Date(2014, 6 /* Jul */, 2).getTime(),
|
|
24
|
-
new Date(2010, 6 /* Jul */, 2).getTime(),
|
|
25
|
-
);
|
|
26
|
-
expect(result).toBe(4);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('handles dates before 100 AD', () => {
|
|
30
|
-
const firstDate = new Date(0);
|
|
31
|
-
firstDate.setFullYear(14, 0 /* Jan */, 1);
|
|
32
|
-
firstDate.setHours(0, 0, 0, 0);
|
|
33
|
-
const secondDate = new Date(0);
|
|
34
|
-
secondDate.setFullYear(0, 0 /* Jan */, 1);
|
|
35
|
-
secondDate.setHours(0, 0, 0, 0);
|
|
36
|
-
const result = differenceInISOWeekYears(firstDate, secondDate);
|
|
37
|
-
expect(result).toBe(14);
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
describe('edge cases', () => {
|
|
41
|
-
it('the difference is less than an ISO year, but the given dates are in different calendar years', () => {
|
|
42
|
-
const result = differenceInISOWeekYears(new Date(2012, 0 /* Jan */, 2), new Date(2012, 0 /* Jan */, 1));
|
|
43
|
-
expect(result).toBe(0);
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
it('the same for the swapped dates', () => {
|
|
47
|
-
const result = differenceInISOWeekYears(new Date(2012, 0 /* Jan */, 1), new Date(2012, 0 /* Jan */, 2));
|
|
48
|
-
expect(result).toBe(0);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it('the ISO weeks and weekdays of the given dates are the same', () => {
|
|
52
|
-
const result = differenceInISOWeekYears(new Date(2013, 11 /* Dec */, 30), new Date(2012, 0 /* Jan */, 2));
|
|
53
|
-
expect(result).toBe(2);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
it('the given dates are the same', () => {
|
|
57
|
-
const result = differenceInISOWeekYears(
|
|
58
|
-
new Date(2014, 8 /* Sep */, 5, 0, 0),
|
|
59
|
-
new Date(2014, 8 /* Sep */, 5, 0, 0),
|
|
60
|
-
);
|
|
61
|
-
expect(result).toBe(0);
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
it('does not return -0 when the given dates are the same', () => {
|
|
65
|
-
function isNegativeZero(x: number): boolean {
|
|
66
|
-
return x === 0 && 1 / x < 0;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const result = differenceInISOWeekYears(
|
|
70
|
-
new Date(2014, 8 /* Sep */, 5, 0, 0),
|
|
71
|
-
new Date(2014, 8 /* Sep */, 5, 0, 0),
|
|
72
|
-
);
|
|
73
|
-
|
|
74
|
-
const resultIsNegative = isNegativeZero(result);
|
|
75
|
-
expect(resultIsNegative).toBe(false);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
it('returns NaN if the first date is `Invalid Date`', () => {
|
|
80
|
-
const result = differenceInISOWeekYears(new Date(NaN), new Date(2017, 0 /* Jan */, 1));
|
|
81
|
-
expect(isNaN(result)).toBe(true);
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
it('returns NaN if the second date is `Invalid Date`', () => {
|
|
85
|
-
const result = differenceInISOWeekYears(new Date(2017, 0 /* Jan */, 1), new Date(NaN));
|
|
86
|
-
expect(isNaN(result)).toBe(true);
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
it('returns NaN if the both dates are `Invalid Date`', () => {
|
|
90
|
-
const result = differenceInISOWeekYears(new Date(NaN), new Date(NaN));
|
|
91
|
-
expect(isNaN(result)).toBe(true);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { differenceInMilliseconds } from './index';
|
|
3
|
-
|
|
4
|
-
describe('differenceInMilliseconds', () => {
|
|
5
|
-
it('returns the number of milliseconds between the given dates', () => {
|
|
6
|
-
const result = differenceInMilliseconds(
|
|
7
|
-
new Date(2014, 6 /* Jul */, 2, 12, 30, 20, 700),
|
|
8
|
-
new Date(2014, 6 /* Jul */, 2, 12, 30, 20, 600),
|
|
9
|
-
);
|
|
10
|
-
expect(result).toBe(100);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
it('returns a negative number if the time value of the first date is smaller', () => {
|
|
14
|
-
const result = differenceInMilliseconds(
|
|
15
|
-
new Date(2014, 6 /* Jul */, 2, 12, 30, 20, 600),
|
|
16
|
-
new Date(2014, 6 /* Jul */, 2, 12, 30, 20, 700),
|
|
17
|
-
);
|
|
18
|
-
expect(result).toBe(-100);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it('accepts timestamps', () => {
|
|
22
|
-
const result = differenceInMilliseconds(
|
|
23
|
-
new Date(2014, 8 /* Sep */, 5, 18, 30, 45, 500).getTime(),
|
|
24
|
-
new Date(2014, 8 /* Sep */, 5, 18, 30, 45, 500).getTime(),
|
|
25
|
-
);
|
|
26
|
-
expect(result).toBe(0);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('does not return -0 when the given dates are the same', () => {
|
|
30
|
-
function isNegativeZero(x: number): boolean {
|
|
31
|
-
return x === 0 && 1 / x < 0;
|
|
32
|
-
}
|
|
33
|
-
const result = differenceInMilliseconds(new Date(2014, 8 /* Sep */, 5, 0, 0), new Date(2014, 8 /* Sep */, 5, 0, 0));
|
|
34
|
-
|
|
35
|
-
const resultIsNegative = isNegativeZero(result);
|
|
36
|
-
expect(resultIsNegative).toBe(false);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
it('returns NaN if the first date is `Invalid Date`', () => {
|
|
40
|
-
const result = differenceInMilliseconds(new Date(NaN), new Date(2017, 0 /* Jan */, 1));
|
|
41
|
-
expect(isNaN(result)).toBe(true);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it('returns NaN if the second date is `Invalid Date`', () => {
|
|
45
|
-
const result = differenceInMilliseconds(new Date(2017, 0 /* Jan */, 1), new Date(NaN));
|
|
46
|
-
expect(isNaN(result)).toBe(true);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('returns NaN if the both dates are `Invalid Date`', () => {
|
|
50
|
-
const result = differenceInMilliseconds(new Date(NaN), new Date(NaN));
|
|
51
|
-
expect(isNaN(result)).toBe(true);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { differenceInMinutes } from './index';
|
|
3
|
-
|
|
4
|
-
describe('differenceInMinutes', () => {
|
|
5
|
-
it('returns the number of minutes between the given dates', () => {
|
|
6
|
-
const result = differenceInMinutes(new Date(2014, 6 /* Jul */, 2, 12, 20), new Date(2014, 6 /* Jul */, 2, 12, 6));
|
|
7
|
-
expect(result).toBe(14);
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
it('returns the number of minutes between the given dates with `trunc` as a default rounding method', () => {
|
|
11
|
-
const result = differenceInMinutes(
|
|
12
|
-
new Date(2014, 6 /* Jul */, 2, 12, 6, 50),
|
|
13
|
-
new Date(2014, 6 /* Jul */, 2, 12, 20, 10),
|
|
14
|
-
);
|
|
15
|
-
expect(result).toBe(-13);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
it('returns the number of minutes between the given dates with `trunc` passed in as a rounding method ', () => {
|
|
19
|
-
const result = differenceInMinutes(
|
|
20
|
-
new Date(2014, 6 /* Jul */, 2, 12, 20, 50),
|
|
21
|
-
new Date(2014, 6 /* Jul */, 2, 12, 6, 10),
|
|
22
|
-
{ roundingMethod: 'trunc' },
|
|
23
|
-
);
|
|
24
|
-
expect(result).toBe(14);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it('returns the number of minutes between the given dates with `ceil` passed in as a rounding method ', () => {
|
|
28
|
-
const result = differenceInMinutes(
|
|
29
|
-
new Date(2014, 6 /* Jul */, 2, 12, 20, 50),
|
|
30
|
-
new Date(2014, 6 /* Jul */, 2, 12, 6, 10),
|
|
31
|
-
{ roundingMethod: 'ceil' },
|
|
32
|
-
);
|
|
33
|
-
expect(result).toBe(15);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
it('returns the number of minutes between the given dates with `floor` passed in as a rounding method ', () => {
|
|
37
|
-
const result = differenceInMinutes(
|
|
38
|
-
new Date(2014, 6 /* Jul */, 2, 12, 20, 50),
|
|
39
|
-
new Date(2014, 6 /* Jul */, 2, 12, 6, 10),
|
|
40
|
-
{ roundingMethod: 'floor' },
|
|
41
|
-
);
|
|
42
|
-
expect(result).toBe(14);
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
it('returns the number of minutes between the given dates with `round` passed in as a rounding method ', () => {
|
|
46
|
-
const result = differenceInMinutes(
|
|
47
|
-
new Date(2014, 6 /* Jul */, 2, 12, 20, 60),
|
|
48
|
-
new Date(2014, 6 /* Jul */, 2, 12, 6, 10),
|
|
49
|
-
{ roundingMethod: 'round' },
|
|
50
|
-
);
|
|
51
|
-
expect(result).toBe(15);
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
it('returns a negative number if the time value of the first date is smaller', () => {
|
|
55
|
-
const result = differenceInMinutes(new Date(2014, 6 /* Jul */, 2, 12, 6), new Date(2014, 6 /* Jul */, 2, 12, 20));
|
|
56
|
-
expect(result).toBe(-14);
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
it('accepts timestamps', () => {
|
|
60
|
-
const result = differenceInMinutes(
|
|
61
|
-
new Date(2014, 8 /* Sep */, 5, 18, 45).getTime(),
|
|
62
|
-
new Date(2014, 8 /* Sep */, 5, 18, 15).getTime(),
|
|
63
|
-
);
|
|
64
|
-
expect(result).toBe(30);
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
describe('edge cases', () => {
|
|
68
|
-
it('the difference is less than a minute, but the given dates are in different calendar minutes', () => {
|
|
69
|
-
const result = differenceInMinutes(
|
|
70
|
-
new Date(2014, 8 /* Sep */, 5, 12, 12),
|
|
71
|
-
new Date(2014, 8 /* Sep */, 5, 12, 11, 59),
|
|
72
|
-
);
|
|
73
|
-
expect(result).toBe(0);
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
it('the same for the swapped dates', () => {
|
|
77
|
-
const result = differenceInMinutes(
|
|
78
|
-
new Date(2014, 8 /* Sep */, 5, 12, 11, 59),
|
|
79
|
-
new Date(2014, 8 /* Sep */, 5, 12, 12),
|
|
80
|
-
);
|
|
81
|
-
expect(result).toBe(0);
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
it('the difference is an integral number of minutes', () => {
|
|
85
|
-
const result = differenceInMinutes(
|
|
86
|
-
new Date(2014, 8 /* Sep */, 5, 12, 25),
|
|
87
|
-
new Date(2014, 8 /* Sep */, 5, 12, 15),
|
|
88
|
-
);
|
|
89
|
-
expect(result).toBe(10);
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
it('the given dates are the same', () => {
|
|
93
|
-
const result = differenceInMinutes(new Date(2014, 8 /* Sep */, 5, 0, 0), new Date(2014, 8 /* Sep */, 5, 0, 0));
|
|
94
|
-
expect(result).toBe(0);
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
it('does not return -0 when the given dates are the same', () => {
|
|
98
|
-
function isNegativeZero(x: number) {
|
|
99
|
-
return x === 0 && 1 / x < 0;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
const result = differenceInMinutes(new Date(2014, 8 /* Sep */, 5, 0, 0), new Date(2014, 8 /* Sep */, 5, 0, 0));
|
|
103
|
-
|
|
104
|
-
const resultIsNegative = isNegativeZero(result);
|
|
105
|
-
expect(resultIsNegative).toBe(false);
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
it('returns NaN if the first date is `Invalid Date`', () => {
|
|
110
|
-
const result = differenceInMinutes(new Date(NaN), new Date(2017, 0 /* Jan */, 1));
|
|
111
|
-
expect(isNaN(result)).toBe(true);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
it('returns NaN if the second date is `Invalid Date`', () => {
|
|
115
|
-
const result = differenceInMinutes(new Date(2017, 0 /* Jan */, 1), new Date(NaN));
|
|
116
|
-
expect(isNaN(result)).toBe(true);
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
it('returns NaN if the both dates are `Invalid Date`', () => {
|
|
120
|
-
const result = differenceInMinutes(new Date(NaN), new Date(NaN));
|
|
121
|
-
expect(isNaN(result)).toBe(true);
|
|
122
|
-
});
|
|
123
|
-
});
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { differenceInMonths } from './index';
|
|
3
|
-
|
|
4
|
-
describe('differenceInMonths', () => {
|
|
5
|
-
it('returns the number of full months between the given dates', () => {
|
|
6
|
-
const result = differenceInMonths(new Date(2012, 6 /* Jul */, 2, 18, 0), new Date(2011, 6 /* Jul */, 2, 6, 0));
|
|
7
|
-
expect(result).toBe(12);
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
it('returns a negative number if the time value of the first date is smaller', () => {
|
|
11
|
-
const result = differenceInMonths(new Date(2011, 6 /* Jul */, 2, 6, 0), new Date(2012, 6 /* Jul */, 2, 18, 0));
|
|
12
|
-
expect(result).toBe(-12);
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
it('accepts timestamps', () => {
|
|
16
|
-
const result = differenceInMonths(
|
|
17
|
-
new Date(2014, 7 /* Aug */, 2).getTime(),
|
|
18
|
-
new Date(2010, 6 /* Jul */, 2).getTime(),
|
|
19
|
-
);
|
|
20
|
-
expect(result).toBe(49);
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
describe('edge cases', () => {
|
|
24
|
-
it('it returns diff of 1 month between Feb 28 2021 and Jan 30 2021', () => {
|
|
25
|
-
const result = differenceInMonths(new Date(2021, 1 /* Feb */, 28), new Date(2021, 0 /* Jan */, 30));
|
|
26
|
-
expect(result).toBe(1);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('it returns diff of 1 month between Feb 28 2021 and Jan 31 2021', () => {
|
|
30
|
-
const result = differenceInMonths(new Date(2021, 1 /* Feb */, 28), new Date(2021, 0 /* Jan */, 31));
|
|
31
|
-
expect(result).toBe(1);
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
it('it returns diff of 1 month between Nov, 30 2021 and Oct, 31 2021', () => {
|
|
35
|
-
const result = differenceInMonths(new Date(2021, 10 /* Nov */, 30), new Date(2021, 9 /* Oct */, 31));
|
|
36
|
-
expect(result).toBe(1);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
it('it returns diff of 1 month between Oct, 31 2021 and Sep, 30 2021', () => {
|
|
40
|
-
const result = differenceInMonths(new Date(2021, 9 /* Oct */, 31), new Date(2021, 8 /* Sep */, 30));
|
|
41
|
-
expect(result).toBe(1);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it('it returns diff of 6 month between Oct, 31 2021 and Apr, 30 2021', () => {
|
|
45
|
-
const result = differenceInMonths(new Date(2021, 9 /* Oct */, 31), new Date(2021, 3 /* Apr */, 30));
|
|
46
|
-
expect(result).toBe(6);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('it returns diff of -1 month between Sep, 30 2021 and Oct, 31 2021', () => {
|
|
50
|
-
const result = differenceInMonths(new Date(2021, 8 /* Sep */, 30), new Date(2021, 9 /* Oct */, 31));
|
|
51
|
-
expect(result).toBe(-1);
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
it('the difference is less than a month, but the given dates are in different calendar months', () => {
|
|
55
|
-
const result = differenceInMonths(new Date(2014, 7 /* Aug */, 1), new Date(2014, 6 /* Jul */, 31));
|
|
56
|
-
expect(result).toBe(0);
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
it('the same for the swapped dates', () => {
|
|
60
|
-
const result = differenceInMonths(new Date(2014, 6 /* Jul */, 31), new Date(2014, 7 /* Aug */, 1));
|
|
61
|
-
expect(result).toBe(0);
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
it('the days of months of the given dates are the same', () => {
|
|
65
|
-
const result = differenceInMonths(new Date(2014, 8 /* Sep */, 6), new Date(2014, 7 /* Aug */, 6));
|
|
66
|
-
expect(result).toBe(1);
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
it('the given dates are the same', () => {
|
|
70
|
-
const result = differenceInMonths(new Date(2014, 8 /* Sep */, 5, 0, 0), new Date(2014, 8 /* Sep */, 5, 0, 0));
|
|
71
|
-
expect(result).toBe(0);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
it('does not return -0 when the given dates are the same', () => {
|
|
75
|
-
function isNegativeZero(x: number): boolean {
|
|
76
|
-
return x === 0 && 1 / x < 0;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const result = differenceInMonths(new Date(2014, 8 /* Sep */, 5, 0, 0), new Date(2014, 8 /* Sep */, 5, 0, 0));
|
|
80
|
-
|
|
81
|
-
const resultIsNegative = isNegativeZero(result);
|
|
82
|
-
expect(resultIsNegative).toBe(false);
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
it('returns NaN if the first date is `Invalid Date`', () => {
|
|
87
|
-
const result = differenceInMonths(new Date(NaN), new Date(2017, 0 /* Jan */, 1));
|
|
88
|
-
expect(isNaN(result)).toBe(true);
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
it('returns NaN if the second date is `Invalid Date`', () => {
|
|
92
|
-
const result = differenceInMonths(new Date(2017, 0 /* Jan */, 1), new Date(NaN));
|
|
93
|
-
expect(isNaN(result)).toBe(true);
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
it('returns NaN if the both dates are `Invalid Date`', () => {
|
|
97
|
-
const result = differenceInMonths(new Date(NaN), new Date(NaN));
|
|
98
|
-
expect(isNaN(result)).toBe(true);
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
describe('edge cases', () => {
|
|
102
|
-
it('returns the number of full months between the given dates - end of Feb', () => {
|
|
103
|
-
expect(
|
|
104
|
-
differenceInMonths(new Date(2012, 1 /* Feb */, 29, 9, 0, 0), new Date(2012, 1 /* Feb */, 29, 10, 0, 0)),
|
|
105
|
-
).toBe(0);
|
|
106
|
-
expect(
|
|
107
|
-
differenceInMonths(new Date(2012, 1 /* Feb */, 28, 9, 0, 0), new Date(2012, 1 /* Feb */, 29, 10, 0, 0)),
|
|
108
|
-
).toBe(0);
|
|
109
|
-
expect(
|
|
110
|
-
differenceInMonths(new Date(2012, 1 /* Feb */, 27, 9, 0, 0), new Date(2012, 1 /* Feb */, 27, 10, 0, 0)),
|
|
111
|
-
).toBe(0);
|
|
112
|
-
expect(
|
|
113
|
-
differenceInMonths(new Date(2012, 1 /* Feb */, 28, 9, 0, 0), new Date(2012, 1 /* Feb */, 28, 10, 0, 0)),
|
|
114
|
-
).toBe(0);
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
expect(
|
|
118
|
-
differenceInMonths(new Date(2021, 1 /* Feb */, 28, 7, 23, 7), new Date(2021, 1 /* Feb */, 28, 7, 38, 18)),
|
|
119
|
-
).toBe(0);
|
|
120
|
-
});
|
|
121
|
-
});
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { differenceInQuarters } from './index';
|
|
3
|
-
|
|
4
|
-
describe('differenceInQuarters', () => {
|
|
5
|
-
it('returns the number of full quarters between the given dates with `trunc` as a default rounding method', () => {
|
|
6
|
-
const result = differenceInQuarters(new Date(2012, 6 /* Jul */, 2, 5, 0), new Date(2011, 6 /* Jul */, 2, 6, 0));
|
|
7
|
-
expect(result).toBe(3);
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
it('returns the number of full quarters between the given dates', () => {
|
|
11
|
-
const result = differenceInQuarters(new Date(2012, 6 /* Jul */, 2, 18, 0), new Date(2011, 6 /* Jul */, 2, 6, 0));
|
|
12
|
-
expect(result).toBe(4);
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
it('returns the number of full quarters between the given dates with `trunc` as a default rounding method', () => {
|
|
16
|
-
const result = differenceInQuarters(new Date(2012, 6 /* Jul */, 2, 18, 0), new Date(2011, 4 /* May */, 2, 6, 0));
|
|
17
|
-
expect(result).toBe(4);
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it('returns the number of full quarters between the given dates with `ceil` as a rounding method', () => {
|
|
21
|
-
const result = differenceInQuarters(new Date(2012, 6 /* Jul */, 2, 18, 0), new Date(2011, 4 /* May */, 2, 6, 0), {
|
|
22
|
-
roundingMethod: 'ceil',
|
|
23
|
-
});
|
|
24
|
-
expect(result).toBe(5);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it('returns the number of full quarters between the given dates with `floor` as a rounding method', () => {
|
|
28
|
-
const result = differenceInQuarters(new Date(2012, 6 /* Jul */, 2, 18, 0), new Date(2011, 4 /* May */, 2, 6, 0), {
|
|
29
|
-
roundingMethod: 'floor',
|
|
30
|
-
});
|
|
31
|
-
expect(result).toBe(4);
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
it('returns the number of full quarters between the given dates with `round` as a rounding method', () => {
|
|
35
|
-
const result = differenceInQuarters(new Date(2012, 6 /* Jul */, 2, 18, 0), new Date(2011, 4 /* May */, 2, 6, 0), {
|
|
36
|
-
roundingMethod: 'round',
|
|
37
|
-
});
|
|
38
|
-
expect(result).toBe(5);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it('returns a negative number if the time value of the first date is smaller', () => {
|
|
42
|
-
const result = differenceInQuarters(new Date(2011, 6 /* Jul */, 2, 6, 0), new Date(2012, 6 /* Jul */, 2, 18, 0));
|
|
43
|
-
expect(result).toBe(-4);
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
it('returns a 0, not a negative 0 - issue #2555 ', () => {
|
|
47
|
-
const result = differenceInQuarters(
|
|
48
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 28.973),
|
|
49
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 28.976),
|
|
50
|
-
);
|
|
51
|
-
expect(Object.is(result, 0)).toBe(true);
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
it('accepts timestamps', () => {
|
|
55
|
-
const result = differenceInQuarters(
|
|
56
|
-
new Date(2014, 9 /* Oct */, 2).getTime(),
|
|
57
|
-
new Date(2010, 6 /* Jul */, 2).getTime(),
|
|
58
|
-
);
|
|
59
|
-
expect(result).toBe(17);
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
describe('edge cases', () => {
|
|
63
|
-
it('the difference is less than a quarter, but the given dates are in different calendar quarters', () => {
|
|
64
|
-
const result = differenceInQuarters(new Date(2014, 6 /* Jul */, 1), new Date(2014, 5 /* Jun */, 30));
|
|
65
|
-
expect(result).toBe(0);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
it('the same for the swapped dates', () => {
|
|
69
|
-
const result = differenceInQuarters(new Date(2014, 5 /* Jun */, 30), new Date(2014, 6 /* Jul */, 1));
|
|
70
|
-
expect(result).toBe(0);
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
it('the days of months of the given dates are the same', () => {
|
|
74
|
-
const result = differenceInQuarters(new Date(2014, 3 /* Apr */, 6), new Date(2014, 0 /* Jan */, 6));
|
|
75
|
-
expect(result).toBe(1);
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
it('the given dates are the same', () => {
|
|
79
|
-
const result = differenceInQuarters(new Date(2014, 8 /* Sep */, 5, 0, 0), new Date(2014, 8 /* Sep */, 5, 0, 0));
|
|
80
|
-
expect(result).toBe(0);
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
it('does not return -0 when the given dates are the same', () => {
|
|
84
|
-
function isNegativeZero(x: number): boolean {
|
|
85
|
-
return x === 0 && 1 / x < 0;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
const result = differenceInQuarters(new Date(2014, 8 /* Sep */, 5, 0, 0), new Date(2014, 8 /* Sep */, 5, 0, 0));
|
|
89
|
-
|
|
90
|
-
const resultIsNegative = isNegativeZero(result);
|
|
91
|
-
expect(resultIsNegative).toBe(false);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
it('returns NaN if the first date is `Invalid Date`', () => {
|
|
96
|
-
const result = differenceInQuarters(new Date(NaN), new Date(2017, 0 /* Jan */, 1));
|
|
97
|
-
expect(isNaN(result)).toBe(true);
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
it('returns NaN if the second date is `Invalid Date`', () => {
|
|
101
|
-
const result = differenceInQuarters(new Date(2017, 0 /* Jan */, 1), new Date(NaN));
|
|
102
|
-
expect(isNaN(result)).toBe(true);
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
it('returns NaN if the both dates are `Invalid Date`', () => {
|
|
106
|
-
const result = differenceInQuarters(new Date(NaN), new Date(NaN));
|
|
107
|
-
expect(isNaN(result)).toBe(true);
|
|
108
|
-
});
|
|
109
|
-
});
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { differenceInSeconds } from './index';
|
|
3
|
-
|
|
4
|
-
describe('differenceInSeconds', () => {
|
|
5
|
-
it('returns the number of seconds between the given dates with `trunc` as a default rounding method', () => {
|
|
6
|
-
const result = differenceInSeconds(
|
|
7
|
-
new Date(2014, 6 /* Jul */, 2, 12, 30, 6, 29),
|
|
8
|
-
new Date(2014, 6 /* Jul */, 2, 12, 30, 20, 28.777),
|
|
9
|
-
);
|
|
10
|
-
expect(result).toBe(-13);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
it('returns the number of seconds between the given dates', () => {
|
|
14
|
-
const result = differenceInSeconds(
|
|
15
|
-
new Date(2014, 6 /* Jul */, 2, 12, 30, 20),
|
|
16
|
-
new Date(2014, 6 /* Jul */, 2, 12, 30, 6),
|
|
17
|
-
);
|
|
18
|
-
expect(result).toBe(14);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it('returns a negative number if the time value of the first date is smaller', () => {
|
|
22
|
-
const result = differenceInSeconds(
|
|
23
|
-
new Date(2014, 6 /* Jul */, 2, 12, 30, 6),
|
|
24
|
-
new Date(2014, 6 /* Jul */, 2, 12, 30, 20),
|
|
25
|
-
);
|
|
26
|
-
expect(result).toBe(-14);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('returns a 0, not a negative 0 - issue #2555 ', () => {
|
|
30
|
-
const result = differenceInSeconds(
|
|
31
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 28.973),
|
|
32
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 28.976),
|
|
33
|
-
);
|
|
34
|
-
expect(result).toBe(0);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it('returns 1 with `round` passed in as a rounding method', () => {
|
|
38
|
-
const result = differenceInSeconds(
|
|
39
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 29.973),
|
|
40
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 28.976),
|
|
41
|
-
{ roundingMethod: 'round' },
|
|
42
|
-
);
|
|
43
|
-
expect(result).toBe(1);
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
it('returns a -1 with `round` passed in as a rounding method', () => {
|
|
47
|
-
const result = differenceInSeconds(
|
|
48
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 27.976),
|
|
49
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 28.973),
|
|
50
|
-
|
|
51
|
-
{ roundingMethod: 'round' },
|
|
52
|
-
);
|
|
53
|
-
expect(result).toBe(-1);
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
it('returns a -2 with `ceil` passed in as a rounding method', () => {
|
|
57
|
-
const result = differenceInSeconds(
|
|
58
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 27.976),
|
|
59
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 29.973),
|
|
60
|
-
{ roundingMethod: 'ceil' },
|
|
61
|
-
);
|
|
62
|
-
expect(result).toBe(-2);
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
it('returns a 2 with `ceil` passed in as a rounding method', () => {
|
|
66
|
-
const result = differenceInSeconds(
|
|
67
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 29.973),
|
|
68
|
-
new Date(2021, 6 /* Jul */, 22, 6, 1, 27.976),
|
|
69
|
-
{ roundingMethod: 'ceil' },
|
|
70
|
-
);
|
|
71
|
-
expect(result).toBe(2);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
it('accepts timestamps', () => {
|
|
75
|
-
const result = differenceInSeconds(
|
|
76
|
-
new Date(2014, 8 /* Sep */, 5, 18, 30, 45).getTime(),
|
|
77
|
-
new Date(2014, 8 /* Sep */, 5, 18, 30, 15).getTime(),
|
|
78
|
-
);
|
|
79
|
-
expect(result).toBe(30);
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
describe('edge cases', () => {
|
|
83
|
-
it('the difference is less than a second, but the given dates are in different calendar seconds', () => {
|
|
84
|
-
const result = differenceInSeconds(
|
|
85
|
-
new Date(2014, 8 /* Sep */, 5, 12, 30, 12),
|
|
86
|
-
new Date(2014, 8 /* Sep */, 5, 12, 30, 11, 999),
|
|
87
|
-
);
|
|
88
|
-
expect(result).toBe(0);
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
it('the same for the swapped dates but a different result as a resulf of the default rounding method `trunc`', () => {
|
|
92
|
-
const result = differenceInSeconds(
|
|
93
|
-
new Date(2014, 8 /* Sep */, 5, 12, 30, 11, 999),
|
|
94
|
-
new Date(2014, 8 /* Sep */, 5, 12, 30, 12),
|
|
95
|
-
);
|
|
96
|
-
expect(result).toBe(0);
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
it('the difference is an integral number of seconds', () => {
|
|
100
|
-
const result = differenceInSeconds(
|
|
101
|
-
new Date(2014, 8 /* Sep */, 5, 12, 30, 25),
|
|
102
|
-
new Date(2014, 8 /* Sep */, 5, 12, 30, 15),
|
|
103
|
-
);
|
|
104
|
-
expect(result).toBe(10);
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
it('the given dates are the same', () => {
|
|
108
|
-
const result = differenceInSeconds(new Date(2014, 8 /* Sep */, 5, 0, 0), new Date(2014, 8 /* Sep */, 5, 0, 0));
|
|
109
|
-
expect(result).toBe(0);
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
it('does not return -0 when the given dates are the same', () => {
|
|
113
|
-
const result = differenceInSeconds(new Date(2014, 8 /* Sep */, 5, 0, 0), new Date(2014, 8 /* Sep */, 5, 0, 0));
|
|
114
|
-
expect(!isNegativeZero(result)).toBe(true);
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
it('does not return -0 when the given dates have milliseconds difference', () => {
|
|
118
|
-
const result = differenceInSeconds(
|
|
119
|
-
new Date(2014, 8 /* Sep */, 5, 0, 0, 0, 973),
|
|
120
|
-
new Date(2014, 8 /* Sep */, 5, 0, 0, 0, 976),
|
|
121
|
-
);
|
|
122
|
-
expect(!isNegativeZero(result)).toBe(true);
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
it('returns NaN if the first date is `Invalid Date`', () => {
|
|
127
|
-
const result = differenceInSeconds(new Date(NaN), new Date(2017, 0 /* Jan */, 1));
|
|
128
|
-
expect(isNaN(result)).toBe(true);
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
it('returns NaN if the second date is `Invalid Date`', () => {
|
|
132
|
-
const result = differenceInSeconds(new Date(2017, 0 /* Jan */, 1), new Date(NaN));
|
|
133
|
-
expect(isNaN(result)).toBe(true);
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
it('returns NaN if the both dates are `Invalid Date`', () => {
|
|
137
|
-
const result = differenceInSeconds(new Date(NaN), new Date(NaN));
|
|
138
|
-
expect(isNaN(result)).toBe(true);
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
function isNegativeZero(x: number): boolean {
|
|
143
|
-
return x === 0 && 1 / x < 0;
|
|
144
|
-
}
|