diff options
Diffstat (limited to 'date-fns/src/fp/test.js')
-rw-r--r-- | date-fns/src/fp/test.js | 1045 |
1 files changed, 1045 insertions, 0 deletions
diff --git a/date-fns/src/fp/test.js b/date-fns/src/fp/test.js new file mode 100644 index 0000000..cb69259 --- /dev/null +++ b/date-fns/src/fp/test.js @@ -0,0 +1,1045 @@ +// @flow +/* eslint-env mocha */ + +import assert from 'power-assert' +import * as fp from '.' + +describe('FP functions', function() { + it('addDays', function() { + var result = fp.addDays(10)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 11)) + }) + + it('addHours', function() { + var result = fp.addHours(2)(new Date(2014, 6 /* Jul */, 10, 23, 0)) + assert.deepEqual(result, new Date(2014, 6 /* Jul */, 11, 1, 0)) + }) + + it('addISOWeekYears', function() { + var result = fp.addISOWeekYears(5)(new Date(2010, 6 /* Jul */, 2)) + assert.deepEqual(result, new Date(2015, 5 /* Jun */, 26)) + }) + + it('addMilliseconds', function() { + var result = fp.addMilliseconds(750)( + new Date(2014, 6 /* Jul */, 10, 12, 45, 30, 0) + ) + assert.deepEqual(result, new Date(2014, 6 /* Jul */, 10, 12, 45, 30, 750)) + }) + + it('addMinutes', function() { + var result = fp.addMinutes(30)(new Date(2014, 6 /* Jul */, 10, 12, 0)) + assert.deepEqual(result, new Date(2014, 6 /* Jul */, 10, 12, 30)) + }) + + it('addMonths', function() { + var result = fp.addMonths(5)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2015, 1 /* Feb */, 1)) + }) + + it('addQuarters', function() { + var result = fp.addQuarters(1)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2014, 11 /* Dec */, 1)) + }) + + it('addSeconds', function() { + var result = fp.addSeconds(30)(new Date(2014, 6 /* Jul */, 10, 12, 45, 0)) + assert.deepEqual(result, new Date(2014, 6 /* Jul */, 10, 12, 45, 30)) + }) + + it('addWeeks', function() { + var result = fp.addWeeks(4)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 29)) + }) + + it('addYears', function() { + var result = fp.addYears(5)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2019, 8 /* Sep */, 1)) + }) + + it('areIntervalsOverlapping', function() { + var leftInterval = { + start: new Date(2016, 10, 10, 13, 0, 0), + end: new Date(2016, 11, 3, 15, 0, 0) + } + var rightInterval = { + start: new Date(2016, 10, 14), + end: new Date(2016, 10, 14) + } + + var result = fp.areIntervalsOverlapping(rightInterval)(leftInterval) + assert(result === true) + }) + + it('closestIndexTo', function() { + var date = new Date(2014, 6 /* Jul */, 2) + var result = fp.closestIndexTo([ + new Date(2015, 7 /* Aug */, 31), + new Date(2012, 6 /* Jul */, 2) + ])(date) + assert.equal(result, 0) + }) + + it('closestTo', function() { + var date = new Date(2014, 6 /* Jul */, 2) + var result = fp.closestTo([ + new Date(2015, 7 /* Aug */, 31), + new Date(2012, 6 /* Jul */, 2) + ])(date) + assert.deepEqual(result, new Date(2015, 7 /* Aug */, 31)) + }) + + it('compareAsc', function() { + var result = fp.compareAsc(new Date(1989, 6 /* Jul */, 10))( + new Date(1987, 1 /* Feb */, 11) + ) + assert(result === -1) + }) + + it('compareDesc', function() { + var result = fp.compareDesc(new Date(1989, 6 /* Jul */, 10))( + new Date(1987, 1 /* Feb */, 11) + ) + assert(result === 1) + }) + + it('differenceInCalendarDays', function() { + var result = fp.differenceInCalendarDays( + new Date(2011, 6 /* Jul */, 2, 6, 0) + )(new Date(2012, 6 /* Jul */, 2, 18, 0)) + assert(result === 366) + }) + + it('differenceInCalendarISOWeeks', function() { + var result = fp.differenceInCalendarISOWeeks( + new Date(2014, 5 /* Jun */, 29, 6, 0) + )(new Date(2014, 6 /* Jul */, 8, 18, 0)) + assert(result === 2) + }) + + it('differenceInCalendarISOWeekYears', function() { + var result = fp.differenceInCalendarISOWeekYears( + new Date(2011, 6 /* Jul */, 2, 6, 0) + )(new Date(2012, 6 /* Jul */, 2, 18, 0)) + assert(result === 1) + }) + + it('differenceInCalendarMonths', function() { + var result = fp.differenceInCalendarMonths( + new Date(2011, 6 /* Jul */, 2, 6, 0) + )(new Date(2012, 6 /* Jul */, 2, 18, 0)) + assert(result === 12) + }) + + it('differenceInCalendarQuarters', function() { + var result = fp.differenceInCalendarQuarters( + new Date(2011, 6 /* Jul */, 2, 6, 0) + )(new Date(2012, 6 /* Jul */, 2, 18, 0)) + assert(result === 4) + }) + + it('differenceInCalendarWeeks', function() { + var result = fp.differenceInCalendarWeeks( + new Date(2014, 5 /* Jun */, 29, 6, 0) + )(new Date(2014, 6 /* Jul */, 8, 18, 0)) + assert(result === 1) + }) + + it('differenceInCalendarWeeksWithOptions', function() { + var result = fp.differenceInCalendarWeeksWithOptions({ weekStartsOn: 1 })( + new Date(2014, 5 /* Jun */, 29, 6, 0) + )(new Date(2014, 6 /* Jul */, 8, 18, 0)) + assert(result === 2) + }) + + it('differenceInCalendarYears', function() { + var result = fp.differenceInCalendarYears( + new Date(2011, 6 /* Jul */, 2, 6, 0) + )(new Date(2012, 6 /* Jul */, 2, 18, 0)) + assert(result === 1) + }) + + it('differenceInDays', function() { + var result = fp.differenceInDays(new Date(2011, 6 /* Jul */, 2, 6, 0))( + new Date(2012, 6 /* Jul */, 2, 18, 0) + ) + assert(result === 366) + }) + + it('differenceInHours', function() { + var result = fp.differenceInHours(new Date(2014, 6 /* Jul */, 2, 6, 0))( + new Date(2014, 6 /* Jul */, 2, 20, 0) + ) + assert(result === 14) + }) + + it('differenceInISOWeekYears', function() { + var result = fp.differenceInISOWeekYears( + new Date(2011, 6 /* Jul */, 2, 6, 0) + )(new Date(2012, 6 /* Jul */, 2, 18, 0)) + assert(result === 1) + }) + + it('differenceInMilliseconds', function() { + var result = fp.differenceInMilliseconds( + new Date(2014, 6 /* Jul */, 2, 12, 30, 20, 600) + )(new Date(2014, 6 /* Jul */, 2, 12, 30, 20, 700)) + assert(result === 100) + }) + + it('differenceInMinutes', function() { + var result = fp.differenceInMinutes(new Date(2014, 6 /* Jul */, 2, 12, 6))( + new Date(2014, 6 /* Jul */, 2, 12, 20) + ) + assert(result === 14) + }) + + it('differenceInMonths', function() { + var result = fp.differenceInMonths(new Date(2011, 6 /* Jul */, 2, 6, 0))( + new Date(2012, 6 /* Jul */, 2, 18, 0) + ) + assert(result === 12) + }) + + it('differenceInQuarters', function() { + var result = fp.differenceInQuarters(new Date(2011, 6 /* Jul */, 2, 6, 0))( + new Date(2012, 6 /* Jul */, 2, 18, 0) + ) + assert(result === 4) + }) + + it('differenceInSeconds', function() { + var result = fp.differenceInSeconds( + new Date(2014, 6 /* Jul */, 2, 12, 30, 6) + )(new Date(2014, 6 /* Jul */, 2, 12, 30, 20)) + assert(result === 14) + }) + + it('differenceInWeeks', function() { + var result = fp.differenceInWeeks(new Date(2014, 5 /* Jun */, 29, 6, 0))( + new Date(2014, 6 /* Jul */, 8, 18, 0) + ) + assert(result === 1) + }) + + it('differenceInYears', function() { + var result = fp.differenceInYears(new Date(2011, 6 /* Jul */, 2, 6, 0))( + new Date(2012, 6 /* Jul */, 2, 18, 0) + ) + assert(result === 1) + }) + + it('eachDayOfInterval', function() { + var interval = { + start: new Date(2014, 9 /* Oct */, 6), + end: new Date(2014, 9 /* Oct */, 12) + } + var result = fp.eachDayOfInterval(interval) + assert.deepEqual(result, [ + new Date(2014, 9 /* Oct */, 6), + new Date(2014, 9 /* Oct */, 7), + new Date(2014, 9 /* Oct */, 8), + new Date(2014, 9 /* Oct */, 9), + new Date(2014, 9 /* Oct */, 10), + new Date(2014, 9 /* Oct */, 11), + new Date(2014, 9 /* Oct */, 12) + ]) + }) + + it('eachWeekOfInterval', function() { + var interval = { + start: new Date(2014, 9 /* Oct */, 6), + end: new Date(2014, 10 /* Nov */, 23) + } + var result = fp.eachWeekOfInterval(interval) + assert.deepEqual(result, [ + new Date(2014, 9 /* Oct */, 5), + new Date(2014, 9 /* Oct */, 12), + new Date(2014, 9 /* Oct */, 19), + new Date(2014, 9 /* Oct */, 26), + new Date(2014, 10 /* Nov */, 2), + new Date(2014, 10 /* Nov */, 9), + new Date(2014, 10 /* Nov */, 16), + new Date(2014, 10 /* Nov */, 23) + ]) + }) + + it('eachWeekOfIntervalWithOptions', function() { + var interval = { + start: new Date(2014, 9 /* Oct */, 6), + end: new Date(2014, 10 /* Nov */, 23) + } + var result = fp.eachWeekOfIntervalWithOptions({ weekStartsOn: 2 })(interval) + assert.deepEqual(result, [ + new Date(2014, 8 /* Sep */, 30), + new Date(2014, 9 /* Oct */, 7), + new Date(2014, 9 /* Oct */, 14), + new Date(2014, 9 /* Oct */, 21), + new Date(2014, 9 /* Oct */, 28), + new Date(2014, 10 /* Nov */, 4), + new Date(2014, 10 /* Nov */, 11), + new Date(2014, 10 /* Nov */, 18) + ]) + }) + + it('endOfDay', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.endOfDay(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 2, 23, 59, 59, 999)) + }) + + it('endOfHour', function() { + var date = new Date(2014, 11, 1, 22, 15) + var result = fp.endOfHour(date) + assert.deepEqual(result, new Date(2014, 11, 1, 22, 59, 59, 999)) + }) + + it('endOfISOWeek', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.endOfISOWeek(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 7, 23, 59, 59, 999)) + }) + + it('endOfISOWeekYear', function() { + var result = fp.endOfISOWeekYear(new Date(2009, 0 /* Jan */, 1, 16, 0)) + assert.deepEqual(result, new Date(2010, 0 /* Jan */, 3, 23, 59, 59, 999)) + }) + + it('endOfMinute', function() { + var date = new Date(2014, 11, 1, 22, 15) + var result = fp.endOfMinute(date) + assert.deepEqual(result, new Date(2014, 11, 1, 22, 15, 59, 999)) + }) + + it('endOfMonth', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.endOfMonth(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 30, 23, 59, 59, 999)) + }) + + it('endOfQuarter', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.endOfQuarter(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 30, 23, 59, 59, 999)) + }) + + it('endOfSecond', function() { + var date = new Date(2014, 11, 1, 22, 15, 30) + var result = fp.endOfSecond(date) + assert.deepEqual(result, new Date(2014, 11, 1, 22, 15, 30, 999)) + }) + + it('endOfWeek', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.endOfWeek(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 6, 23, 59, 59, 999)) + }) + + it('endOfWeekWithOptions', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.endOfWeekWithOptions({ weekStartsOn: 2 })(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 8, 23, 59, 59, 999)) + }) + + it('endOfYear', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.endOfYear(date) + assert.deepEqual(result, new Date(2014, 11 /* Dec */, 31, 23, 59, 59, 999)) + }) + + it('format', function() { + var date = new Date(2014, 3, 4) + var result = fp.format('yyyy-MM-dd')(date) + assert(result === '2014-04-04') + }) + + it('formatWithOptions', function() { + var date = new Date(2014, 3, 4) + var result = fp.formatWithOptions({})('yyyy-MM-dd')(date) + assert(result === '2014-04-04') + }) + + it('formatDistance', function() { + var result = fp.formatDistance(new Date(1986, 3, 4, 10, 34, 50))( + new Date(1986, 3, 4, 10, 32, 0) + ) + assert(result === '3 minutes') + }) + + it('formatDistanceWithOptions', function() { + var result = fp.formatDistanceWithOptions({ includeSeconds: true })( + new Date(1986, 3, 4, 10, 32, 3) + )(new Date(1986, 3, 4, 10, 32, 0)) + assert(result === 'less than 5 seconds') + }) + + it('formatDistanceStrict', function() { + var result = fp.formatDistanceStrict(new Date(1986, 3, 7, 10, 32, 0))( + new Date(1986, 3, 4, 10, 32, 0) + ) + assert(result === '3 days') + }) + + it('formatDistanceStrictWithOptions', function() { + var result = fp.formatDistanceStrictWithOptions({ addSuffix: true })( + new Date(1986, 3, 4, 10, 32, 0) + )(new Date(1986, 3, 4, 11, 32, 0)) + assert(result === 'in 1 hour') + }) + + it('formatRelative', function() { + var result = fp.formatRelative(new Date(1986, 3 /* Apr */, 4, 10, 32))( + new Date(1986, 2 /* Mar */, 28, 16, 50) + ) + assert(result === '03/28/1986') + }) + + it('formatRelativeWithOptions', function() { + var result = fp.formatRelativeWithOptions({})( + new Date(1986, 3 /* Apr */, 4, 10, 32) + )(new Date(1986, 2 /* Mar */, 28, 16, 50)) + assert(result === '03/28/1986') + }) + + it('fromUnixTime', function() { + var result = fp.fromUnixTime(1330515499) + assert(result.getTime() === 1330515499000) + }) + + it('getDate', function() { + var result = fp.getDate(new Date(2012, 1 /* Feb */, 29)) + assert(result === 29) + }) + + it('getDay', function() { + var result = fp.getDay(new Date(2012, 1 /* Feb */, 29)) + assert(result === 3) + }) + + it('getDayOfYear', function() { + var result = fp.getDayOfYear(new Date(2014, 6 /* Jul */, 2)) + assert(result === 183) + }) + + it('getDaysInMonth', function() { + var result = fp.getDaysInMonth(new Date(2100, 1 /* Feb */, 11)) + assert(result === 28) + }) + + it('getDaysInYear', function() { + var result = fp.getDaysInYear(new Date(2012, 6 /* Jul */, 2)) + assert(result === 366) + }) + + it('getHours', function() { + var result = fp.getHours(new Date(2012, 1 /* Feb */, 29, 11, 45)) + assert(result === 11) + }) + + it('getISODay', function() { + var result = fp.getISODay(new Date(2012, 1 /* Feb */, 29)) + assert(result === 3) + }) + + it('getISOWeek', function() { + var result = fp.getISOWeek(new Date(2005, 0 /* Jan */, 2)) + assert(result === 53) + }) + + it('getISOWeeksInYear', function() { + var result = fp.getISOWeeksInYear(new Date(2015, 1 /* Feb */, 11)) + assert(result === 53) + }) + + it('getISOWeekYear', function() { + var result = fp.getISOWeekYear(new Date(2007, 11 /* Dec */, 31)) + assert(result === 2008) + }) + + it('getMilliseconds', function() { + var result = fp.getMilliseconds( + new Date(2012, 1 /* Feb */, 29, 11, 45, 5, 123) + ) + assert(result === 123) + }) + + it('getMinutes', function() { + var result = fp.getMinutes(new Date(2012, 1 /* Feb */, 29, 11, 45, 5)) + assert(result === 45) + }) + + it('getMonth', function() { + var result = fp.getMonth(new Date(2012, 1 /* Feb */, 29)) + assert(result === 1) + }) + + it('getOverlappingDaysInIntervals', function() { + var leftInterval = { + start: new Date(2016, 10, 10, 13, 0, 0), + end: new Date(2016, 11, 3, 15, 0, 0) + } + var rightInterval = { + start: new Date(2016, 10, 5), + end: new Date(2016, 11, 15) + } + var numOverlappingDays = fp.getOverlappingDaysInIntervals(rightInterval)( + leftInterval + ) + assert(numOverlappingDays === 24) + }) + + it('getQuarter', function() { + var result = fp.getQuarter(new Date(2014, 6 /* Jul */, 2)) + assert(result === 3) + }) + + it('getSeconds', function() { + var result = fp.getSeconds(new Date(2012, 1 /* Feb */, 29, 11, 45, 5, 123)) + assert(result === 5) + }) + + it('getTime', function() { + var timestamp = 1483228800000 + var result = fp.getTime(new Date(timestamp)) + assert(result === timestamp) + }) + + it('getWeek', function() { + var result = fp.getWeek(new Date(2005, 0 /* Jan */, 2)) + assert(result === 2) + }) + + it('getWeeksInMonth', function() { + var result = fp.getWeeksInMonth(new Date(2017, 3 /* Apr */, 8, 18, 0)) + assert(result === 6) + }) + + it('getWeeksInMonthWithOptions', function() { + var result = fp.getWeeksInMonthWithOptions({})( + new Date(2017, 3 /* Apr */, 8, 18, 0) + ) + assert(result === 6) + }) + + it('getWeekOfMonth', function() { + var result = fp.getWeekOfMonth(new Date(2017, 10 /* Nov */, 15)) + assert(result === 3) + }) + + it('getWeekOfMonthWithOptions', function() { + var result = fp.getWeekOfMonthWithOptions({ weekStartsOn: 1 })( + new Date(2017, 9 /* Oct */, 1) + ) + assert(result === 1) + }) + + it('getWeekYear', function() { + var result = fp.getWeekYear(new Date(2004, 11 /* Dec */, 26)) + assert(result === 2005) + }) + + it('getWeekYearWithOptions', function() { + var result = fp.getWeekYearWithOptions({ + weekStartsOn: 1, + firstWeekContainsDate: 4 + })(new Date(2004, 11 /* Dec */, 26)) + assert(result === 2004) + }) + + it('getYear', function() { + var result = fp.getYear(new Date(2014, 6 /* Jul */, 2)) + assert(result === 2014) + }) + + it('isAfter', function() { + var result = fp.isAfter(new Date(1987, 1 /* Feb */, 11))( + new Date(1989, 6 /* Jul */, 10) + ) + assert(result === true) + }) + + it('isBefore', function() { + var result = fp.isBefore(new Date(1989, 6 /* Jul */, 10))( + new Date(1987, 1 /* Feb */, 11) + ) + assert(result === true) + }) + + it('isEqual', function() { + var result = fp.isEqual(new Date(1987, 1 /* Feb */, 11))( + new Date(1987, 1 /* Feb */, 11) + ) + assert(result === true) + }) + + it('isFirstDayOfMonth', function() { + var result = fp.isFirstDayOfMonth(new Date(2014, 9 /* Oct */, 1)) + assert(result === true) + }) + + it('isFriday', function() { + var result = fp.isFriday(new Date(2014, 8 /* Sep */, 26)) + assert(result === true) + }) + + it('isLastDayOfMonth', function() { + var result = fp.isLastDayOfMonth(new Date(2014, 9 /* Oct */, 31)) + assert(result === true) + }) + + it('isLeapYear', function() { + var result = fp.isLeapYear(new Date(2012, 6 /* Jul */, 2)) + assert(result === true) + }) + + it('isMonday', function() { + var result = fp.isMonday(new Date(2014, 8 /* Sep */, 22)) + assert(result === true) + }) + + it('isSameDay', function() { + var result = fp.isSameDay(new Date(2014, 8 /* Sep */, 4, 18, 0))( + new Date(2014, 8 /* Sep */, 4, 6, 0) + ) + assert(result === true) + }) + + it('isSameHour', function() { + var result = fp.isSameHour(new Date(2014, 8 /* Sep */, 4, 6, 30))( + new Date(2014, 8 /* Sep */, 4, 6, 0) + ) + assert(result === true) + }) + + it('isSameISOWeek', function() { + var result = fp.isSameISOWeek(new Date(2014, 8 /* Sep */, 7))( + new Date(2014, 8 /* Sep */, 1) + ) + assert(result === true) + }) + + it('isSameISOWeekYear', function() { + var result = fp.isSameISOWeekYear(new Date(2005, 0 /* Jan */, 2))( + new Date(2003, 11 /* Dec */, 29) + ) + assert(result === true) + }) + + it('isSameMinute', function() { + var result = fp.isSameMinute(new Date(2014, 8 /* Sep */, 4, 6, 30, 15))( + new Date(2014, 8 /* Sep */, 4, 6, 30) + ) + assert(result === true) + }) + + it('isSameMonth', function() { + var result = fp.isSameMonth(new Date(2014, 8 /* Sep */, 25))( + new Date(2014, 8 /* Sep */, 2) + ) + assert(result === true) + }) + + it('isSameQuarter', function() { + var result = fp.isSameQuarter(new Date(2014, 2 /* Mar */, 8))( + new Date(2014, 0 /* Jan */, 1) + ) + assert(result === true) + }) + + it('isSameSecond', function() { + var result = fp.isSameSecond( + new Date(2014, 8 /* Sep */, 4, 6, 30, 15, 500) + )(new Date(2014, 8 /* Sep */, 4, 6, 30, 15)) + assert(result === true) + }) + + it('isSameWeek', function() { + var result = fp.isSameWeek(new Date(2014, 8 /* Sep */, 4))( + new Date(2014, 7 /* Aug */, 31) + ) + assert(result === true) + }) + + it('isSameWeekWithOptions', function() { + var result = fp.isSameWeekWithOptions({ weekStartsOn: 1 })( + new Date(2014, 8 /* Sep */, 4) + )(new Date(2014, 7 /* Aug */, 31)) + assert(result === false) + }) + + it('isSameYear', function() { + var result = fp.isSameYear(new Date(2014, 8 /* Sep */, 25))( + new Date(2014, 8 /* Sep */, 2) + ) + assert(result === true) + }) + + it('isSaturday', function() { + var result = fp.isSaturday(new Date(2014, 8 /* Sep */, 27)) + assert(result === true) + }) + + it('isSunday', function() { + var result = fp.isSunday(new Date(2014, 8 /* Sep */, 21)) + assert(result === true) + }) + + it('isThursday', function() { + var result = fp.isThursday(new Date(2014, 8 /* Sep */, 25)) + assert(result === true) + }) + + it('isTuesday', function() { + var result = fp.isTuesday(new Date(2014, 8 /* Sep */, 23)) + assert(result === true) + }) + + it('isValid', function() { + var result = fp.isValid(new Date()) + assert(result === true) + }) + + it('isWednesday', function() { + var result = fp.isWednesday(new Date(2014, 8 /* Sep */, 24)) + assert(result === true) + }) + + it('isWeekend', function() { + var result = fp.isWeekend(new Date(2014, 9 /* Oct */, 5)) + assert(result === true) + }) + + it('isWithinInterval', function() { + var interval = { + start: new Date(2014, 8 /* Sep */, 1), + end: new Date(2014, 11 /* Dec */, 31) + } + var result = fp.isWithinInterval(interval)(new Date(2014, 9 /* Oct */, 31)) + assert(result === true) + }) + + it('lastDayOfISOWeek', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.lastDayOfISOWeek(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 7)) + }) + + it('lastDayOfISOWeekYear', function() { + var result = fp.lastDayOfISOWeekYear(new Date(2009, 0 /* Jan */, 1, 16, 0)) + assert.deepEqual(result, new Date(2010, 0 /* Jan */, 3)) + }) + + it('lastDayOfMonth', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.lastDayOfMonth(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 30)) + }) + + it('lastDayOfQuarter', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.lastDayOfQuarter(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 30)) + }) + + it('lastDayOfWeek', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.lastDayOfWeek(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 6)) + }) + + it('lastDayOfWeekWithOptions', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.lastDayOfWeekWithOptions({ weekStartsOn: 1 })(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 7)) + }) + + it('lastDayOfYear', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.lastDayOfYear(date) + assert.deepEqual(result, new Date(2014, 11 /* Dec */, 31)) + }) + + it('max', function() { + var result = fp.max([ + new Date(1989, 6 /* Jul */, 10), + new Date(1987, 1 /* Feb */, 11) + ]) + assert.deepEqual(result, new Date(1989, 6 /* Jul */, 10)) + }) + + it('min', function() { + var result = fp.min([ + new Date(1989, 6 /* Jul */, 10), + new Date(1987, 1 /* Feb */, 11) + ]) + assert.deepEqual(result, new Date(1987, 1 /* Feb */, 11)) + }) + + it('parse', function() { + var baseDate = new Date(1986, 3 /* Apr */, 4, 10, 32, 0, 900) + var result = fp.parse(baseDate)("yyyyMMdd'T'HHmmss")('20161105T040404') + assert.deepEqual(result, new Date(2016, 10 /* Nov */, 5, 4, 4, 4, 0)) + }) + + it('parseWithOptions', function() { + var baseDate = new Date(1986, 3 /* Apr */, 4, 10, 32, 0, 900) + var result = fp.parseWithOptions({})(baseDate)("yyyyMMdd'T'HHmmss")( + '20161105T040404' + ) + assert.deepEqual(result, new Date(2016, 10 /* Nov */, 5, 4, 4, 4, 0)) + }) + + it('roundToNearestMinutes', function() { + var result = fp.roundToNearestMinutes( + new Date(2014, 6 /* Jul */, 10, 12, 11, 34, 99) + ) + assert.deepEqual(result, new Date(2014, 6 /* Jul */, 10, 12, 12)) + }) + + it('roundToNearestMinutesWithOptions', function() { + const resultA = fp.roundToNearestMinutesWithOptions({ nearestTo: 5 })( + new Date(2014, 6 /* Jul */, 10, 12, 11, 34, 99) + ) + assert.deepEqual(resultA, new Date(2014, 6 /* Jul */, 10, 12, 10)) + + const resultB = fp.roundToNearestMinutesWithOptions({})( + new Date(2014, 6 /* Jul */, 10, 12, 11, 34, 99) + ) + assert.deepEqual(resultB, new Date(2014, 6 /* Jul */, 10, 12, 12)) + }) + + it('setDate', function() { + var result = fp.setDate(30)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 30)) + }) + + it('setDay', function() { + var result = fp.setDay(0)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2014, 7 /* Aug */, 31)) + }) + + it('setDayOfYear', function() { + var result = fp.setDayOfYear(2)(new Date(2014, 6 /* Jul */, 2)) + assert.deepEqual(result, new Date(2014, 0 /* Jan */, 2)) + }) + + it('setHours', function() { + var result = fp.setHours(4)(new Date(2014, 8 /* Sep */, 1, 11, 30)) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 1, 4, 30)) + }) + + it('setISODay', function() { + var result = fp.setISODay(3)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 3)) + }) + + it('setISOWeek', function() { + var result = fp.setISOWeek(53)(new Date(2004, 7 /* Aug */, 7)) + assert.deepEqual(result, new Date(2005, 0 /* Jan */, 1)) + }) + + it('setISOWeekYear', function() { + var result = fp.setISOWeekYear(2007)(new Date(2008, 11 /* Dec */, 29)) + assert.deepEqual(result, new Date(2007, 0 /* Jan */, 1)) + }) + + it('setMilliseconds', function() { + var result = fp.setMilliseconds(300)( + new Date(2014, 8 /* Sep */, 1, 11, 30, 40, 500) + ) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 1, 11, 30, 40, 300)) + }) + + it('setMinutes', function() { + var result = fp.setMinutes(45)(new Date(2014, 8 /* Sep */, 1, 11, 30, 40)) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 1, 11, 45, 40)) + }) + + it('setMonth', function() { + var result = fp.setMonth(1)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2014, 1 /* Feb */, 1)) + }) + + it('setQuarter', function() { + var result = fp.setQuarter(1)(new Date(2014, 6 /* Jul */, 2)) + assert.deepEqual(result, new Date(2014, 0 /* Jan */, 2)) + }) + + it('setSeconds', function() { + var result = fp.setSeconds(45)( + new Date(2014, 8 /* Sep */, 1, 11, 30, 40, 500) + ) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 1, 11, 30, 45, 500)) + }) + + it('setWeek', function() { + var result = fp.setWeek(1)(new Date(2005, 0 /* Jan */, 2)) + assert.deepEqual(result, new Date(2004, 11 /* Dec */, 26)) + }) + + it('setWeekWithOptions', function() { + var result = fp.setWeekWithOptions({ + weekStartsOn: 1, + firstWeekContainsDate: 4 + })(1)(new Date(2005, 0 /* Jan */, 2)) + assert.deepEqual(result, new Date(2004, 0 /* Jan */, 4)) + }) + + it('setWeekYear', function() { + var result = fp.setWeekYear(2004)(new Date(2010, 0 /* Jan */, 2)) + assert.deepEqual(result, new Date(2004, 0 /* Jan */, 3)) + }) + + it('setWeekYearWithOptions', function() { + var result = fp.setWeekYearWithOptions({ + weekStartsOn: 1, + firstWeekContainsDate: 4 + })(2004)(new Date(2010, 0 /* Jan */, 2)) + assert.deepEqual(result, new Date(2005, 0 /* Jan */, 1)) + }) + + it('setYear', function() { + var result = fp.setYear(2013)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2013, 8 /* Sep */, 1)) + }) + + it('startOfDay', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.startOfDay(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 2, 0, 0, 0, 0)) + }) + + it('startOfHour', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55) + var result = fp.startOfHour(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 2, 11)) + }) + + it('startOfISOWeek', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.startOfISOWeek(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 1)) + }) + + it('startOfISOWeekYear', function() { + var result = fp.startOfISOWeekYear(new Date(2009, 0 /* Jan */, 1, 16, 0)) + assert.deepEqual(result, new Date(2008, 11 /* Dec */, 29, 0, 0, 0, 0)) + }) + + it('startOfMinute', function() { + var date = new Date(2014, 11 /* Dec */, 1, 22, 15, 45, 400) + var result = fp.startOfMinute(date) + assert.deepEqual(result, new Date(2014, 11 /* Dec */, 1, 22, 15)) + }) + + it('startOfMonth', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.startOfMonth(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 1)) + }) + + it('startOfQuarter', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.startOfQuarter(date) + assert.deepEqual(result, new Date(2014, 6 /* Jul */, 1)) + }) + + it('startOfSecond', function() { + var date = new Date(2014, 11 /* Dec */, 1, 22, 15, 45, 400) + var result = fp.startOfSecond(date) + assert.deepEqual(result, new Date(2014, 11 /* Dec */, 1, 22, 15, 45)) + }) + + it('startOfWeek', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.startOfWeek(date) + assert.deepEqual(result, new Date(2014, 7 /* Aug */, 31)) + }) + + it('startOfWeekWithOptions', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.startOfWeekWithOptions({ weekStartsOn: 1 })(date) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 1)) + }) + + it('startOfWeekYear', function() { + var result = fp.startOfWeekYear(new Date(2005, 6 /* Jul */, 2)) + assert.deepEqual(result, new Date(2004, 11 /* Dec */, 26, 0, 0, 0, 0)) + }) + + it('startOfWeekYearWithOptions', function() { + var result = fp.startOfWeekYearWithOptions({ + weekStartsOn: 1, + firstWeekContainsDate: 4 + })(new Date(2005, 6 /* Jul */, 2)) + assert.deepEqual(result, new Date(2005, 0 /* Jan */, 3, 0, 0, 0, 0)) + }) + + it('startOfYear', function() { + var date = new Date(2014, 8 /* Sep */, 2, 11, 55, 0) + var result = fp.startOfYear(date) + assert.deepEqual(result, new Date(2014, 0 /* Jan */, 1, 0, 0, 0, 0)) + }) + + it('subDays', function() { + var result = fp.subDays(10)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2014, 7 /* Aug */, 22)) + }) + + it('subHours', function() { + var result = fp.subHours(2)(new Date(2014, 6 /* Jul */, 11, 1, 0)) + assert.deepEqual(result, new Date(2014, 6 /* Jul */, 10, 23, 0)) + }) + + it('subISOWeekYears', function() { + var result = fp.subISOWeekYears(5)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2009, 7 /* Aug */, 31)) + }) + + it('subMilliseconds', function() { + var result = fp.subMilliseconds(750)( + new Date(2014, 6 /* Jul */, 10, 12, 45, 30, 0) + ) + assert.deepEqual(result, new Date(2014, 6 /* Jul */, 10, 12, 45, 29, 250)) + }) + + it('subMinutes', function() { + var result = fp.subMinutes(30)(new Date(2014, 6 /* Jul */, 10, 12, 0)) + assert.deepEqual(result, new Date(2014, 6 /* Jul */, 10, 11, 30)) + }) + + it('subMonths', function() { + var result = fp.subMonths(5)(new Date(2015, 1 /* Feb */, 1)) + assert.deepEqual(result, new Date(2014, 8 /* Sep */, 1)) + }) + + it('subQuarters', function() { + var result = fp.subQuarters(3)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2013, 11 /* Dec */, 1)) + }) + + it('subSeconds', function() { + var result = fp.subSeconds(30)(new Date(2014, 6 /* Jul */, 10, 12, 45, 0)) + assert.deepEqual(result, new Date(2014, 6 /* Jul */, 10, 12, 44, 30)) + }) + + it('subWeeks', function() { + var result = fp.subWeeks(4)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2014, 7 /* Aug */, 4)) + }) + + it('subYears', function() { + var result = fp.subYears(5)(new Date(2014, 8 /* Sep */, 1)) + assert.deepEqual(result, new Date(2009, 8 /* Sep */, 1)) + }) + + it('parseISO', function() { + var result = fp.parseISO('2014-10-25T13:46:20+07:00') + assert.deepEqual(result, new Date('2014-10-25T13:46:20+07:00')) + }) + + it('parseISOWithOptions', function() { + var result = fp.parseISOWithOptions({ additionalDigits: 0 })('+12340702') + assert.deepEqual(result, new Date(1234, 6 /* Jul */, 2)) + }) +}) |