@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.
Files changed (250) hide show
  1. package/README.md +0 -2
  2. package/package.json +1 -1
  3. package/src/date-fns/_lib/addLeadingZeros/test.mts +0 -12
  4. package/src/date-fns/_lib/getRoundingMethod/test.mts +0 -50
  5. package/src/date-fns/_lib/getTimezoneOffsetInMilliseconds/test.mts +0 -25
  6. package/src/date-fns/add/test.mts +0 -95
  7. package/src/date-fns/addBusinessDays/test.mts +0 -78
  8. package/src/date-fns/addDays/test.mts +0 -90
  9. package/src/date-fns/addHours/test.mts +0 -30
  10. package/src/date-fns/addISOWeekYears/test.mts +0 -41
  11. package/src/date-fns/addMilliseconds/test.mts +0 -30
  12. package/src/date-fns/addMinutes/test.mts +0 -30
  13. package/src/date-fns/addMonths/test.mts +0 -123
  14. package/src/date-fns/addQuarters/test.mts +0 -47
  15. package/src/date-fns/addSeconds/test.mts +0 -30
  16. package/src/date-fns/addWeeks/test.mts +0 -30
  17. package/src/date-fns/addYears/test.mts +0 -46
  18. package/src/date-fns/areIntervalsOverlapping/test.mts +0 -231
  19. package/src/date-fns/clamp/test.mts +0 -36
  20. package/src/date-fns/closestIndexTo/test.mts +0 -51
  21. package/src/date-fns/closestTo/test.mts +0 -49
  22. package/src/date-fns/compareAsc/test.mts +0 -58
  23. package/src/date-fns/compareDesc/test.mts +0 -58
  24. package/src/date-fns/constructFrom/test.mts +0 -47
  25. package/src/date-fns/constructNow/test.mts +0 -37
  26. package/src/date-fns/daysToWeeks/test.mts +0 -36
  27. package/src/date-fns/differenceInBusinessDays/test.mts +0 -102
  28. package/src/date-fns/differenceInCalendarDays/test.mts +0 -206
  29. package/src/date-fns/differenceInCalendarISOWeekYears/test.mts +0 -93
  30. package/src/date-fns/differenceInCalendarISOWeeks/test.mts +0 -89
  31. package/src/date-fns/differenceInCalendarMonths/test.mts +0 -82
  32. package/src/date-fns/differenceInCalendarQuarters/test.mts +0 -82
  33. package/src/date-fns/differenceInCalendarWeeks/test.mts +0 -136
  34. package/src/date-fns/differenceInCalendarYears/test.mts +0 -82
  35. package/src/date-fns/differenceInDays/test.mts +0 -175
  36. package/src/date-fns/differenceInHours/test.mts +0 -122
  37. package/src/date-fns/differenceInISOWeekYears/test.mts +0 -93
  38. package/src/date-fns/differenceInMilliseconds/test.mts +0 -53
  39. package/src/date-fns/differenceInMinutes/test.mts +0 -123
  40. package/src/date-fns/differenceInMonths/test.mts +0 -121
  41. package/src/date-fns/differenceInQuarters/test.mts +0 -109
  42. package/src/date-fns/differenceInSeconds/test.mts +0 -144
  43. package/src/date-fns/differenceInWeeks/test.mts +0 -111
  44. package/src/date-fns/differenceInYears/test.mts +0 -97
  45. package/src/date-fns/eachDayOfInterval/test.mts +0 -164
  46. package/src/date-fns/eachHourOfInterval/test.mts +0 -154
  47. package/src/date-fns/eachMinuteOfInterval/test.mts +0 -159
  48. package/src/date-fns/eachMonthOfInterval/test.mts +0 -151
  49. package/src/date-fns/eachQuarterOfInterval/test.mts +0 -136
  50. package/src/date-fns/eachWeekOfInterval/test.mts +0 -177
  51. package/src/date-fns/eachWeekendOfInterval/test.mts +0 -67
  52. package/src/date-fns/eachWeekendOfMonth/test.mts +0 -23
  53. package/src/date-fns/eachWeekendOfYear/test.mts +0 -18
  54. package/src/date-fns/eachYearOfInterval/test.mts +0 -136
  55. package/src/date-fns/endOfDay/test.mts +0 -27
  56. package/src/date-fns/endOfDecade/test.mts +0 -32
  57. package/src/date-fns/endOfHour/test.mts +0 -26
  58. package/src/date-fns/endOfISOWeek/test.mts +0 -27
  59. package/src/date-fns/endOfISOWeekYear/test.mts +0 -36
  60. package/src/date-fns/endOfMinute/test.mts +0 -26
  61. package/src/date-fns/endOfMonth/test.mts +0 -41
  62. package/src/date-fns/endOfQuarter/test.mts +0 -27
  63. package/src/date-fns/endOfSecond/test.mts +0 -26
  64. package/src/date-fns/endOfToday/test.mts +0 -19
  65. package/src/date-fns/endOfTomorrow/test.mts +0 -29
  66. package/src/date-fns/endOfWeek/test.mts +0 -86
  67. package/src/date-fns/endOfYear/test.mts +0 -27
  68. package/src/date-fns/endOfYesterday/test.mts +0 -29
  69. package/src/date-fns/format/test.mts +0 -909
  70. package/src/date-fns/formatDistance/test.mts +0 -189
  71. package/src/date-fns/formatDistanceStrict/test.mts +0 -329
  72. package/src/date-fns/formatDistanceToNow/test.mts +0 -196
  73. package/src/date-fns/formatDistanceToNowStrict/test.mts +0 -293
  74. package/src/date-fns/formatDuration/test.mts +0 -74
  75. package/src/date-fns/formatISO/test.mts +0 -55
  76. package/src/date-fns/formatISO9075/test.mts +0 -35
  77. package/src/date-fns/formatISODuration/test.mts +0 -75
  78. package/src/date-fns/formatRFC3339/test.mts +0 -41
  79. package/src/date-fns/formatRFC7231/test.mts +0 -18
  80. package/src/date-fns/formatRelative/test.mts +0 -92
  81. package/src/date-fns/fp/_lib/convertToFP/test.mts +0 -114
  82. package/src/date-fns/fromUnixTime/test.mts +0 -14
  83. package/src/date-fns/getDate/test.mts +0 -19
  84. package/src/date-fns/getDay/test.mts +0 -19
  85. package/src/date-fns/getDayOfYear/test.mts +0 -27
  86. package/src/date-fns/getDaysInMonth/test.mts +0 -33
  87. package/src/date-fns/getDaysInYear/test.mts +0 -35
  88. package/src/date-fns/getDecade/test.mts +0 -24
  89. package/src/date-fns/getDefaultOptions/test.mts +0 -58
  90. package/src/date-fns/getHours/test.mts +0 -19
  91. package/src/date-fns/getISODay/test.mts +0 -24
  92. package/src/date-fns/getISOWeek/test.mts +0 -54
  93. package/src/date-fns/getISOWeekYear/test.mts +0 -27
  94. package/src/date-fns/getISOWeeksInYear/test.mts +0 -37
  95. package/src/date-fns/getMilliseconds/test.mts +0 -19
  96. package/src/date-fns/getMinutes/test.mts +0 -19
  97. package/src/date-fns/getMonth/test.mts +0 -19
  98. package/src/date-fns/getOverlappingDaysInIntervals/test.mts +0 -243
  99. package/src/date-fns/getQuarter/test.mts +0 -19
  100. package/src/date-fns/getSeconds/test.mts +0 -19
  101. package/src/date-fns/getTime/test.mts +0 -21
  102. package/src/date-fns/getUnixTime/test.mts +0 -26
  103. package/src/date-fns/getWeek/test.mts +0 -56
  104. package/src/date-fns/getWeekOfMonth/test.mts +0 -75
  105. package/src/date-fns/getWeekYear/test.mts +0 -49
  106. package/src/date-fns/getWeeksInMonth/test.mts +0 -51
  107. package/src/date-fns/getYear/test.mts +0 -19
  108. package/src/date-fns/hoursToMilliseconds/test.mts +0 -23
  109. package/src/date-fns/hoursToMinutes/test.mts +0 -25
  110. package/src/date-fns/hoursToSeconds/test.mts +0 -25
  111. package/src/date-fns/interval/test.mts +0 -42
  112. package/src/date-fns/intervalToDuration/test.mts +0 -235
  113. package/src/date-fns/intlFormat/test.mts +0 -88
  114. package/src/date-fns/intlFormatDistance/test.mts +0 -588
  115. package/src/date-fns/isAfter/test.mts +0 -39
  116. package/src/date-fns/isBefore/test.mts +0 -39
  117. package/src/date-fns/isDate/test.mts +0 -72
  118. package/src/date-fns/isEqual/test.mts +0 -34
  119. package/src/date-fns/isExists/test.mts +0 -14
  120. package/src/date-fns/isFirstDayOfMonth/test.mts +0 -25
  121. package/src/date-fns/isFriday/test.mts +0 -24
  122. package/src/date-fns/isFuture/test.mts +0 -34
  123. package/src/date-fns/isLastDayOfMonth/test.mts +0 -25
  124. package/src/date-fns/isLeapYear/test.mts +0 -35
  125. package/src/date-fns/isMatch/test.mts +0 -27
  126. package/src/date-fns/isMonday/test.mts +0 -24
  127. package/src/date-fns/isPast/test.mts +0 -34
  128. package/src/date-fns/isSameDay/test.mts +0 -37
  129. package/src/date-fns/isSameHour/test.mts +0 -37
  130. package/src/date-fns/isSameISOWeek/test.mts +0 -34
  131. package/src/date-fns/isSameISOWeekYear/test.mts +0 -48
  132. package/src/date-fns/isSameMinute/test.mts +0 -37
  133. package/src/date-fns/isSameMonth/test.mts +0 -34
  134. package/src/date-fns/isSameQuarter/test.mts +0 -34
  135. package/src/date-fns/isSameSecond/test.mts +0 -43
  136. package/src/date-fns/isSameWeek/test.mts +0 -58
  137. package/src/date-fns/isSameYear/test.mts +0 -34
  138. package/src/date-fns/isSaturday/test.mts +0 -24
  139. package/src/date-fns/isSunday/test.mts +0 -24
  140. package/src/date-fns/isThisHour/test.mts +0 -34
  141. package/src/date-fns/isThisISOWeek/test.mts +0 -34
  142. package/src/date-fns/isThisMinute/test.mts +0 -34
  143. package/src/date-fns/isThisMonth/test.mts +0 -34
  144. package/src/date-fns/isThisQuarter/test.mts +0 -34
  145. package/src/date-fns/isThisSecond/test.mts +0 -34
  146. package/src/date-fns/isThisWeek/test.mts +0 -39
  147. package/src/date-fns/isThisYear/test.mts +0 -34
  148. package/src/date-fns/isThursday/test.mts +0 -24
  149. package/src/date-fns/isToday/test.mts +0 -34
  150. package/src/date-fns/isTomorrow/test.mts +0 -34
  151. package/src/date-fns/isTuesday/test.mts +0 -24
  152. package/src/date-fns/isValid/test.mts +0 -24
  153. package/src/date-fns/isWednesday/test.mts +0 -24
  154. package/src/date-fns/isWeekend/test.mts +0 -24
  155. package/src/date-fns/isWithinInterval/test.mts +0 -92
  156. package/src/date-fns/isYesterday/test.mts +0 -34
  157. package/src/date-fns/lastDayOfDecade/test.mts +0 -32
  158. package/src/date-fns/lastDayOfISOWeek/test.mts +0 -27
  159. package/src/date-fns/lastDayOfISOWeekYear/test.mts +0 -36
  160. package/src/date-fns/lastDayOfMonth/test.mts +0 -41
  161. package/src/date-fns/lastDayOfQuarter/test.mts +0 -27
  162. package/src/date-fns/lastDayOfWeek/test.mts +0 -86
  163. package/src/date-fns/lastDayOfYear/test.mts +0 -27
  164. package/src/date-fns/lightFormat/test.mts +0 -126
  165. package/src/date-fns/max/test.mts +0 -34
  166. package/src/date-fns/milliseconds/test.mts +0 -62
  167. package/src/date-fns/millisecondsToHours/test.mts +0 -24
  168. package/src/date-fns/millisecondsToMinutes/test.mts +0 -24
  169. package/src/date-fns/millisecondsToSeconds/test.mts +0 -24
  170. package/src/date-fns/min/test.mts +0 -34
  171. package/src/date-fns/minutesToHours/test.mts +0 -24
  172. package/src/date-fns/minutesToMilliseconds/test.mts +0 -23
  173. package/src/date-fns/minutesToSeconds/test.mts +0 -23
  174. package/src/date-fns/monthsToQuarters/test.mts +0 -24
  175. package/src/date-fns/monthsToYears/test.mts +0 -24
  176. package/src/date-fns/nextDay/test.mts +0 -44
  177. package/src/date-fns/nextFriday/test.mts +0 -24
  178. package/src/date-fns/nextMonday/test.mts +0 -24
  179. package/src/date-fns/nextSaturday/test.mts +0 -24
  180. package/src/date-fns/nextSunday/test.mts +0 -24
  181. package/src/date-fns/nextThursday/test.mts +0 -24
  182. package/src/date-fns/nextTuesday/test.mts +0 -23
  183. package/src/date-fns/nextWednesday/test.mts +0 -24
  184. package/src/date-fns/parse/test.mts +0 -2202
  185. package/src/date-fns/parseISO/test.mts +0 -362
  186. package/src/date-fns/parseJSON/test.mts +0 -129
  187. package/src/date-fns/previousDay/test.mts +0 -42
  188. package/src/date-fns/previousFriday/test.mts +0 -22
  189. package/src/date-fns/previousMonday/test.mts +0 -22
  190. package/src/date-fns/previousSaturday/test.mts +0 -22
  191. package/src/date-fns/previousSunday/test.mts +0 -22
  192. package/src/date-fns/previousThursday/test.mts +0 -22
  193. package/src/date-fns/previousTuesday/test.mts +0 -22
  194. package/src/date-fns/previousWednesday/test.mts +0 -22
  195. package/src/date-fns/quartersToMonths/test.mts +0 -24
  196. package/src/date-fns/quartersToYears/test.mts +0 -24
  197. package/src/date-fns/roundToNearestHours/test.mts +0 -200
  198. package/src/date-fns/roundToNearestMinutes/test.mts +0 -208
  199. package/src/date-fns/secondsToHours/test.mts +0 -24
  200. package/src/date-fns/secondsToMilliseconds/test.mts +0 -14
  201. package/src/date-fns/secondsToMinutes/test.mts +0 -24
  202. package/src/date-fns/set/test.mts +0 -121
  203. package/src/date-fns/setDate/test.mts +0 -30
  204. package/src/date-fns/setDay/test.mts +0 -112
  205. package/src/date-fns/setDayOfYear/test.mts +0 -30
  206. package/src/date-fns/setDefaultOptions/test.mts +0 -498
  207. package/src/date-fns/setHours/test.mts +0 -30
  208. package/src/date-fns/setISODay/test.mts +0 -59
  209. package/src/date-fns/setISOWeek/test.mts +0 -41
  210. package/src/date-fns/setISOWeekYear/test.mts +0 -50
  211. package/src/date-fns/setMilliseconds/test.mts +0 -30
  212. package/src/date-fns/setMinutes/test.mts +0 -30
  213. package/src/date-fns/setMonth/test.mts +0 -46
  214. package/src/date-fns/setQuarter/test.mts +0 -46
  215. package/src/date-fns/setSeconds/test.mts +0 -30
  216. package/src/date-fns/setWeek/test.mts +0 -63
  217. package/src/date-fns/setWeekYear/test.mts +0 -72
  218. package/src/date-fns/setYear/test.mts +0 -30
  219. package/src/date-fns/startOfDay/test.mts +0 -27
  220. package/src/date-fns/startOfDecade/test.mts +0 -32
  221. package/src/date-fns/startOfHour/test.mts +0 -27
  222. package/src/date-fns/startOfISOWeek/test.mts +0 -27
  223. package/src/date-fns/startOfISOWeekYear/test.mts +0 -41
  224. package/src/date-fns/startOfMinute/test.mts +0 -27
  225. package/src/date-fns/startOfMonth/test.mts +0 -27
  226. package/src/date-fns/startOfQuarter/test.mts +0 -27
  227. package/src/date-fns/startOfSecond/test.mts +0 -27
  228. package/src/date-fns/startOfToday/test.mts +0 -19
  229. package/src/date-fns/startOfTomorrow/test.mts +0 -29
  230. package/src/date-fns/startOfWeek/test.mts +0 -86
  231. package/src/date-fns/startOfWeekYear/test.mts +0 -58
  232. package/src/date-fns/startOfYear/test.mts +0 -38
  233. package/src/date-fns/startOfYesterday/test.mts +0 -29
  234. package/src/date-fns/sub/test.mts +0 -83
  235. package/src/date-fns/subBusinessDays/test.mts +0 -40
  236. package/src/date-fns/subDays/test.mts +0 -30
  237. package/src/date-fns/subHours/test.mts +0 -30
  238. package/src/date-fns/subISOWeekYears/test.mts +0 -41
  239. package/src/date-fns/subMilliseconds/test.mts +0 -30
  240. package/src/date-fns/subMinutes/test.mts +0 -30
  241. package/src/date-fns/subMonths/test.mts +0 -47
  242. package/src/date-fns/subQuarters/test.mts +0 -47
  243. package/src/date-fns/subSeconds/test.mts +0 -30
  244. package/src/date-fns/subWeeks/test.mts +0 -30
  245. package/src/date-fns/subYears/test.mts +0 -46
  246. package/src/date-fns/toDate/test.mts +0 -35
  247. package/src/date-fns/weeksToDays/test.mts +0 -24
  248. package/src/date-fns/yearsToDays/test.mts +0 -24
  249. package/src/date-fns/yearsToMonths/test.mts +0 -24
  250. package/src/date-fns/yearsToQuarters/test.mts +0 -24
@@ -1,47 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { addQuarters } from './index';
3
-
4
- describe('addQuarters', () => {
5
- it('adds the given number of quarters', () => {
6
- const result = addQuarters(new Date(2014, 8 /* Sep */, 1), 1);
7
- expect(result).toEqual(new Date(2014, 11 /* Dec */, 1));
8
- });
9
-
10
- it('accepts a timestamp', () => {
11
- const result = addQuarters(new Date(2014, 8 /* Sep */, 1).getTime(), 4);
12
- expect(result).toEqual(new Date(2015, 8 /* Sep */, 1));
13
- });
14
-
15
- it('does not mutate the original date', () => {
16
- const date = new Date(2014, 8 /* Sep */, 1);
17
- addQuarters(date, 4);
18
- expect(date).toEqual(new Date(2014, 8 /* Sep */, 1));
19
- });
20
-
21
- it('works well if the desired month has fewer days and the provided date is in the last day of a month', () => {
22
- const date = new Date(2014, 11 /* Dec */, 31);
23
- const result = addQuarters(date, 3);
24
- expect(result).toEqual(new Date(2015, 8 /* Sep */, 30));
25
- });
26
-
27
- it('handles dates before 100 AD', () => {
28
- const initialDate = new Date(0);
29
- initialDate.setFullYear(-1, 10 /* Nov */, 30);
30
- initialDate.setHours(0, 0, 0, 0);
31
- const expectedResult = new Date(0);
32
- expectedResult.setFullYear(0, 1 /* Feb */, 29);
33
- expectedResult.setHours(0, 0, 0, 0);
34
- const result = addQuarters(initialDate, 1);
35
- expect(result).toEqual(expectedResult);
36
- });
37
-
38
- it('returns `Invalid Date` if the given date is invalid', () => {
39
- const result = addQuarters(new Date(NaN), 1);
40
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
41
- });
42
-
43
- it('returns `Invalid Date` if the given amount is NaN', () => {
44
- const result = addQuarters(new Date(2014, 8 /* Sep */, 1), NaN);
45
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
46
- });
47
- });
@@ -1,30 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { addSeconds } from './index';
3
-
4
- describe('addSeconds', () => {
5
- it('adds the given number of seconds', () => {
6
- const result = addSeconds(new Date(2014, 6 /* Jul */, 10, 12, 45, 0), 30);
7
- expect(result).toEqual(new Date(2014, 6 /* Jul */, 10, 12, 45, 30));
8
- });
9
-
10
- it('accepts a timestamp', () => {
11
- const result = addSeconds(new Date(2014, 6 /* Jul */, 10, 12, 45, 0).getTime(), 20);
12
- expect(result).toEqual(new Date(2014, 6 /* Jul */, 10, 12, 45, 20));
13
- });
14
-
15
- it('does not mutate the original date', () => {
16
- const date = new Date(2014, 6 /* Jul */, 10, 12, 45, 0);
17
- addSeconds(date, 15);
18
- expect(date).toEqual(new Date(2014, 6 /* Jul */, 10, 12, 45, 0));
19
- });
20
-
21
- it('returns `Invalid Date` if the given date is invalid', () => {
22
- const result = addSeconds(new Date(NaN), 30);
23
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
24
- });
25
-
26
- it('returns `Invalid Date` if the given amount is NaN', () => {
27
- const result = addSeconds(new Date(2014, 6 /* Jul */, 10, 12, 45, 0), NaN);
28
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
29
- });
30
- });
@@ -1,30 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { addWeeks } from './index';
3
-
4
- describe('addWeeks', () => {
5
- it('adds the given number of weeks', () => {
6
- const result = addWeeks(new Date(2014, 8 /* Sep */, 1), 4);
7
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 29));
8
- });
9
-
10
- it('accepts a timestamp', () => {
11
- const result = addWeeks(new Date(2014, 8 /* Sep */, 1).getTime(), 1);
12
- expect(result).toEqual(new Date(2014, 8 /* Sep */, 8));
13
- });
14
-
15
- it('does not mutate the original date', () => {
16
- const date = new Date(2014, 8 /* Sep */, 1);
17
- addWeeks(date, 2);
18
- expect(date).toEqual(new Date(2014, 8 /* Sep */, 1));
19
- });
20
-
21
- it('returns `Invalid Date` if the given date is invalid', () => {
22
- const result = addWeeks(new Date(NaN), 4);
23
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
24
- });
25
-
26
- it('returns `Invalid Date` if the given amount is NaN', () => {
27
- const result = addWeeks(new Date(2014, 8 /* Sep */, 1), NaN);
28
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
29
- });
30
- });
@@ -1,46 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { addYears } from './index';
3
-
4
- describe('addYears', () => {
5
- it('adds the given number of years', () => {
6
- const result = addYears(new Date(2014, 8 /* Sep */, 1), 5);
7
- expect(result).toEqual(new Date(2019, 8 /* Sep */, 1));
8
- });
9
-
10
- it('accepts a timestamp', () => {
11
- const result = addYears(new Date(2014, 8 /* Sep */, 1).getTime(), 12);
12
- expect(result).toEqual(new Date(2026, 8 /* Sep */, 1));
13
- });
14
-
15
- it('does not mutate the original date', () => {
16
- const date = new Date(2014, 8 /* Sep */, 1);
17
- addYears(date, 12);
18
- expect(date).toEqual(new Date(2014, 8 /* Sep */, 1));
19
- });
20
-
21
- it('handles the leap years properly', () => {
22
- const result = addYears(new Date(2016, 1 /* Feb */, 29), 1);
23
- expect(result).toEqual(new Date(2017, 1 /* Feb */, 28));
24
- });
25
-
26
- it('handles dates before 100 AD', () => {
27
- const initialDate = new Date(0);
28
- initialDate.setFullYear(0, 1 /* Feb */, 29);
29
- initialDate.setHours(0, 0, 0, 0);
30
- const expectedResult = new Date(0);
31
- expectedResult.setFullYear(1, 1 /* Feb */, 28);
32
- expectedResult.setHours(0, 0, 0, 0);
33
- const result = addYears(initialDate, 1);
34
- expect(result).toEqual(expectedResult);
35
- });
36
-
37
- it('returns `Invalid Date` if the given date is invalid', () => {
38
- const result = addYears(new Date(NaN), 5);
39
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
40
- });
41
-
42
- it('returns `Invalid Date` if the given amount is NaN', () => {
43
- const result = addYears(new Date(2014, 8 /* Sep */, 1), NaN);
44
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
45
- });
46
- });
@@ -1,231 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { areIntervalsOverlapping } from './index';
3
-
4
- describe('areIntervalsOverlapping', () => {
5
- const initialIntervalStart = new Date(2016, 10, 10, 13, 0, 0);
6
- const initialIntervalEnd = new Date(2016, 11, 3, 15, 0, 0);
7
-
8
- describe("when the time intervals don't overlap", () => {
9
- it('returns false for a valid non overlapping interval before another interval', () => {
10
- const earlierIntervalStart = new Date(2016, 9, 25);
11
- const earlierIntervalEnd = new Date(2016, 10, 9);
12
-
13
- const isOverlapping = areIntervalsOverlapping(
14
- { start: initialIntervalStart, end: initialIntervalEnd },
15
- { start: earlierIntervalStart, end: earlierIntervalEnd },
16
- );
17
- expect(!isOverlapping).toBe(true);
18
- });
19
-
20
- it('returns false for a valid non overlapping interval after another interval', () => {
21
- const laterIntervalStart = new Date(2016, 11, 4);
22
- const laterIntervalEnd = new Date(2016, 11, 9);
23
-
24
- const isOverlapping = areIntervalsOverlapping(
25
- { start: initialIntervalStart, end: initialIntervalEnd },
26
- { start: laterIntervalStart, end: laterIntervalEnd },
27
- );
28
- expect(!isOverlapping).toBe(true);
29
- });
30
-
31
- it('returns false for a non overlapping same-day interval', () => {
32
- const sameDayIntervalStart = new Date(2016, 11, 4, 9, 0, 0);
33
- const sameDayIntervalEnd = new Date(2016, 11, 4, 18, 0, 0);
34
-
35
- const isOverlapping = areIntervalsOverlapping(
36
- { start: initialIntervalStart, end: initialIntervalEnd },
37
- { start: sameDayIntervalStart, end: sameDayIntervalEnd },
38
- );
39
- expect(!isOverlapping).toBe(true);
40
- });
41
-
42
- it('returns false for an interval differing by a few hours', () => {
43
- const oneDayOverlappingIntervalStart = new Date(2016, 11, 3, 18, 0, 0);
44
- const oneDayOverlappingIntervalEnd = new Date(2016, 11, 14, 13, 0, 0);
45
-
46
- const isOverlapping = areIntervalsOverlapping(
47
- { start: initialIntervalStart, end: initialIntervalEnd },
48
- {
49
- start: oneDayOverlappingIntervalStart,
50
- end: oneDayOverlappingIntervalEnd,
51
- },
52
- );
53
- expect(!isOverlapping).toBe(true);
54
- });
55
-
56
- it("returns false for an interval with the same startDateTime as the initial time intervals's endDateTime", () => {
57
- const oneDayOverlapIntervalStart = new Date(2016, 11, 3, 15, 0, 0);
58
- const oneDayOverlapIntervalEnd = new Date(2016, 11, 14, 13, 0, 0);
59
-
60
- const isOverlapping = areIntervalsOverlapping(
61
- { start: initialIntervalStart, end: initialIntervalEnd },
62
- { start: oneDayOverlapIntervalStart, end: oneDayOverlapIntervalEnd },
63
- );
64
- expect(!isOverlapping).toBe(true);
65
- });
66
-
67
- it("returns false for an interval with the same endDateTime as the initial time interval's startDateTime", () => {
68
- const oneDayOverlapIntervalStart = new Date(2016, 10, 3, 15, 0, 0);
69
- const oneDayOverlapIntervalEnd = new Date(2016, 10, 10, 13, 0, 0);
70
-
71
- const isOverlapping = areIntervalsOverlapping(
72
- { start: initialIntervalStart, end: initialIntervalEnd },
73
- { start: oneDayOverlapIntervalStart, end: oneDayOverlapIntervalEnd },
74
- );
75
- expect(!isOverlapping).toBe(true);
76
- });
77
- });
78
-
79
- describe('when the time intervals overlap', () => {
80
- it('returns true for an interval included within another interval', () => {
81
- const includedIntervalStart = new Date(2016, 10, 14);
82
- const includedIntervalEnd = new Date(2016, 10, 14);
83
-
84
- const isOverlapping = areIntervalsOverlapping(
85
- { start: initialIntervalStart, end: initialIntervalEnd },
86
- { start: includedIntervalStart, end: includedIntervalEnd },
87
- );
88
- expect(isOverlapping).toBe(true);
89
- });
90
-
91
- it('returns true for an interval overlapping at the end', () => {
92
- const endOverlappingIntervalStart = new Date(2016, 10, 5);
93
- const endOverlappingIntervalEnd = new Date(2016, 10, 14);
94
-
95
- const isOverlapping = areIntervalsOverlapping(
96
- { start: initialIntervalStart, end: initialIntervalEnd },
97
- { start: endOverlappingIntervalStart, end: endOverlappingIntervalEnd },
98
- );
99
- expect(isOverlapping).toBe(true);
100
- });
101
-
102
- it('returns true for an interval overlapping at the beginning', () => {
103
- const startOverlappingIntervalStart = new Date(2016, 10, 20);
104
- const startOverlappingIntervalEnd = new Date(2016, 11, 14);
105
-
106
- const isOverlapping = areIntervalsOverlapping(
107
- { start: initialIntervalStart, end: initialIntervalEnd },
108
- {
109
- start: startOverlappingIntervalStart,
110
- end: startOverlappingIntervalEnd,
111
- },
112
- );
113
- expect(isOverlapping).toBe(true);
114
- });
115
-
116
- it('returns true for an interval including another interval', () => {
117
- const includingIntervalStart = new Date(2016, 10, 5);
118
- const includingIntervalEnd = new Date(2016, 11, 15);
119
-
120
- const isOverlapping = areIntervalsOverlapping(
121
- { start: initialIntervalStart, end: initialIntervalEnd },
122
- { start: includingIntervalStart, end: includingIntervalEnd },
123
- );
124
- expect(isOverlapping).toBe(true);
125
- });
126
- });
127
-
128
- it('accepts timestamp', () => {
129
- const initialIntervalStart = new Date(2016, 10, 10, 13, 0, 0).getTime();
130
- const initialIntervalEnd = new Date(2016, 11, 3, 15, 0, 0).getTime();
131
-
132
- const endOverlappingIntervalStart = new Date(2016, 10, 5).getTime();
133
- const endOverlappingIntervalEnd = new Date(2016, 10, 14).getTime();
134
-
135
- const isOverlapping = areIntervalsOverlapping(
136
- { start: initialIntervalStart, end: initialIntervalEnd },
137
- { start: endOverlappingIntervalStart, end: endOverlappingIntervalEnd },
138
- );
139
- expect(isOverlapping).toBe(true);
140
- });
141
-
142
- it('sort timestamp', () => {
143
- const result = areIntervalsOverlapping(
144
- { start: '1970-01-01T02:00:00.000Z', end: '1970-01-01T03:00:00.000Z' },
145
- { start: '1969-12-31T23:30:00.000Z', end: '1970-01-01T02:30:00.000Z' },
146
- );
147
- expect(result).toBe(true);
148
- });
149
-
150
- it('returns result for the normalized intervals if the start date of the initial time interval is after the end date', () => {
151
- const includedIntervalStart = new Date(2016, 10, 14);
152
- const includedIntervalEnd = new Date(2016, 10, 14);
153
-
154
- const isOverlapping = areIntervalsOverlapping(
155
- { start: initialIntervalEnd, end: initialIntervalStart },
156
- { start: includedIntervalStart, end: includedIntervalEnd },
157
- );
158
- expect(isOverlapping).toBe(true);
159
- });
160
-
161
- it('returns result for the normalized intervals if the start date of the compared time interval is after the end date', () => {
162
- const includedIntervalStart = new Date(2016, 10, 14);
163
- const includedIntervalEnd = new Date(2016, 10, 14);
164
-
165
- const isOverlapping = areIntervalsOverlapping(
166
- { start: initialIntervalStart, end: initialIntervalEnd },
167
- { start: includedIntervalEnd, end: includedIntervalStart },
168
- );
169
- expect(isOverlapping).toBe(true);
170
- });
171
-
172
- describe('when the inclusive option is true', () => {
173
- it("returns true for an interval with the same startDateTime as the initial time interval's endDateTime", () => {
174
- const oneDayOverlapIntervalStart = new Date(2016, 11, 3, 15, 0, 0);
175
- const oneDayOverlapIntervalEnd = new Date(2016, 11, 14, 13, 0, 0);
176
-
177
- const isOverlapping = areIntervalsOverlapping(
178
- { start: initialIntervalStart, end: initialIntervalEnd },
179
- { start: oneDayOverlapIntervalStart, end: oneDayOverlapIntervalEnd },
180
- { inclusive: true },
181
- );
182
- expect(isOverlapping).toBe(true);
183
- });
184
-
185
- it("returns true for an interval with the same endDateTime as the initial time interval's startDateTime", () => {
186
- const oneDayOverlapIntervalStart = new Date(2016, 10, 3, 15, 0, 0);
187
- const oneDayOverlapIntervalEnd = new Date(2016, 10, 10, 13, 0, 0);
188
-
189
- const isOverlapping = areIntervalsOverlapping(
190
- { start: initialIntervalStart, end: initialIntervalEnd },
191
- { start: oneDayOverlapIntervalStart, end: oneDayOverlapIntervalEnd },
192
- { inclusive: true },
193
- );
194
- expect(isOverlapping).toBe(true);
195
- });
196
- });
197
-
198
- describe('one of the dates is `Invalid Date`', () => {
199
- it('returns false if the start date of the initial time interval is `Invalid Date`', () => {
200
- const result = areIntervalsOverlapping(
201
- { start: new Date(NaN), end: new Date(2016, 10, 3) },
202
- { start: new Date(2016, 10, 5), end: new Date(2016, 10, 15) },
203
- );
204
- expect(!result).toBe(true);
205
- });
206
-
207
- it('returns false if the end date of the initial time interval is `Invalid Date`', () => {
208
- const result = areIntervalsOverlapping(
209
- { start: new Date(2016, 10, 3), end: new Date(NaN) },
210
- { start: new Date(2016, 10, 5), end: new Date(2016, 10, 15) },
211
- );
212
- expect(!result).toBe(true);
213
- });
214
-
215
- it('returns false if the start date of the compared time interval is `Invalid Date`', () => {
216
- const result = areIntervalsOverlapping(
217
- { start: new Date(2016, 10, 3), end: new Date(2016, 10, 7) },
218
- { start: new Date(NaN), end: new Date(2016, 10, 5) },
219
- );
220
- expect(!result).toBe(true);
221
- });
222
-
223
- it('returns false if the end date of the compared time interval is `Invalid Date`', () => {
224
- const result = areIntervalsOverlapping(
225
- { start: new Date(2016, 10, 3), end: new Date(2016, 10, 7) },
226
- { start: new Date(2016, 10, 5), end: new Date(NaN) },
227
- );
228
- expect(!result).toBe(true);
229
- });
230
- });
231
- });
@@ -1,36 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { clamp } from './index';
3
-
4
- describe('clamp', () => {
5
- it('accepts timestamps', () => {
6
- const start = new Date(2000, 1, 1).getTime();
7
- const date = new Date(2000, 1, 2).getTime();
8
- const end = new Date(2000, 1, 3).getTime();
9
- const result = clamp(date, { start, end });
10
- expect(result).toEqual(new Date(2000, 1, 2));
11
- });
12
-
13
- it('returns the start date when the date is less than start', () => {
14
- const start = new Date(2001, 1, 1);
15
- const date = new Date(2000, 1, 1);
16
- const end = new Date(2020, 1, 1);
17
- const result = clamp(date, { start, end });
18
- expect(result).toEqual(new Date(2001, 1, 1));
19
- });
20
-
21
- it('returns the end date when the date is greater than the end date', () => {
22
- const start = new Date(2000, 1, 1);
23
- const date = new Date(2003, 1, 1);
24
- const end = new Date(2001, 1, 1);
25
- const result = clamp(date, { start, end });
26
- expect(result).toEqual(new Date(2001, 1, 1));
27
- });
28
-
29
- it('returns the date when the date is within the bound of start and end', () => {
30
- const start = new Date(2000, 1, 1);
31
- const date = new Date(2001, 1, 1);
32
- const end = new Date(2003, 1, 1);
33
- const result = clamp(date, { start, end });
34
- expect(result).toEqual(new Date(2001, 1, 1));
35
- });
36
- });
@@ -1,51 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { closestIndexTo } from './index';
3
-
4
- describe('closestIndexTo', () => {
5
- it('returns the date index from the given array closest to the given date', () => {
6
- const date = new Date(2014, 6 /* Jul */, 2);
7
- const result = closestIndexTo(date, [new Date(2015, 7 /* Aug */, 31), new Date(2012, 6 /* Jul */, 2)]);
8
- expect(result).toBe(0);
9
- });
10
-
11
- it('works if the closest date from the given array is before the given date', () => {
12
- const date = new Date(2014, 6 /* Jul */, 2, 6, 30, 4, 500);
13
- const result = closestIndexTo(date, [
14
- new Date(2014, 6 /* Jul */, 2, 6, 30, 5, 900),
15
- new Date(2014, 6 /* Jul */, 2, 6, 30, 3, 900),
16
- new Date(2014, 6 /* Jul */, 2, 6, 30, 10),
17
- ]);
18
- expect(result).toBe(1);
19
- });
20
-
21
- it('accepts timestamps', () => {
22
- const date = new Date(2014, 6 /* Jul */, 2).getTime();
23
- const result = closestIndexTo(date, [
24
- new Date(2015, 7 /* Aug */, 31).getTime(),
25
- new Date(2012, 6 /* Jul */, 2).getTime(),
26
- ]);
27
- expect(result).toBe(0);
28
- });
29
-
30
- it('returns undefined if the given array is empty', () => {
31
- const date = new Date(2014, 6 /* Jul */, 2).getTime();
32
- const result = closestIndexTo(date, []);
33
- expect(result).toBe(undefined);
34
- });
35
-
36
- it('returns NaN if the given date is `Invalid Date`', () => {
37
- const date = new Date(NaN);
38
- const result = closestIndexTo(date, [new Date(2015, 7 /* Aug */, 31), new Date(2012, 6 /* Jul */, 2)]);
39
- expect(result != null && isNaN(result)).toBe(true);
40
- });
41
-
42
- it('returns NaN if any date in the given array is `Invalid Date`', () => {
43
- const date = new Date(2014, 6 /* Jul */, 2);
44
- const result = closestIndexTo(date, [
45
- new Date(2015, 7 /* Aug */, 31),
46
- new Date(NaN),
47
- new Date(2012, 6 /* Jul */, 2),
48
- ]);
49
- expect(result != null && isNaN(result)).toBe(true);
50
- });
51
- });
@@ -1,49 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { closestTo } from './index';
3
-
4
- describe('closestTo', () => {
5
- it('returns the date from the given array closest to the given date', () => {
6
- const date = new Date(2014, 6 /* Jul */, 2);
7
- const result = closestTo(date, [new Date(2015, 7 /* Aug */, 31), new Date(2012, 6 /* Jul */, 2)]);
8
- expect(result).toEqual(new Date(2015, 7 /* Aug */, 31));
9
- });
10
-
11
- it('works if the closest date from the given array is before the given date', () => {
12
- const date = new Date(2014, 6 /* Jul */, 2, 6, 30, 4, 500);
13
- const result = closestTo(date, [
14
- new Date(2014, 6 /* Jul */, 2, 6, 30, 5, 900),
15
- new Date(2014, 6 /* Jul */, 2, 6, 30, 3, 900),
16
- new Date(2014, 6 /* Jul */, 2, 6, 30, 10),
17
- ]);
18
- expect(result).toEqual(new Date(2014, 6 /* Jul */, 2, 6, 30, 3, 900));
19
- });
20
-
21
- it('accepts timestamps', () => {
22
- const date = new Date(2014, 6 /* Jul */, 2).getTime();
23
- const result = closestTo(date, [
24
- new Date(2015, 7 /* Aug */, 31).getTime(),
25
- new Date(2012, 6 /* Jul */, 2).getTime(),
26
- ]);
27
- expect(result).toEqual(new Date(2015, 7 /* Aug */, 31));
28
- });
29
-
30
- it('returns undefined if the given array is empty', () => {
31
- const date = new Date(2014, 6 /* Jul */, 2).getTime();
32
- const result = closestTo(date, []);
33
- expect(result).toEqual(undefined);
34
- });
35
-
36
- it('returns `Invalid Date` if the given date is `Invalid Date`', () => {
37
- const date = new Date(NaN);
38
- const result = closestTo(date, [new Date(2015, 7 /* Aug */, 31), new Date(2012, 6 /* Jul */, 2)]);
39
-
40
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
41
- });
42
-
43
- it('returns `Invalid Date` if any date in the given array is `Invalid Date`', () => {
44
- const date = new Date(2014, 6 /* Jul */, 2);
45
- const result = closestTo(date, [new Date(2015, 7 /* Aug */, 31), new Date(NaN), new Date(2012, 6 /* Jul */, 2)]);
46
-
47
- expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
48
- });
49
- });
@@ -1,58 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { compareAsc } from './index';
3
-
4
- describe('compareAsc', () => {
5
- it('returns 0 if the given dates are equal', () => {
6
- const result = compareAsc(new Date(1989, 6 /* Jul */, 10), new Date(1989, 6 /* Jul */, 10));
7
- expect(result).toBe(0);
8
- });
9
-
10
- it('returns -1 if the first date is before the second one', () => {
11
- const result = compareAsc(new Date(1987, 1 /* Feb */, 11), new Date(1989, 6 /* Jul */, 10));
12
- expect(result).toBe(-1);
13
- });
14
-
15
- it('returns 1 if the first date is after the second one', () => {
16
- const result = compareAsc(new Date(1989, 6 /* Jul */, 10), new Date(1987, 1 /* Feb */, 11));
17
- expect(result).toBe(1);
18
- });
19
-
20
- it('sorts the dates array in the chronological order when function is passed as the argument to Array.prototype.sort()', () => {
21
- const unsortedArray = [
22
- new Date(1995, 6 /* Jul */, 2),
23
- new Date(1987, 1 /* Feb */, 11),
24
- new Date(1989, 6 /* Jul */, 10),
25
- ];
26
-
27
- const sortedArray = [
28
- new Date(1987, 1 /* Feb */, 11),
29
- new Date(1989, 6 /* Jul */, 10),
30
- new Date(1995, 6 /* Jul */, 2),
31
- ];
32
-
33
- unsortedArray.sort(compareAsc);
34
- const result = unsortedArray;
35
-
36
- expect(result).toEqual(sortedArray);
37
- });
38
-
39
- it('accepts timestamps', () => {
40
- const result = compareAsc(new Date(1987, 1 /* Feb */, 11).getTime(), new Date(1989, 6 /* Jul */, 10).getTime());
41
- expect(result).toBe(-1);
42
- });
43
-
44
- it('returns NaN if the first date is `Invalid Date`', () => {
45
- const result = compareAsc(new Date(NaN), new Date(1989, 6 /* Jul */, 10));
46
- expect(isNaN(result)).toBe(true);
47
- });
48
-
49
- it('returns NaN if the second date is `Invalid Date`', () => {
50
- const result = compareAsc(new Date(1989, 6 /* Jul */, 10), new Date(NaN));
51
- expect(isNaN(result)).toBe(true);
52
- });
53
-
54
- it('returns NaN if the both dates are `Invalid Date`', () => {
55
- const result = compareAsc(new Date(NaN), new Date(NaN));
56
- expect(isNaN(result)).toBe(true);
57
- });
58
- });
@@ -1,58 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { compareDesc } from './index';
3
-
4
- describe('compareDesc', () => {
5
- it('returns 0 if the given dates are equal', () => {
6
- const result = compareDesc(new Date(1989, 6 /* Jul */, 10), new Date(1989, 6 /* Jul */, 10));
7
- expect(result).toBe(0);
8
- });
9
-
10
- it('returns 1 if the first date is before the second one', () => {
11
- const result = compareDesc(new Date(1987, 1 /* Feb */, 11), new Date(1989, 6 /* Jul */, 10));
12
- expect(result).toBe(1);
13
- });
14
-
15
- it('returns -1 if the first date is after the second one', () => {
16
- const result = compareDesc(new Date(1989, 6 /* Jul */, 10), new Date(1987, 1 /* Feb */, 11));
17
- expect(result).toBe(-1);
18
- });
19
-
20
- it('sorts the dates array in the reverse chronological order when function is passed as the argument to Array.prototype.sort()', () => {
21
- const unsortedArray = [
22
- new Date(1995, 6 /* Jul */, 2),
23
- new Date(1987, 1 /* Feb */, 11),
24
- new Date(1989, 6 /* Jul */, 10),
25
- ];
26
-
27
- const sortedArray = [
28
- new Date(1995, 6 /* Jul */, 2),
29
- new Date(1989, 6 /* Jul */, 10),
30
- new Date(1987, 1 /* Feb */, 11),
31
- ];
32
-
33
- unsortedArray.sort(compareDesc);
34
- const result = unsortedArray;
35
-
36
- expect(result).toEqual(sortedArray);
37
- });
38
-
39
- it('accepts timestamps', () => {
40
- const result = compareDesc(new Date(1987, 1 /* Feb */, 11).getTime(), new Date(1989, 6 /* Jul */, 10).getTime());
41
- expect(result).toBe(1);
42
- });
43
-
44
- it('returns NaN if the first date is `Invalid Date`', () => {
45
- const result = compareDesc(new Date(NaN), new Date(1989, 6 /* Jul */, 10));
46
- expect(isNaN(result)).toBe(true);
47
- });
48
-
49
- it('returns NaN if the second date is `Invalid Date`', () => {
50
- const result = compareDesc(new Date(1989, 6 /* Jul */, 10), new Date(NaN));
51
- expect(isNaN(result)).toBe(true);
52
- });
53
-
54
- it('returns NaN if the both dates are `Invalid Date`', () => {
55
- const result = compareDesc(new Date(1989, 6 /* Jul */, 10), new Date(NaN));
56
- expect(isNaN(result)).toBe(true);
57
- });
58
- });