@technobuddha/library
Version:
A large library of useful functions
101 lines (96 loc) • 5.64 kB
text/typescript
import { month } from './date.ts';
import { isLeapYear } from './is-leap-year.ts';
describe('isLeapYear', () => {
test('should compute test dates', () => {
expect(isLeapYear(new Date('1 Jan 2000'))).toBeTrue();
expect(isLeapYear(new Date('1 Jan 2001'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2002'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2003'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2004'))).toBeTrue();
expect(isLeapYear(new Date('1 Jan 2005'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2006'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2007'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2008'))).toBeTrue();
expect(isLeapYear(new Date('1 Jan 2009'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2010'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2011'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2012'))).toBeTrue();
expect(isLeapYear(new Date('1 Jan 2013'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2014'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2015'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2016'))).toBeTrue();
expect(isLeapYear(new Date('1 Jan 2017'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2018'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2019'))).toBeFalse();
expect(isLeapYear(new Date('1 Jan 2020'))).toBeTrue();
});
test('should compute test numbers', () => {
expect(isLeapYear(2000)).toBeTrue();
expect(isLeapYear(2001)).toBeFalse();
expect(isLeapYear(2002)).toBeFalse();
expect(isLeapYear(2003)).toBeFalse();
expect(isLeapYear(2004)).toBeTrue();
expect(isLeapYear(2005)).toBeFalse();
expect(isLeapYear(2006)).toBeFalse();
expect(isLeapYear(2007)).toBeFalse();
expect(isLeapYear(2008)).toBeTrue();
expect(isLeapYear(2009)).toBeFalse();
expect(isLeapYear(2010)).toBeFalse();
expect(isLeapYear(2011)).toBeFalse();
expect(isLeapYear(2012)).toBeTrue();
expect(isLeapYear(2013)).toBeFalse();
expect(isLeapYear(2014)).toBeFalse();
expect(isLeapYear(2015)).toBeFalse();
expect(isLeapYear(2016)).toBeTrue();
expect(isLeapYear(2017)).toBeFalse();
expect(isLeapYear(2018)).toBeFalse();
expect(isLeapYear(2019)).toBeFalse();
expect(isLeapYear(2020)).toBeTrue();
});
test('should compute test UTC dates', () => {
expect(isLeapYear(new Date(Date.UTC(2000, month.january, 1)), { utc: true })).toBeTrue();
expect(isLeapYear(new Date(Date.UTC(2001, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2002, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2003, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2004, month.january, 1)), { utc: true })).toBeTrue();
expect(isLeapYear(new Date(Date.UTC(2005, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2006, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2007, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2008, month.january, 1)), { utc: true })).toBeTrue();
expect(isLeapYear(new Date(Date.UTC(2009, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2010, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2011, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2012, month.january, 1)), { utc: true })).toBeTrue();
expect(isLeapYear(new Date(Date.UTC(2013, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2014, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2015, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2016, month.january, 1)), { utc: true })).toBeTrue();
expect(isLeapYear(new Date(Date.UTC(2017, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2018, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2019, month.january, 1)), { utc: true })).toBeFalse();
expect(isLeapYear(new Date(Date.UTC(2020, month.january, 1)), { utc: true })).toBeTrue();
});
test('should compute test UTC numbers', () => {
expect(isLeapYear(2000, { utc: true })).toBeTrue();
expect(isLeapYear(2001, { utc: true })).toBeFalse();
expect(isLeapYear(2002, { utc: true })).toBeFalse();
expect(isLeapYear(2003, { utc: true })).toBeFalse();
expect(isLeapYear(2004, { utc: true })).toBeTrue();
expect(isLeapYear(2005, { utc: true })).toBeFalse();
expect(isLeapYear(2006, { utc: true })).toBeFalse();
expect(isLeapYear(2007, { utc: true })).toBeFalse();
expect(isLeapYear(2008, { utc: true })).toBeTrue();
expect(isLeapYear(2009, { utc: true })).toBeFalse();
expect(isLeapYear(2010, { utc: true })).toBeFalse();
expect(isLeapYear(2011, { utc: true })).toBeFalse();
expect(isLeapYear(2012, { utc: true })).toBeTrue();
expect(isLeapYear(2013, { utc: true })).toBeFalse();
expect(isLeapYear(2014, { utc: true })).toBeFalse();
expect(isLeapYear(2015, { utc: true })).toBeFalse();
expect(isLeapYear(2016, { utc: true })).toBeTrue();
expect(isLeapYear(2017, { utc: true })).toBeFalse();
expect(isLeapYear(2018, { utc: true })).toBeFalse();
expect(isLeapYear(2019, { utc: true })).toBeFalse();
expect(isLeapYear(2020, { utc: true })).toBeTrue();
});
});