Test if step limits available dates in calendar picker. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". Test Day constructor PASS new pw.Day(2000, 1, 2).year is 2000 PASS new pw.Day(2000, 1, 2).month is 1 PASS new pw.Day(2000, 1, 2).date is 2 PASS new pw.Day(2000, -1, 2).year is 1999 PASS new pw.Day(2000, -1, 2).month is 11 PASS new pw.Day(2000, -1, 2).date is 2 PASS new pw.Day(2000, 1, -2).year is 2000 PASS new pw.Day(2000, 1, -2).month is 0 PASS new pw.Day(2000, 1, -2).date is 29 PASS new pw.Day(-2000, 1, 2).year is -2000 PASS new pw.Day(-2000, 1, 2).month is 1 PASS new pw.Day(-2000, 1, 2).date is 2 PASS new pw.Day(2000, 1, 33).year is 2000 PASS new pw.Day(2000, 1, 33).month is 2 PASS new pw.Day(2000, 1, 33).date is 4 PASS new pw.Day(200000, 1, 2).year is 200000 PASS new pw.Day(200000, 1, 2).month is 1 PASS new pw.Day(200000, 1, 2).date is 2 Test Day.equals PASS new pw.Day(2000, 1, 2).equals(new pw.Day(2000, 1, 2)) is true PASS new pw.Day(2000, 1, 2).equals(new pw.Day(2000, 2, -27)) is true PASS new pw.Day(2000, 1, 2).equals(new pw.Day(2001, 1, -364)) is true PASS new pw.Day(2000, 1, 2).equals(new pw.Day(2000, 1, 3)) is false PASS new pw.Day(2000, 1, 2).equals(new pw.Day(2000, 2, 2)) is false PASS new pw.Day(2000, 1, 2).equals(new pw.Day(2001, 1, 2)) is false PASS new pw.Day(2000, 1, 2).equals(new pw.Day(2001, 2, 3)) is false Test Day.previous PASS new pw.Day(2000, 2, 1).previous().toString() is "2000-02-29" PASS new pw.Day(2000, 2, 1).previous(1).toString() is "2000-02-29" PASS new pw.Day(2000, 2, 1).previous(2).toString() is "2000-02-28" PASS new pw.Day(2000, 2, 1).previous(3).toString() is "2000-02-27" PASS new pw.Day(2000, 2, 1).previous(30).toString() is "2000-01-31" Test Day.next PASS new pw.Day(2000, 2, 1).next().toString() is "2000-03-02" PASS new pw.Day(2000, 2, 1).next(1).toString() is "2000-03-02" PASS new pw.Day(2000, 2, 1).next(2).toString() is "2000-03-03" PASS new pw.Day(2000, 2, 1).next(3).toString() is "2000-03-04" PASS new pw.Day(2000, 2, 1).next(30).toString() is "2000-03-31" Test Day.firstDay PASS new pw.Day(2000, 2, 1).firstDay().toString() is "2000-03-01" Test Day.middleDay PASS new pw.Day(2000, 2, 1).middleDay().toString() is "2000-03-01" Test Day.lastDay PASS new pw.Day(2000, 2, 1).lastDay().toString() is "2000-03-01" Test Day.valueOf PASS new pw.Day(1970, 0, 1).valueOf() is 0 PASS new pw.Day(1970, 0, 2).valueOf() is 86400000 PASS new pw.Day(2000, 2, 1).valueOf() is 951868800000 PASS new pw.Day(1, 2, 1).valueOf() is -62130499200000 PASS new pw.Day(20000, 2, 1).valueOf() is 568977004800000 Test Day.toString PASS new pw.Day(2000, 2, 1).toString() is "2000-03-01" PASS new pw.Day(1, 2, 1).toString() is "0001-03-01" PASS new pw.Day(20000, 2, 1).toString() is "20000-03-01" Test Day.parse PASS pw.Day.parse("2000-02-02").toString() is "2000-02-02" PASS pw.Day.parse("1999-02-02").toString() is "1999-02-02" PASS pw.Day.parse("2000-01-02").toString() is "2000-01-02" PASS pw.Day.parse("2000-02-01").toString() is "2000-02-01" PASS pw.Day.parse("0001-01-01").toString() is "0001-01-01" PASS pw.Day.parse("02000-02-02").toString() is "2000-02-02" PASS pw.Day.parse("2000-002-02").toString() is "2000-02-02" PASS pw.Day.parse("2000-02-002").toString() is "2000-02-02" PASS pw.Day.parse("2000-2-02").toString() is "2000-02-02" PASS pw.Day.parse("2000-02-2").toString() is "2000-02-02" PASS pw.Day.parse("1-02-02").toString() is "0001-02-02" PASS pw.Day.parse("2000-02") is null PASS pw.Day.parse("2000-W02") is null PASS pw.Day.parse("x") is null PASS pw.Day.parse("") is null Test Week constructor PASS new pw.Week(2000, 1).year is 2000 PASS new pw.Week(2000, 1).week is 1 PASS new pw.Week(2000, -1).year is 1999 PASS new pw.Week(2000, -1).week is 51 PASS new pw.Week(-2000, 1).year is -2000 PASS new pw.Week(-2000, 1).week is 1 PASS new pw.Week(2000, 55).year is 2001 PASS new pw.Week(2000, 55).week is 3 PASS new pw.Week(200000, 1).year is 200000 PASS new pw.Week(200000, 1).week is 1 Test Week.equals PASS new pw.Week(2000, 1).equals(new pw.Week(2000, 1)) is true PASS new pw.Week(2000, 1).equals(new pw.Week(2001, -51)) is true PASS new pw.Week(2000, 1).equals(new pw.Week(1999, 53)) is true PASS new pw.Week(2000, 1).equals(new pw.Week(2000, 2)) is false PASS new pw.Week(2000, 1).equals(new pw.Week(2001, 1)) is false PASS new pw.Week(2000, 1).equals(new pw.Week(2001, 2)) is false Test Week.previous PASS new pw.Week(2000, 2).previous().toString() is "2000-W01" PASS new pw.Week(2000, 2).previous(1).toString() is "2000-W01" PASS new pw.Week(2000, 2).previous(2).toString() is "1999-W52" PASS new pw.Week(2000, 2).previous(3).toString() is "1999-W51" PASS new pw.Week(2000, 2).previous(100).toString() is "1998-W07" Test Week.next PASS new pw.Week(2000, 2).next().toString() is "2000-W03" PASS new pw.Week(2000, 2).next(1).toString() is "2000-W03" PASS new pw.Week(2000, 2).next(2).toString() is "2000-W04" PASS new pw.Week(2000, 2).next(3).toString() is "2000-W05" PASS new pw.Week(2000, 2).next(100).toString() is "2001-W50" Test Week.firstDay PASS new pw.Week(2000, 2).firstDay().toString() is "2000-01-10" PASS new pw.Week(2000, 50).firstDay().toString() is "2000-12-11" PASS new pw.Week(1, 1).firstDay().toString() is "0001-01-01" PASS new pw.Week(1, 50).firstDay().toString() is "0001-12-10" PASS new pw.Week(20000, 1).firstDay().toString() is "20000-01-03" PASS new pw.Week(20000, 50).firstDay().toString() is "20000-12-11" Test Week.middleDay PASS new pw.Week(2000, 2).middleDay().toString() is "2000-01-13" PASS new pw.Week(2000, 50).middleDay().toString() is "2000-12-14" PASS new pw.Week(1, 1).middleDay().toString() is "0001-01-04" PASS new pw.Week(1, 50).middleDay().toString() is "0001-12-13" PASS new pw.Week(20000, 1).middleDay().toString() is "20000-01-06" PASS new pw.Week(20000, 50).middleDay().toString() is "20000-12-14" Test Week.lastDay PASS new pw.Week(2000, 2).lastDay().toString() is "2000-01-16" PASS new pw.Week(2000, 50).lastDay().toString() is "2000-12-17" PASS new pw.Week(1, 1).lastDay().toString() is "0001-01-07" PASS new pw.Week(1, 50).lastDay().toString() is "0001-12-16" PASS new pw.Week(20000, 1).lastDay().toString() is "20000-01-09" PASS new pw.Week(20000, 50).lastDay().toString() is "20000-12-17" Test Week.valueOf PASS new pw.Week(1970, 1).valueOf() is -259200000 PASS new pw.Week(1970, 2).valueOf() is 345600000 PASS new pw.Week(2000, 1).valueOf() is 946857600000 PASS new pw.Week(1, 1).valueOf() is -62135596800000 PASS new pw.Week(20000, 2).valueOf() is 568972598400000 Test Week.toString PASS new pw.Week(2000, 2).toString() is "2000-W02" PASS new pw.Week(1, 50).toString() is "0001-W50" PASS new pw.Week(20000, 2).toString() is "20000-W02" Test Week.parse PASS pw.Week.parse("2000-W02").toString() is "2000-W02" PASS pw.Week.parse("1999-W10").toString() is "1999-W10" PASS pw.Week.parse("0001-W23").toString() is "0001-W23" PASS pw.Week.parse("12345-W32").toString() is "12345-W32" PASS pw.Week.parse("02000-W02").toString() is "2000-W02" PASS pw.Week.parse("2000-W002").toString() is "2000-W02" PASS pw.Week.parse("2000-W2").toString() is "2000-W02" PASS pw.Week.parse("1-W02").toString() is "0001-W02" PASS pw.Week.parse("2000-02-03") is null PASS pw.Week.parse("2000-02") is null PASS pw.Week.parse("x") is null PASS pw.Week.parse("") is null Test Month constructor PASS new pw.Month(2000, 1).year is 2000 PASS new pw.Month(2000, 1).month is 1 PASS new pw.Month(2000, -1).year is 1999 PASS new pw.Month(2000, -1).month is 11 PASS new pw.Month(-2000, 1).year is -2000 PASS new pw.Month(-2000, 1).month is 1 PASS new pw.Month(2000, 13).year is 2001 PASS new pw.Month(2000, 13).month is 1 PASS new pw.Month(200000, 1).year is 200000 PASS new pw.Month(200000, 1).month is 1 Test Month.equals PASS new pw.Month(2000, 1).equals(new pw.Month(2000, 1)) is true PASS new pw.Month(2000, 1).equals(new pw.Month(2001, -11)) is true PASS new pw.Month(2000, 1).equals(new pw.Month(1999, 13)) is true PASS new pw.Month(2000, 1).equals(new pw.Month(2000, 2)) is false PASS new pw.Month(2000, 1).equals(new pw.Month(2001, 1)) is false PASS new pw.Month(2000, 1).equals(new pw.Month(2001, 2)) is false Test Month.previous PASS new pw.Month(2000, 2).previous().toString() is "2000-02" PASS new pw.Month(2000, 2).previous(1).toString() is "2000-02" PASS new pw.Month(2000, 2).previous(2).toString() is "2000-01" PASS new pw.Month(2000, 2).previous(3).toString() is "1999-12" PASS new pw.Month(2000, 2).previous(100).toString() is "1991-11" Test Month.next PASS new pw.Month(2000, 2).next().toString() is "2000-04" PASS new pw.Month(2000, 2).next(1).toString() is "2000-04" PASS new pw.Month(2000, 2).next(2).toString() is "2000-05" PASS new pw.Month(2000, 2).next(3).toString() is "2000-06" PASS new pw.Month(2000, 2).next(100).toString() is "2008-07" Test Month.firstDay PASS new pw.Month(2000, 1).firstDay().toString() is "2000-02-01" PASS new pw.Month(2000, 11).firstDay().toString() is "2000-12-01" PASS new pw.Month(1, 0).firstDay().toString() is "0001-01-01" PASS new pw.Month(1, 1).firstDay().toString() is "0001-02-01" PASS new pw.Month(1, 11).firstDay().toString() is "0001-12-01" PASS new pw.Month(20000, 0).firstDay().toString() is "20000-01-01" PASS new pw.Month(20000, 1).firstDay().toString() is "20000-02-01" PASS new pw.Month(20000, 11).firstDay().toString() is "20000-12-01" Test Month.middleDay PASS new pw.Month(2000, 0).middleDay().toString() is "2000-01-15" PASS new pw.Month(2000, 1).middleDay().toString() is "2000-02-14" PASS new pw.Month(2000, 2).middleDay().toString() is "2000-03-15" PASS new pw.Month(2000, 11).middleDay().toString() is "2000-12-15" PASS new pw.Month(1, 0).middleDay().toString() is "0001-01-15" PASS new pw.Month(1, 1).middleDay().toString() is "0001-02-14" PASS new pw.Month(1, 2).middleDay().toString() is "0001-03-15" PASS new pw.Month(1, 11).middleDay().toString() is "0001-12-15" PASS new pw.Month(20000, 0).middleDay().toString() is "20000-01-15" PASS new pw.Month(20000, 1).middleDay().toString() is "20000-02-14" PASS new pw.Month(20000, 2).middleDay().toString() is "20000-03-15" PASS new pw.Month(20000, 11).middleDay().toString() is "20000-12-15" Test Month.lastDay PASS new pw.Month(2000, 1).lastDay().toString() is "2000-02-29" PASS new pw.Month(2000, 11).lastDay().toString() is "2000-12-31" PASS new pw.Month(1, 0).lastDay().toString() is "0001-01-31" PASS new pw.Month(1, 1).lastDay().toString() is "0001-02-28" PASS new pw.Month(1, 11).lastDay().toString() is "0001-12-31" PASS new pw.Month(20000, 0).lastDay().toString() is "20000-01-31" PASS new pw.Month(20000, 1).lastDay().toString() is "20000-02-29" PASS new pw.Month(20000, 11).lastDay().toString() is "20000-12-31" Test Month.valueOf PASS new pw.Month(1970, 0).valueOf() is 0 PASS new pw.Month(1970, 1).valueOf() is 1 PASS new pw.Month(2000, 0).valueOf() is 360 PASS new pw.Month(1, 0).valueOf() is -23628 PASS new pw.Month(20000, 11).valueOf() is 216371 Test Month.toString PASS new pw.Month(2000, 0).toString() is "2000-01" PASS new pw.Month(1, 11).toString() is "0001-12" PASS new pw.Month(20000, 5).toString() is "20000-06" Test Month.parse PASS pw.Month.parse("2000-01").toString() is "2000-01" PASS pw.Month.parse("1999-10").toString() is "1999-10" PASS pw.Month.parse("0001-11").toString() is "0001-11" PASS pw.Month.parse("12345-03").toString() is "12345-03" PASS pw.Month.parse("02000-02").toString() is "2000-02" PASS pw.Month.parse("2000-002").toString() is "2000-02" PASS pw.Month.parse("2000-2").toString() is "2000-02" PASS pw.Month.parse("1-02").toString() is "0001-02" PASS pw.Month.parse("2000-02-03") is null PASS pw.Month.parse("2000-W02") is null PASS pw.Month.parse("x") is null PASS pw.Month.parse("") is null PASS successfullyParsed is true TEST COMPLETE