UNPKG

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
<!DOCTYPE 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>