sku-pg
Version:
Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!
213 lines (186 loc) • 6.83 kB
HTML
<html>
<!--
Copyright 2006 The Closure Library Authors. All Rights Reserved.
Use of this source code is governed by an Apache 2.0 License.
See the COPYING file for details.
-->
<head>
<title>Closure Unit Tests - gdr</title>
<script src="../base.js"></script>
<script>
goog.require('goog.date.Date');
goog.require('goog.date.Interval');
goog.require('goog.iter.Iterator');
goog.require('goog.testing.jsunit');
</script>
<script>
goog.require('goog.date.DateRange');
goog.require('goog.date.DateRange.StandardDateRangeKeys');
</script>
</head>
<body>
<script>
var gd = goog.date.Date;
var gdr = goog.date.DateRange;
var gdi = goog.date.Interval;
function testDateRange() {
var date1 = new gd(2000, 0, 1);
var date2 = new gd(2000, 1, 1);
var range = new gdr(date1, date2);
assertTrue('startDate matches', date1.equals(range.getStartDate()));
assertTrue('endDate matches', date2.equals(range.getEndDate()));
}
function testDateRangeEquals() {
var date1 = new gd(2000, 0, 1);
var date2 = new gd(2000, 1, 1);
var range1 = new gdr(date1, date2);
var range2 = new gdr(date1, date2);
assertTrue('equals', gdr.equals(range1, range2));
}
function testDateRangeNotEquals() {
var date1 = new gd(2000, 0, 1);
var date2 = new gd(2000, 1, 1);
var range1 = new gdr(date1, date2);
var range2 = new gdr(date2, date1);
assertFalse('not equals', gdr.equals(range1, range2));
}
function testOffsetInDays() {
var d = new gd(2000, 0, 1);
var f = gdr.offsetInDays_;
assertTrue('same day', d.equals(f(d, 0)));
assertTrue('next day', new gd(2000, 0, 2).equals(f(d, 1)));
assertTrue('last day', new gd(1999, 11, 31).equals(f(d, -1)));
}
function testCurrentOrLastMonday() {
var mon = new gd(2008, 9, 13);
var tue = new gd(2008, 9, 14);
var wed = new gd(2008, 9, 15);
var thu = new gd(2008, 9, 16);
var fri = new gd(2008, 9, 17);
var sat = new gd(2008, 9, 18);
var sun = new gd(2008, 9, 19);
var f = gdr.currentOrLastMonday_;
assertTrue('mon', mon.equals(f(mon)));
assertTrue('tue', mon.equals(f(tue)));
assertTrue('wed', mon.equals(f(wed)));
assertTrue('thu', mon.equals(f(thu)));
assertTrue('fri', mon.equals(f(fri)));
assertTrue('sat', mon.equals(f(sat)));
assertTrue('sun', mon.equals(f(sun)));
}
function testOffsetInMonths() {
var d = new gd(2008, 9, 13);
var f = gdr.offsetInMonths_;
assertTrue('this month', new gd(2008, 9, 1).equals(f(d, 0)));
assertTrue('last month', new gd(2008, 8, 1).equals(f(d, -1)));
assertTrue('next month', new gd(2008, 10, 1).equals(f(d, 1)));
assertTrue('next year', new gd(2009, 9, 1).equals(f(d, 12)));
assertTrue('last year', new gd(2007, 9, 1).equals(f(d, -12)));
}
function testYesterday() {
var d = new gd(2008, 9, 13);
var s = new gd(2008, 9, 12);
var e = new gd(2008, 9, 12);
assertStartEnd('yesterday', s, e, gdr.yesterday(d));
assertStartEnd('yesterday with regular Date', s, e,
gdr.yesterday(new Date(d.getTime())));
}
function testToday() {
var d = new gd(2008, 9, 13);
assertStartEnd('today', d, d, gdr.today(d));
}
function testLast7Days() {
var d = new gd(2008, 9, 13);
var s = new gd(2008, 9, 6);
var e = new gd(2008, 9, 12);
assertStartEnd('last7Days', s, e, gdr.last7Days(d));
assertStartEnd('last7Days with regular Date', s, e,
gdr.last7Days(new Date(d.getTime())));
assertStartEnd('last7Days by key', s, e,
gdr.standardDateRange(gdr.StandardDateRangeKeys.LAST_7_DAYS, d));
}
function testThisMonth() {
var d = new gd(2008, 9, 13);
var s = new gd(2008, 9, 1);
var e = new gd(2008, 9, 31);
assertStartEnd('thisMonth', s, e, gdr.thisMonth(d));
assertStartEnd('thisMonth with regular Date', s, e,
gdr.thisMonth(new Date(d.getTime())));
assertStartEnd('thisMonth by key', s, e,
gdr.standardDateRange(gdr.StandardDateRangeKeys.THIS_MONTH, d));
}
function testLastMonth() {
var d = new gd(2008, 9, 13);
var s = new gd(2008, 8, 1);
var e = new gd(2008, 8, 30);
assertStartEnd('lastMonth', s, e, gdr.lastMonth(d));
assertStartEnd('lastMonth with regular Date', s, e,
gdr.lastMonth(new Date(d.getTime())));
assertStartEnd('lastMonth by key', s, e,
gdr.standardDateRange(gdr.StandardDateRangeKeys.LAST_MONTH, d));
}
function testThisWeek() {
var d = new gd(2008, 9, 13);
var s = new gd(2008, 9, 13);
var e = new gd(2008, 9, 19);
assertStartEnd('thisWeek', s, e, gdr.thisWeek(d));
assertStartEnd('thisWeek with regular Date', s, e,
gdr.thisWeek(new Date(d.getTime())));
assertStartEnd('thisWeek by key', s, e,
gdr.standardDateRange(gdr.StandardDateRangeKeys.THIS_WEEK, d));
}
function testLastWeek() {
var d = new gd(2008, 9, 13);
var s = new gd(2008, 9, 6);
var e = new gd(2008, 9, 12);
assertStartEnd('lastWeek', s, e, gdr.lastWeek(d));
assertStartEnd('lastWeek with regular Date', s, e,
gdr.lastWeek(new Date(d.getTime())));
assertStartEnd('lastWeek by key', s, e,
gdr.standardDateRange(gdr.StandardDateRangeKeys.LAST_WEEK, d));
}
function testLastBusinessWeek() {
var d = new gd(2008, 9, 13);
var s = new gd(2008, 9, 6);
var e = new gd(2008, 9, 10);
assertStartEnd('lastBusinessWeek', s, e, gdr.lastBusinessWeek(d));
assertStartEnd('lastBusinessWeek with regular Date', s, e,
gdr.lastBusinessWeek(new Date(d.getTime())));
assertStartEnd('lastBusinessWeek by key', s, e,
gdr.standardDateRange(gdr.StandardDateRangeKeys.LAST_BUSINESS_WEEK, d));
}
function testAllTime() {
var s = new gd(0000, 0, 1);
var e = new gd(9999, 11, 31);
assertStartEnd('allTime', s, e, gdr.allTime());
assertStartEnd('allTime by key', s, e,
gdr.standardDateRange(gdr.StandardDateRangeKeys.ALL_TIME));
}
function testIterator() {
var s = new gd(2008, 9, 1);
var e = new gd(2008, 9, 10);
var i = new gdr(s, e).iterator();
assertTrue('day 0', new gd(2008, 9, 1).equals(i.next()));
assertTrue('day 1', new gd(2008, 9, 2).equals(i.next()));
assertTrue('day 2', new gd(2008, 9, 3).equals(i.next()));
assertTrue('day 3', new gd(2008, 9, 4).equals(i.next()));
assertTrue('day 4', new gd(2008, 9, 5).equals(i.next()));
assertTrue('day 5', new gd(2008, 9, 6).equals(i.next()));
assertTrue('day 6', new gd(2008, 9, 7).equals(i.next()));
assertTrue('day 7', new gd(2008, 9, 8).equals(i.next()));
assertTrue('day 8', new gd(2008, 9, 9).equals(i.next()));
assertTrue('day 9', new gd(2008, 9, 10).equals(i.next()));
assertThrows('day 10', goog.bind(i.next, i));
}
function assertStartEnd(name, start, end, actual) {
assertTrue(
name + ' start should be ' + start + ' but was ' + actual.getStartDate(),
start.equals(actual.getStartDate()));
assertTrue(
name + ' end should be ' + end + ' but was ' + actual.getEndDate(),
end.equals(actual.getEndDate()));
}
</script>
</body>
</html>