2007-11-25 Douglas S.Blank <dblank@cs.brynmawr.edu>
* src/gen/lib/test/date_test.py: turned each test into a case svn: r9400
This commit is contained in:
parent
8212127ecf
commit
36c73d38b3
@ -1,3 +1,6 @@
|
||||
2007-11-25 Douglas S.Blank <dblank@cs.brynmawr.edu>
|
||||
* src/gen/lib/test/date_test.py: turned each test into a case
|
||||
|
||||
2007-11-24 Benny Malengier <benny.malengier@gramps-project.org>
|
||||
* src/GrampsWidgets.py: ObjEntry, PlaceEntry and NoteEntry inherit from it.
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
""" Unittest for testing dates """
|
||||
|
||||
__author__ = "Douglas S. Blank <dblank@cs.brynmawr.edu>"
|
||||
__author__ = "Douglas S. Blank <dblank@cs.brynmawr.edu>"
|
||||
__revision__ = "$Revision: $"
|
||||
|
||||
import unittest
|
||||
@ -32,8 +32,12 @@ test_util.path_append_parent()
|
||||
import date
|
||||
from DateHandler import parser as df
|
||||
|
||||
class Test_top(unittest.TestCase):
|
||||
def helper_match(self, d1, d2, expected1, expected2 = None):
|
||||
class Tester(unittest.TestCase):
|
||||
def __init__(self, method_name, part, testdata):
|
||||
self.__dict__[method_name + ("-%d" % part)] = lambda: self.helper(part, *testdata)
|
||||
unittest.TestCase.__init__(self, method_name + ("-%d" % part))
|
||||
|
||||
def helper(self, part, d1, d2, expected1, expected2 = None):
|
||||
"""
|
||||
Tests two GRAMPS dates to see if they match.
|
||||
"""
|
||||
@ -47,81 +51,83 @@ class Test_top(unittest.TestCase):
|
||||
pos2 = 0
|
||||
date1 = df.parse(d1)
|
||||
date2 = df.parse(d2)
|
||||
val = date2.match(date1)
|
||||
self.assertTrue(val == expected1, "'%s' and '%s' did not match" % (d1, d2))
|
||||
val = date1.match(date2)
|
||||
self.assertTrue(val == expected2, "'%s' and '%s' did not match" % (d2, d1))
|
||||
if part == 1:
|
||||
val = date2.match(date1)
|
||||
self.assertTrue(val == expected1, "'%s' and '%s' did not match" % (d1, d2))
|
||||
else:
|
||||
val = date1.match(date2)
|
||||
self.assertTrue(val == expected2, "'%s' and '%s' did not match" % (d2, d1))
|
||||
|
||||
def test_function_match(self):
|
||||
# most are symmetric: #date1, date2, does d1 match d2? does d2 match d1?
|
||||
tests = [("before 1960", "before 1961", True),
|
||||
("before 1960", "before 1960", True),
|
||||
("before 1961", "before 1961", True),
|
||||
("jan 1, 1960", "jan 1, 1960", True),
|
||||
("dec 31, 1959", "dec 31, 1959", True),
|
||||
("before 1960", "jan 1, 1960", False),
|
||||
("before 1960", "dec 31, 1959", True),
|
||||
("abt 1960", "1960", True),
|
||||
("abt 1960", "before 1960", True),
|
||||
("1960", "1960", True),
|
||||
("1960", "after 1960", False),
|
||||
("1960", "before 1960", False),
|
||||
("abt 1960", "abt 1960", True),
|
||||
("before 1960", "after 1960", False),
|
||||
("after jan 1, 1900", "jan 2, 1900", True),
|
||||
("abt jan 1, 1900", "jan 1, 1900", True),
|
||||
("from 1950 to 1955", "1950", True),
|
||||
("from 1950 to 1955", "1951", True),
|
||||
("from 1950 to 1955", "1952", True),
|
||||
("from 1950 to 1955", "1953", True),
|
||||
("from 1950 to 1955", "1954", True),
|
||||
("from 1950 to 1955", "1955", True),
|
||||
("from 1950 to 1955", "1956", False),
|
||||
("from 1950 to 1955", "dec 31, 1955", True),
|
||||
("from 1950 to 1955", "jan 1, 1955", True),
|
||||
("from 1950 to 1955", "dec 31, 1949", False),
|
||||
("from 1950 to 1955", "jan 1, 1956", False),
|
||||
("after jul 4, 1980", "jul 4, 1980", False),
|
||||
("after jul 4, 1980", "before jul 4, 1980", False),
|
||||
("after jul 4, 1980", "about jul 4, 1980", True),
|
||||
("after jul 4, 1980", "after jul 4, 1980", True),
|
||||
("between 1750 and 1752", "1750", True),
|
||||
("between 1750 and 1752", "about 1750", True),
|
||||
("between 1750 and 1752", "between 1749 and 1750", True),
|
||||
("between 1750 and 1752", "1749", False),
|
||||
("invalid date", "invalid date", True),
|
||||
("invalid date", "invalid", False, True),
|
||||
("invalid date 1", "invalid date 2", False),
|
||||
("abt jan 1, 2000", "dec 31, 1999", True),
|
||||
("jan 1, 2000", "dec 31, 1999", False),
|
||||
("aft jan 1, 2000", "dec 31, 1999", False),
|
||||
("after jan 1, 2000", "after dec 31, 1999", True),
|
||||
("after dec 31, 1999", "after jan 1, 2000", True),
|
||||
("1 31, 2000", "jan 1, 2000", False),
|
||||
("dec 31, 1999", "jan 1, 2000", False),
|
||||
("jan 1, 2000", "before dec 31, 1999", False),
|
||||
("aft jan 1, 2000", "before dec 31, 1999", False),
|
||||
("before jan 1, 2000", "after dec 31, 1999", False),
|
||||
("jan 1, 2000/1", "jan 1, 2000", False),
|
||||
("jan 1, 2000/1", "jan 1, 2001", True),
|
||||
("about 1984", "about 2005", False),
|
||||
("about 1990", "about 2005", True),
|
||||
("about 2007", "about 2006", True),
|
||||
("about 1995", "after 2000", True),
|
||||
("about 1995", "after 2005", False),
|
||||
("about 2007", "about 2003", True),
|
||||
("before 2007", "2000", True),
|
||||
# different calendar, same date
|
||||
("Aug 3, 1982", "14 Thermidor 190 (French Republican)", True),
|
||||
("after Aug 3, 1982",
|
||||
"before 14 Thermidor 190 (French Republican)", False),
|
||||
("ab cd", "54 ab cd 2000", True, False),
|
||||
]
|
||||
|
||||
for testdata in tests:
|
||||
self.helper_match(*testdata)
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
|
||||
# most are symmetric: #date1, date2, does d1 match d2? does d2 match d1?
|
||||
tests = [("before 1960", "before 1961", True),
|
||||
("before 1960", "before 1960", True),
|
||||
("before 1961", "before 1961", True),
|
||||
("jan 1, 1960", "jan 1, 1960", True),
|
||||
("dec 31, 1959", "dec 31, 1959", True),
|
||||
("before 1960", "jan 1, 1960", False),
|
||||
("before 1960", "dec 31, 1959", True),
|
||||
("abt 1960", "1960", True),
|
||||
("abt 1960", "before 1960", True),
|
||||
("1960", "1960", True),
|
||||
("1960", "after 1960", False),
|
||||
("1960", "before 1960", False),
|
||||
("abt 1960", "abt 1960", True),
|
||||
("before 1960", "after 1960", False),
|
||||
("after jan 1, 1900", "jan 2, 1900", True),
|
||||
("abt jan 1, 1900", "jan 1, 1900", True),
|
||||
("from 1950 to 1955", "1950", True),
|
||||
("from 1950 to 1955", "1951", True),
|
||||
("from 1950 to 1955", "1952", True),
|
||||
("from 1950 to 1955", "1953", True),
|
||||
("from 1950 to 1955", "1954", True),
|
||||
("from 1950 to 1955", "1955", True),
|
||||
("from 1950 to 1955", "1956", False),
|
||||
("from 1950 to 1955", "dec 31, 1955", True),
|
||||
("from 1950 to 1955", "jan 1, 1955", True),
|
||||
("from 1950 to 1955", "dec 31, 1949", False),
|
||||
("from 1950 to 1955", "jan 1, 1956", False),
|
||||
("after jul 4, 1980", "jul 4, 1980", False),
|
||||
("after jul 4, 1980", "before jul 4, 1980", False),
|
||||
("after jul 4, 1980", "about jul 4, 1980", True),
|
||||
("after jul 4, 1980", "after jul 4, 1980", True),
|
||||
("between 1750 and 1752", "1750", True),
|
||||
("between 1750 and 1752", "about 1750", True),
|
||||
("between 1750 and 1752", "between 1749 and 1750", True),
|
||||
("between 1750 and 1752", "1749", False),
|
||||
("invalid date", "invalid date", True),
|
||||
("invalid date", "invalid", False, True),
|
||||
("invalid date 1", "invalid date 2", False),
|
||||
("abt jan 1, 2000", "dec 31, 1999", True),
|
||||
("jan 1, 2000", "dec 31, 1999", False),
|
||||
("aft jan 1, 2000", "dec 31, 1999", False),
|
||||
("after jan 1, 2000", "after dec 31, 1999", True),
|
||||
("after dec 31, 1999", "after jan 1, 2000", True),
|
||||
("1 31, 2000", "jan 1, 2000", False),
|
||||
("dec 31, 1999", "jan 1, 2000", False),
|
||||
("jan 1, 2000", "before dec 31, 1999", False),
|
||||
("aft jan 1, 2000", "before dec 31, 1999", False),
|
||||
("before jan 1, 2000", "after dec 31, 1999", False),
|
||||
("jan 1, 2000/1", "jan 1, 2000", False),
|
||||
("jan 1, 2000/1", "jan 1, 2001", True),
|
||||
("about 1984", "about 2005", False),
|
||||
("about 1990", "about 2005", True),
|
||||
("about 2007", "about 2006", True),
|
||||
("about 1995", "after 2000", True),
|
||||
("about 1995", "after 2005", False),
|
||||
("about 2007", "about 2003", True),
|
||||
("before 2007", "2000", True),
|
||||
# different calendar, same date
|
||||
("Aug 3, 1982", "14 Thermidor 190 (French Republican)", True),
|
||||
("after Aug 3, 1982",
|
||||
"before 14 Thermidor 190 (French Republican)", False),
|
||||
("ab cd", "54 ab cd 2000", True, False),
|
||||
]
|
||||
suite = unittest.TestSuite()
|
||||
count = 1
|
||||
for test in tests:
|
||||
suite.addTest(Tester('test_match%04d' % count, 1, test))
|
||||
suite.addTest(Tester('test_match%04d' % count, 2, test))
|
||||
count += 1
|
||||
unittest.TextTestRunner().run(suite)
|
||||
|
Loading…
Reference in New Issue
Block a user