# HG changeset patch # User Paul Boddie # Date 1513457417 -3600 # Node ID 4d0d5b25bbbd7d5cf8ce25d8dc5d0e278aeaf0d1 # Parent 462606ea577b6ac892243c9b63fc9d4b3a312133 Structured the tests for more convenient selection. Added another test case (test5). diff -r 462606ea577b -r 4d0d5b25bbbd tests/internal/qualifiers.py --- a/tests/internal/qualifiers.py Sat Dec 16 18:24:29 2017 +0100 +++ b/tests/internal/qualifiers.py Sat Dec 16 21:50:17 2017 +0100 @@ -20,6 +20,7 @@ """ from vRecurrence import * +import sys def show(l): for x in l: @@ -39,548 +40,620 @@ show(csel) return s -qualifiers = [ - ("YEARLY", {"interval" : 1}) - ] -dt = (1997, 11, 2) -s = select(dt, qualifiers) +def test1(): + qualifiers = [ + ("YEARLY", {"interval" : 1}) + ] + dt = (1997, 11, 2) + s = select(dt, qualifiers) -l = s.materialise(dt, (2003, 12, 24)) -print len(l) == 7, 7, len(l) -print l[0] == (1997, 11, 2), (1997, 11, 2), l[0] -print l[-1] == (2003, 11, 2), (2003, 11, 2), l[-1] -print + l = s.materialise(dt, (2003, 12, 24)) + print len(l) == 7, 7, len(l) + print l[0] == (1997, 11, 2), (1997, 11, 2), l[0] + print l[-1] == (2003, 11, 2), (2003, 11, 2), l[-1] + print + +def test2(): + qualifiers = [ + ("YEARLY", {"interval" : 2}), + ("BYMONTH", {"values" : [1]}), + ("BYDAY", {"values" : [(7, None)]}), + ("BYHOUR", {"values" : [8, 9]}), + ("BYMINUTE", {"values" : [30]}) + ] + dt = (1997, 1, 5, 8, 30, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("YEARLY", {"interval" : 2}), - ("BYMONTH", {"values" : [1]}), - ("BYDAY", {"values" : [(7, None)]}), - ("BYHOUR", {"values" : [8, 9]}), - ("BYMINUTE", {"values" : [30]}) - ] -dt = (1997, 1, 5, 8, 30, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (2003, 12, 24, 0, 0, 0)) + print len(l) == 34, 34, len(l) + print l[0] == (1997, 1, 5, 8, 30, 0), (1997, 1, 5, 8, 30, 0), l[0] + print l[-1] == (2003, 1, 26, 9, 30, 0), (2003, 1, 26, 9, 30, 0), l[-1] + print -l = s.materialise(dt, (2003, 12, 24, 0, 0, 0)) -print len(l) == 34, 34, len(l) -print l[0] == (1997, 1, 5, 8, 30, 0), (1997, 1, 5, 8, 30, 0), l[0] -print l[-1] == (2003, 1, 26, 9, 30, 0), (2003, 1, 26, 9, 30, 0), l[-1] -print +def test3(): + qualifiers = [ + ("DAILY", {"interval" : 1}), + ("COUNT", {"values" : [10]}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("DAILY", {"interval" : 1}), - ("COUNT", {"values" : [10]}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1997, 12, 24)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1997, 9, 11, 9, 0, 0), (1997, 9, 11, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1997, 12, 24)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1997, 9, 11, 9, 0, 0), (1997, 9, 11, 9, 0, 0), l[-1] -print +def test4(): + qualifiers = [ + ("DAILY", {"interval" : 1}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("DAILY", {"interval" : 1}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 113, 113, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 113, 113, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] -print +def test5(): + qualifiers = get_qualifiers(["FREQ=DAILY", "UNTIL=19971224T000000Z"]) # UNTIL not converted + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("DAILY", {"interval" : 2}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0), True) + print len(l) == 113, 113, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 57, 57, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] -print +def test6(): + qualifiers = [ + ("DAILY", {"interval" : 2}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("WEEKLY", {"interval" : 1}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 57, 57, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 17, 17, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] -print +def test7(): + qualifiers = [ + ("WEEKLY", {"interval" : 1}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("DAILY", {"interval" : 10}), - ("COUNT", {"values" : [5]}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 17, 17, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 5, 5, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1997, 10, 12, 9, 0, 0), (1997, 10, 12, 9, 0, 0), l[-1] -print +def test8(): + qualifiers = [ + ("DAILY", {"interval" : 10}), + ("COUNT", {"values" : [5]}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) + + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 5, 5, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1997, 10, 12, 9, 0, 0), (1997, 10, 12, 9, 0, 0), l[-1] + print -qualifiers = [ - ("YEARLY", {"interval" : 1}), - ("BYMONTH", {"values" : [1]}), - ("BYDAY", {"values" : [(1, None), (2, None), (3, None), (4, None), (5, None), (6, None), (7, None)]}) - ] -dt = (1998, 1, 1, 9, 0, 0) -s = select(dt, qualifiers) +def test9(): + qualifiers = [ + ("YEARLY", {"interval" : 1}), + ("BYMONTH", {"values" : [1]}), + ("BYDAY", {"values" : [(1, None), (2, None), (3, None), (4, None), (5, None), (6, None), (7, None)]}) + ] + dt = (1998, 1, 1, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (2000, 1, 31, 14, 0, 0)) -print len(l) == 93, 93, len(l) -print l[0] == (1998, 1, 1, 9, 0, 0), (1998, 1, 1, 9, 0, 0), l[0] -print l[-1] == (2000, 1, 31, 9, 0, 0), (2000, 1, 31, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (2000, 1, 31, 14, 0, 0)) + print len(l) == 93, 93, len(l) + print l[0] == (1998, 1, 1, 9, 0, 0), (1998, 1, 1, 9, 0, 0), l[0] + print l[-1] == (2000, 1, 31, 9, 0, 0), (2000, 1, 31, 9, 0, 0), l[-1] + print -qualifiers = [ - ("DAILY", {"interval" : 1}), - ("BYMONTH", {"values" : [1]}) - ] -dt = (1998, 1, 1, 9, 0, 0) -s = select(dt, qualifiers) +def test10(): + qualifiers = [ + ("DAILY", {"interval" : 1}), + ("BYMONTH", {"values" : [1]}) + ] + dt = (1998, 1, 1, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (2000, 1, 31, 14, 0, 0)) -print len(l) == 93, 93, len(l) -print l[0] == (1998, 1, 1, 9, 0, 0), (1998, 1, 1, 9, 0, 0), l[0] -print l[-1] == (2000, 1, 31, 9, 0, 0), (2000, 1, 31, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (2000, 1, 31, 14, 0, 0)) + print len(l) == 93, 93, len(l) + print l[0] == (1998, 1, 1, 9, 0, 0), (1998, 1, 1, 9, 0, 0), l[0] + print l[-1] == (2000, 1, 31, 9, 0, 0), (2000, 1, 31, 9, 0, 0), l[-1] + print -qualifiers = [ - ("WEEKLY", {"interval" : 1}), - ("COUNT", {"values" : [10]}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) +def test11(): + qualifiers = [ + ("WEEKLY", {"interval" : 1}), + ("COUNT", {"values" : [10]}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1997, 11, 4, 9, 0, 0), (1997, 11, 4, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1997, 11, 4, 9, 0, 0), (1997, 11, 4, 9, 0, 0), l[-1] + print -qualifiers = [ - ("WEEKLY", {"interval" : 1}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) +def test12(): + qualifiers = [ + ("WEEKLY", {"interval" : 1}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 17, 17, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 17, 17, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1997, 12, 23, 9, 0, 0), (1997, 12, 23, 9, 0, 0), l[-1] + print -qualifiers = [ - ("WEEKLY", {"interval" : 1}) - ] -dt = (1997, 9, 2) -s = select(dt, qualifiers) +def test13(): + qualifiers = [ + ("WEEKLY", {"interval" : 1}) + ] + dt = (1997, 9, 2) + s = select(dt, qualifiers) -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 17, 17, len(l) -print l[0] == (1997, 9, 2), (1997, 9, 2), l[0] -print l[-1] == (1997, 12, 23), (1997, 12, 23), l[-1] -print + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 17, 17, len(l) + print l[0] == (1997, 9, 2), (1997, 9, 2), l[0] + print l[-1] == (1997, 12, 23), (1997, 12, 23), l[-1] + print -qualifiers = [ - ("WEEKLY", {"interval" : 2}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) +def test14(): + qualifiers = [ + ("WEEKLY", {"interval" : 2}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1998, 2, 20, 0, 0, 0)) -print len(l) == 13, 13, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1998, 2, 17, 9, 0, 0), (1998, 2, 17, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1998, 2, 20, 0, 0, 0)) + print len(l) == 13, 13, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1998, 2, 17, 9, 0, 0), (1998, 2, 17, 9, 0, 0), l[-1] + print -qualifiers = [ - ("WEEKLY", {"interval" : 1}), - ("BYDAY", {"values" : [(2, None), (4, None)]}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) +def test15(): + qualifiers = [ + ("WEEKLY", {"interval" : 1}), + ("BYDAY", {"values" : [(2, None), (4, None)]}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1997, 10, 7, 9, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1997, 10, 2, 9, 0, 0), (1997, 10, 2, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1997, 10, 7, 9, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1997, 10, 2, 9, 0, 0), (1997, 10, 2, 9, 0, 0), l[-1] + print -qualifiers = [ - ("WEEKLY", {"interval" : 1}), - ("BYDAY", {"values" : [(2, None), (4, None)]}), - ("COUNT", {"values" : [10]}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) +def test16(): + qualifiers = [ + ("WEEKLY", {"interval" : 1}), + ("BYDAY", {"values" : [(2, None), (4, None)]}), + ("COUNT", {"values" : [10]}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1997, 10, 2, 9, 0, 0), (1997, 10, 2, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1997, 10, 2, 9, 0, 0), (1997, 10, 2, 9, 0, 0), l[-1] + print -qualifiers = [ - ("WEEKLY", {"interval" : 2}), - ("BYDAY", {"values" : [(1, None), (3, None), (5, None)]}) - ] -dt = (1997, 9, 1, 9, 0, 0) -s = select(dt, qualifiers) +def test17(): + qualifiers = [ + ("WEEKLY", {"interval" : 2}), + ("BYDAY", {"values" : [(1, None), (3, None), (5, None)]}) + ] + dt = (1997, 9, 1, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 25, 25, len(l) -print l[0] == (1997, 9, 1, 9, 0, 0), (1997, 9, 1, 9, 0, 0), l[0] -print l[-1] == (1997, 12, 22, 9, 0, 0), (1997, 12, 22, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 25, 25, len(l) + print l[0] == (1997, 9, 1, 9, 0, 0), (1997, 9, 1, 9, 0, 0), l[0] + print l[-1] == (1997, 12, 22, 9, 0, 0), (1997, 12, 22, 9, 0, 0), l[-1] + print -qualifiers = [ - ("WEEKLY", {"interval" : 2}), - ("BYDAY", {"values" : [(2, None), (4, None)]}), - ("COUNT", {"values" : [8]}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) +def test18(): + qualifiers = [ + ("WEEKLY", {"interval" : 2}), + ("BYDAY", {"values" : [(2, None), (4, None)]}), + ("COUNT", {"values" : [8]}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 8, 8, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1997, 10, 16, 9, 0, 0), (1997, 10, 16, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 8, 8, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1997, 10, 16, 9, 0, 0), (1997, 10, 16, 9, 0, 0), l[-1] + print -qualifiers = [ - ("MONTHLY", {"interval" : 1}), - ("BYDAY", {"values" : [(5, 1)]}), - ("COUNT", {"values" : [10]}) - ] -dt = (1997, 9, 5, 9, 0, 0) -s = select(dt, qualifiers) +def test19(): + qualifiers = [ + ("MONTHLY", {"interval" : 1}), + ("BYDAY", {"values" : [(5, 1)]}), + ("COUNT", {"values" : [10]}) + ] + dt = (1997, 9, 5, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 9, 5, 9, 0, 0), (1997, 9, 5, 9, 0, 0), l[0] -print l[-1] == (1998, 6, 5, 9, 0, 0), (1998, 6, 5, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 9, 5, 9, 0, 0), (1997, 9, 5, 9, 0, 0), l[0] + print l[-1] == (1998, 6, 5, 9, 0, 0), (1998, 6, 5, 9, 0, 0), l[-1] + print -qualifiers = [ - ("MONTHLY", {"interval" : 1}), - ("BYDAY", {"values" : [(5, 1)]}) - ] -dt = (1997, 9, 5, 9, 0, 0) -s = select(dt, qualifiers) +def test20(): + qualifiers = [ + ("MONTHLY", {"interval" : 1}), + ("BYDAY", {"values" : [(5, 1)]}) + ] + dt = (1997, 9, 5, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 4, 4, len(l) -print l[0] == (1997, 9, 5, 9, 0, 0), (1997, 9, 5, 9, 0, 0), l[0] -print l[-1] == (1997, 12, 5, 9, 0, 0), (1997, 12, 5, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 4, 4, len(l) + print l[0] == (1997, 9, 5, 9, 0, 0), (1997, 9, 5, 9, 0, 0), l[0] + print l[-1] == (1997, 12, 5, 9, 0, 0), (1997, 12, 5, 9, 0, 0), l[-1] + print + +def test21(): + qualifiers = [ + ("MONTHLY", {"interval" : 2}), + ("BYDAY", {"values" : [(7, 1), (7, -1)]}), + ("COUNT", {"values" : [10]}) + ] + dt = (1997, 9, 7, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("MONTHLY", {"interval" : 2}), - ("BYDAY", {"values" : [(7, 1), (7, -1)]}), - ("COUNT", {"values" : [10]}) - ] -dt = (1997, 9, 7, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 9, 7, 9, 0, 0), (1997, 9, 7, 9, 0, 0), l[0] + print l[-1] == (1998, 5, 31, 9, 0, 0), (1998, 5, 31, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 9, 7, 9, 0, 0), (1997, 9, 7, 9, 0, 0), l[0] -print l[-1] == (1998, 5, 31, 9, 0, 0), (1998, 5, 31, 9, 0, 0), l[-1] -print +def test22(): + qualifiers = [ + ("MONTHLY", {"interval" : 1}), + ("BYDAY", {"values" : [(1, -2)]}), + ("COUNT", {"values" : [6]}) + ] + dt = (1997, 9, 22, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("MONTHLY", {"interval" : 1}), - ("BYDAY", {"values" : [(1, -2)]}), - ("COUNT", {"values" : [6]}) - ] -dt = (1997, 9, 22, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) + print len(l) == 6, 6, len(l) + print l[0] == (1997, 9, 22, 9, 0, 0), (1997, 9, 22, 9, 0, 0), l[0] + print l[-1] == (1998, 2, 16, 9, 0, 0), (1998, 2, 16, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) -print len(l) == 6, 6, len(l) -print l[0] == (1997, 9, 22, 9, 0, 0), (1997, 9, 22, 9, 0, 0), l[0] -print l[-1] == (1998, 2, 16, 9, 0, 0), (1998, 2, 16, 9, 0, 0), l[-1] -print +def test23(): + qualifiers = [ + ("MONTHLY", {"interval" : 1}), + ("BYMONTHDAY", {"values" : [-3]}), + ("COUNT", {"values" : [6]}) + ] + dt = (1997, 9, 28, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("MONTHLY", {"interval" : 1}), - ("BYMONTHDAY", {"values" : [-3]}), - ("COUNT", {"values" : [6]}) - ] -dt = (1997, 9, 28, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) + print len(l) == 6, 6, len(l) + print l[0] == (1997, 9, 28, 9, 0, 0), (1997, 9, 28, 9, 0, 0), l[0] + print l[-1] == (1998, 2, 26, 9, 0, 0), (1998, 2, 26, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) -print len(l) == 6, 6, len(l) -print l[0] == (1997, 9, 28, 9, 0, 0), (1997, 9, 28, 9, 0, 0), l[0] -print l[-1] == (1998, 2, 26, 9, 0, 0), (1998, 2, 26, 9, 0, 0), l[-1] -print +def test24(): + qualifiers = [ + ("MONTHLY", {"interval" : 1}), + ("BYMONTHDAY", {"values" : [15, 2]}), # test ordering + ("COUNT", {"values" : [10]}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("MONTHLY", {"interval" : 1}), - ("BYMONTHDAY", {"values" : [15, 2]}), # test ordering - ("COUNT", {"values" : [10]}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1998, 1, 15, 9, 0, 0), (1998, 1, 15, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1998, 1, 15, 9, 0, 0), (1998, 1, 15, 9, 0, 0), l[-1] -print +def test25(): + qualifiers = [ + ("MONTHLY", {"interval" : 1}), + ("BYMONTHDAY", {"values" : [1, -1]}), + ("COUNT", {"values" : [10]}) + ] + dt = (1997, 9, 30, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("MONTHLY", {"interval" : 1}), - ("BYMONTHDAY", {"values" : [1, -1]}), - ("COUNT", {"values" : [10]}) - ] -dt = (1997, 9, 30, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 9, 30, 9, 0, 0), (1997, 9, 30, 9, 0, 0), l[0] + print l[-1] == (1998, 2, 1, 9, 0, 0), (1998, 2, 1, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1998, 12, 24, 0, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 9, 30, 9, 0, 0), (1997, 9, 30, 9, 0, 0), l[0] -print l[-1] == (1998, 2, 1, 9, 0, 0), (1998, 2, 1, 9, 0, 0), l[-1] -print +def test26(): + qualifiers = [ + ("MONTHLY", {"interval" : 18}), + ("BYMONTHDAY", {"values" : [10, 11, 12, 13, 14, 15]}), + ("COUNT", {"values" : [10]}) + ] + dt = (1997, 9, 10, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("MONTHLY", {"interval" : 18}), - ("BYMONTHDAY", {"values" : [10, 11, 12, 13, 14, 15]}), - ("COUNT", {"values" : [10]}) - ] -dt = (1997, 9, 10, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 9, 10, 9, 0, 0), (1997, 9, 10, 9, 0, 0), l[0] + print l[-1] == (1999, 3, 13, 9, 0, 0), (1999, 3, 13, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 9, 10, 9, 0, 0), (1997, 9, 10, 9, 0, 0), l[0] -print l[-1] == (1999, 3, 13, 9, 0, 0), (1999, 3, 13, 9, 0, 0), l[-1] -print +def test27(): + qualifiers = [ + ("MONTHLY", {"interval" : 2}), + ("BYDAY", {"values" : [(2, None)]}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("MONTHLY", {"interval" : 2}), - ("BYDAY", {"values" : [(2, None)]}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1998, 4, 1, 0, 0, 0)) + print len(l) == 18, 18, len(l) + print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] + print l[-1] == (1998, 3, 31, 9, 0, 0), (1998, 3, 31, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1998, 4, 1, 0, 0, 0)) -print len(l) == 18, 18, len(l) -print l[0] == (1997, 9, 2, 9, 0, 0), (1997, 9, 2, 9, 0, 0), l[0] -print l[-1] == (1998, 3, 31, 9, 0, 0), (1998, 3, 31, 9, 0, 0), l[-1] -print +def test28(): + qualifiers = [ + ("YEARLY", {"interval" : 1}), + ("BYMONTH", {"values" : [6, 7]}), + ("COUNT", {"values" : [10]}) + ] + dt = (1997, 6, 10, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("YEARLY", {"interval" : 1}), - ("BYMONTH", {"values" : [6, 7]}), - ("COUNT", {"values" : [10]}) - ] -dt = (1997, 6, 10, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (2001, 12, 24, 0, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 6, 10, 9, 0, 0), (1997, 6, 10, 9, 0, 0), l[0] + print l[-1] == (2001, 7, 10, 9, 0, 0), (2001, 7, 10, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (2001, 12, 24, 0, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 6, 10, 9, 0, 0), (1997, 6, 10, 9, 0, 0), l[0] -print l[-1] == (2001, 7, 10, 9, 0, 0), (2001, 7, 10, 9, 0, 0), l[-1] -print +def test29(): + qualifiers = [ + ("YEARLY", {"interval" : 2}), + ("BYMONTH", {"values" : [1, 2, 3]}), + ("COUNT", {"values" : [10]}) + ] + dt = (1997, 3, 10, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("YEARLY", {"interval" : 2}), - ("BYMONTH", {"values" : [1, 2, 3]}), - ("COUNT", {"values" : [10]}) - ] -dt = (1997, 3, 10, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (2003, 12, 24, 0, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 3, 10, 9, 0, 0), (1997, 3, 10, 9, 0, 0), l[0] + print l[-1] == (2003, 3, 10, 9, 0, 0), (2003, 3, 10, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (2003, 12, 24, 0, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 3, 10, 9, 0, 0), (1997, 3, 10, 9, 0, 0), l[0] -print l[-1] == (2003, 3, 10, 9, 0, 0), (2003, 3, 10, 9, 0, 0), l[-1] -print +def test30(): + qualifiers = [ + ("YEARLY", {"interval" : 3}), + ("BYYEARDAY", {"values" : [1, 100, 200]}), + ("COUNT", {"values" : [10]}) + ] + dt = (1997, 1, 1, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("YEARLY", {"interval" : 3}), - ("BYYEARDAY", {"values" : [1, 100, 200]}), - ("COUNT", {"values" : [10]}) - ] -dt = (1997, 1, 1, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (2006, 2, 1, 0, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 1, 1, 9, 0, 0), (1997, 1, 1, 9, 0, 0), l[0] + print l[-1] == (2006, 1, 1, 9, 0, 0), (2006, 1, 1, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (2006, 2, 1, 0, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 1, 1, 9, 0, 0), (1997, 1, 1, 9, 0, 0), l[0] -print l[-1] == (2006, 1, 1, 9, 0, 0), (2006, 1, 1, 9, 0, 0), l[-1] -print +def test31(): + qualifiers = [ + ("YEARLY", {"interval" : 1}), + ("BYDAY", {"values" : [(1, 20)]}) + ] + dt = (1997, 5, 19, 9, 0, 0) + s = select(dt, qualifiers) -qualifiers = [ - ("YEARLY", {"interval" : 1}), - ("BYDAY", {"values" : [(1, 20)]}) - ] -dt = (1997, 5, 19, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) + print len(l) == 3, 3, len(l) + print l[0] == (1997, 5, 19, 9, 0, 0), (1997, 5, 19, 9, 0, 0), l[0] + print l[-1] == (1999, 5, 17, 9, 0, 0), (1999, 5, 17, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) -print len(l) == 3, 3, len(l) -print l[0] == (1997, 5, 19, 9, 0, 0), (1997, 5, 19, 9, 0, 0), l[0] -print l[-1] == (1999, 5, 17, 9, 0, 0), (1999, 5, 17, 9, 0, 0), l[-1] -print +def test32(): + qualifiers = [ + ("YEARLY", {"interval" : 1}), + ("BYWEEKNO", {"values" : [20]}), + ("BYDAY", {"values" : [(1, None)]}) + ] + dt = (1997, 5, 12, 9, 0, 0) + s = select(dt, qualifiers) """ -qualifiers = [ - ("YEARLY", {"interval" : 1}), - ("BYWEEKNO", {"values" : [20]}), - ("BYDAY", {"values" : [(1, None)]}) - ] -dt = (1997, 5, 12, 9, 0, 0) -s = select(dt, qualifiers) - -l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) -print len(l) == 3, 3, len(l) -print l[0] == (1997, 5, 12, 9, 0, 0), (1997, 5, 12, 9, 0, 0), l[0] -print l[-1] == (1999, 5, 17, 9, 0, 0), (1999, 5, 17, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) + print len(l) == 3, 3, len(l) + print l[0] == (1997, 5, 12, 9, 0, 0), (1997, 5, 12, 9, 0, 0), l[0] + print l[-1] == (1999, 5, 17, 9, 0, 0), (1999, 5, 17, 9, 0, 0), l[-1] + print """ -qualifiers = [ - ("YEARLY", {"interval" : 1}), - ("BYMONTH", {"values" : [3]}), - ("BYDAY", {"values" : [(4, None)]}) - ] -dt = (1997, 3, 13, 9, 0, 0) -s = select(dt, qualifiers) +def test33(): + qualifiers = [ + ("YEARLY", {"interval" : 1}), + ("BYMONTH", {"values" : [3]}), + ("BYDAY", {"values" : [(4, None)]}) + ] + dt = (1997, 3, 13, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) -print len(l) == 11, 11, len(l) -print l[0] == (1997, 3, 13, 9, 0, 0), (1997, 3, 13, 9, 0, 0), l[0] -print l[-1] == (1999, 3, 25, 9, 0, 0), (1999, 3, 25, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) + print len(l) == 11, 11, len(l) + print l[0] == (1997, 3, 13, 9, 0, 0), (1997, 3, 13, 9, 0, 0), l[0] + print l[-1] == (1999, 3, 25, 9, 0, 0), (1999, 3, 25, 9, 0, 0), l[-1] + print -qualifiers = [ - ("YEARLY", {"interval" : 1}), - ("BYMONTH", {"values" : [6, 7, 8]}), - ("BYDAY", {"values" : [(4, None)]}) - ] -dt = (1997, 6, 5, 9, 0, 0) -s = select(dt, qualifiers) +def test34(): + qualifiers = [ + ("YEARLY", {"interval" : 1}), + ("BYMONTH", {"values" : [6, 7, 8]}), + ("BYDAY", {"values" : [(4, None)]}) + ] + dt = (1997, 6, 5, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) -print len(l) == 39, 39, len(l) -print l[0] == (1997, 6, 5, 9, 0, 0), (1997, 6, 5, 9, 0, 0), l[0] -print l[-1] == (1999, 8, 26, 9, 0, 0), (1999, 8, 26, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1999, 12, 24, 0, 0, 0)) + print len(l) == 39, 39, len(l) + print l[0] == (1997, 6, 5, 9, 0, 0), (1997, 6, 5, 9, 0, 0), l[0] + print l[-1] == (1999, 8, 26, 9, 0, 0), (1999, 8, 26, 9, 0, 0), l[-1] + print -qualifiers = [ - ("MONTHLY", {"interval" : 1}), - ("BYMONTHDAY", {"values" : [13]}), - ("BYDAY", {"values" : [(5, None)]}) - ] -dt = (1997, 9, 2, 9, 0, 0) -s = select(dt, qualifiers) +def test35(): + qualifiers = [ + ("MONTHLY", {"interval" : 1}), + ("BYMONTHDAY", {"values" : [13]}), + ("BYDAY", {"values" : [(5, None)]}) + ] + dt = (1997, 9, 2, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (2000, 12, 24, 0, 0, 0)) -print len(l) == 6, 6, len(l) -print l[1] == (1998, 2, 13, 9, 0, 0), (1998, 2, 13, 9, 0, 0), l[1] -print l[-1] == (2000, 10, 13, 9, 0, 0), (2000, 10, 13, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (2000, 12, 24, 0, 0, 0)) + print len(l) == 6, 6, len(l) + print l[1] == (1998, 2, 13, 9, 0, 0), (1998, 2, 13, 9, 0, 0), l[1] + print l[-1] == (2000, 10, 13, 9, 0, 0), (2000, 10, 13, 9, 0, 0), l[-1] + print -qualifiers = [ - ("MONTHLY", {"interval" : 1}), - ("BYMONTHDAY", {"values" : [7, 8, 9, 10, 11, 12, 13]}), - ("BYDAY", {"values" : [(6, None)]}) - ] -dt = (1997, 9, 13, 9, 0, 0) -s = select(dt, qualifiers) +def test36(): + qualifiers = [ + ("MONTHLY", {"interval" : 1}), + ("BYMONTHDAY", {"values" : [7, 8, 9, 10, 11, 12, 13]}), + ("BYDAY", {"values" : [(6, None)]}) + ] + dt = (1997, 9, 13, 9, 0, 0) + s = select(dt, qualifiers) + + l = s.materialise(dt, (1998, 6, 30, 0, 0, 0)) + print len(l) == 10, 10, len(l) + print l[0] == (1997, 9, 13, 9, 0, 0), (1997, 9, 13, 9, 0, 0), l[0] + print l[-1] == (1998, 6, 13, 9, 0, 0), (1998, 6, 13, 9, 0, 0), l[-1] + print -l = s.materialise(dt, (1998, 6, 30, 0, 0, 0)) -print len(l) == 10, 10, len(l) -print l[0] == (1997, 9, 13, 9, 0, 0), (1997, 9, 13, 9, 0, 0), l[0] -print l[-1] == (1998, 6, 13, 9, 0, 0), (1998, 6, 13, 9, 0, 0), l[-1] -print +def test37(): + qualifiers = [ + ("YEARLY", {"interval" : 4}), + ("BYMONTH", {"values" : [11]}), + ("BYMONTHDAY", {"values" : [2, 3, 4, 5, 6, 7, 8]}), + ("BYDAY", {"values" : [(2, None)]}) + ] + dt = (1996, 11, 5, 9, 0, 0) + s = select(dt, qualifiers) + + l = s.materialise(dt, (2004, 12, 24, 0, 0, 0)) + print len(l) == 3, 3, len(l) + print l[0] == (1996, 11, 5, 9, 0, 0), (1996, 11, 5, 9, 0, 0), l[0] + print l[-1] == (2004, 11, 2, 9, 0, 0), (2004, 11, 2, 9, 0, 0), l[-1] + print -qualifiers = [ - ("YEARLY", {"interval" : 4}), - ("BYMONTH", {"values" : [11]}), - ("BYMONTHDAY", {"values" : [2, 3, 4, 5, 6, 7, 8]}), - ("BYDAY", {"values" : [(2, None)]}) - ] -dt = (1996, 11, 5, 9, 0, 0) -s = select(dt, qualifiers) +def test38(): + qualifiers = [ + ("MONTHLY", {"interval" : 1}), + ("BYDAY", {"values" : [(2, None), (3, None), (4, None)]}), + ("BYSETPOS", {"values" : [3]}), + ("COUNT", {"values" : [3]}) + ] + dt = (1997, 9, 4, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (2004, 12, 24, 0, 0, 0)) -print len(l) == 3, 3, len(l) -print l[0] == (1996, 11, 5, 9, 0, 0), (1996, 11, 5, 9, 0, 0), l[0] -print l[-1] == (2004, 11, 2, 9, 0, 0), (2004, 11, 2, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) + print len(l) == 3, 3, len(l) + print l[0] == (1997, 9, 4, 9, 0, 0), (1997, 9, 4, 9, 0, 0), l[0] + print l[-1] == (1997, 11, 6, 9, 0, 0), (1997, 11, 6, 9, 0, 0), l[-1] + print -qualifiers = [ - ("MONTHLY", {"interval" : 1}), - ("BYDAY", {"values" : [(2, None), (3, None), (4, None)]}), - ("BYSETPOS", {"values" : [3]}), - ("COUNT", {"values" : [3]}) - ] -dt = (1997, 9, 4, 9, 0, 0) -s = select(dt, qualifiers) +def test39(): + qualifiers = [ + ("MONTHLY", {"interval" : 1}), + ("BYDAY", {"values" : [(1, None), (2, None), (3, None), (4, None), (5, None)]}), + ("BYSETPOS", {"values" : [-2]}) + ] + dt = (1997, 9, 29, 9, 0, 0) + s = select(dt, qualifiers) -l = s.materialise(dt, (1997, 12, 24, 0, 0, 0)) -print len(l) == 3, 3, len(l) -print l[0] == (1997, 9, 4, 9, 0, 0), (1997, 9, 4, 9, 0, 0), l[0] -print l[-1] == (1997, 11, 6, 9, 0, 0), (1997, 11, 6, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (1998, 4, 1, 0, 0, 0)) + print len(l) == 7, 7, len(l) + print l[0] == (1997, 9, 29, 9, 0, 0), (1997, 9, 29, 9, 0, 0), l[0] + print l[-1] == (1998, 3, 30, 9, 0, 0), (1998, 3, 30, 9, 0, 0), l[-1] + print -l2 = l +def test40(): + qualifiers = get_qualifiers(["BYMONTHDAY=5", "FREQ=HOURLY", "INTERVAL=12"]) + dt = (2017, 6, 13) + s = select(dt, qualifiers) -qualifiers = [ - ("MONTHLY", {"interval" : 1}), - ("BYDAY", {"values" : [(1, None), (2, None), (3, None), (4, None), (5, None)]}), - ("BYSETPOS", {"values" : [-2]}) - ] -dt = (1997, 9, 29, 9, 0, 0) -s = select(dt, qualifiers) + l = s.materialise(dt, (2019, 1, 1)) + print len(l) == 37, 37, len(l) + print l[1] == (2017, 7, 5, 0), (2017, 7, 5, 0), l[1] + print l[-1] == (2018, 12, 5, 12), (2018, 12, 5, 12), l[-1] + print + +def test41(): + qualifiers = get_qualifiers(["FREQ=DAILY", "BYMONTH=1"]) + dt = (2017, 6, 13) + s = select(dt, qualifiers) -l = s.materialise(dt, (1998, 4, 1, 0, 0, 0)) -print len(l) == 7, 7, len(l) -print l[0] == (1997, 9, 29, 9, 0, 0), (1997, 9, 29, 9, 0, 0), l[0] -print l[-1] == (1998, 3, 30, 9, 0, 0), (1998, 3, 30, 9, 0, 0), l[-1] -print + l = s.materialise(dt, (2019, 1, 1)) + print len(l) == 32, 32, len(l) + print l[1] == (2018, 1, 1), (2018, 1, 1), l[1] + print l[-1] == (2018, 1, 31), (2018, 1, 31), l[-1] + print -qualifiers = get_qualifiers(["BYMONTHDAY=5", "FREQ=HOURLY", "INTERVAL=12"]) -dt = (2017, 6, 13) -s = select(dt, qualifiers) +def test42(): + qualifiers = get_qualifiers(["FREQ=MONTHLY", "BYDAY=WE,1FR,2MO,2FR"]) + dt = (2017, 10, 15) + s = select(dt, qualifiers) -l = s.materialise(dt, (2019, 1, 1)) -print len(l) == 37, 37, len(l) -print l[1] == (2017, 7, 5, 0), (2017, 7, 5, 0), l[1] -print l[-1] == (2018, 12, 5, 12), (2018, 12, 5, 12), l[-1] + l = s.materialise(dt, (2018, 1, 1)) + print len(l) == 18, 18, len(l) + print l[1] == (2017, 10, 18), (2017, 10, 18), l[1] + print l[-1] == (2017, 12, 27), (2017, 12, 27), l[-1] + print -qualifiers = get_qualifiers(["FREQ=DAILY", "BYMONTH=1"]) -dt = (2017, 6, 13) -s = select(dt, qualifiers) +test0 = lambda: 0 # started at 1 above -l = s.materialise(dt, (2019, 1, 1)) -print len(l) == 32, 32, len(l) -print l[1] == (2018, 1, 1), (2018, 1, 1), l[1] -print l[-1] == (2018, 1, 31), (2018, 1, 31), l[-1] +tests = [ + test0, test1, test2, test3, test4, test5, test6, test7, test8, test9, + test10, test11, test12, test13, test14, test15, test16, test17, test18, test19, + test20, test21, test22, test23, test24, test25, test26, test27, test28, test29, + test30, test31, test32, test33, test34, test35, test36, test37, test38, test39, + test40, test41, test42 +] -qualifiers = get_qualifiers(["FREQ=MONTHLY", "BYDAY=WE,1FR,2MO,2FR"]) -dt = (2017, 10, 15) -s = select(dt, qualifiers) - -l = s.materialise(dt, (2018, 1, 1)) -print len(l) == 18, 18, len(l) -print l[1] == (2017, 10, 18), (2017, 10, 18), l[1] -print l[-1] == (2017, 12, 27), (2017, 12, 27), l[-1] +if __name__ == "__main__": + args = sys.argv[1:] + if args: + for n in map(int, args): + tests[n]() + else: + for test in tests: + test() # vim: tabstop=4 expandtab shiftwidth=4