diff --git a/src/diana/tests/testSgfParser.py b/src/diana/tests/testSgfParser.py --- a/src/diana/tests/testSgfParser.py +++ b/src/diana/tests/testSgfParser.py @@ -6,88 +6,88 @@ import os from diana.sgfParser import strRowCol from diana.sgfParser.collection import Collection -from diana.sgfParser.property import Property,DateProperty,DateException -from diana.sgfParser.propValues import text,compose +from diana.sgfParser.property import Property, DateProperty, DateException +from diana.sgfParser.propValues import text, compose -dataDir=os.path.join(os.path.dirname(__file__), "data") +dataDir = os.path.join(os.path.dirname(__file__), "data") class TestUtils(TestCase): def testTextPos(self): - s="abc\ndef\rgh\r\nij\n\rklmn" - rc=[ - [1,2,3,4], - [1,2,3,4], - [1,2,3,4], - [1,2,3], [1], # don't care about LFCR, we unicode now - [1,2,3,4] + s = "abc\ndef\rgh\r\nij\n\rklmn" + rc = [ + [1, 2, 3, 4], + [1, 2, 3, 4], + [1, 2, 3, 4], + [1, 2, 3], [1], # don't care about LFCR, we unicode now + [1, 2, 3, 4] ] - res=chain((r+1,c) for (r,row) in enumerate(rc) for c in row) - for (i,(r,c)) in zip(range(len(s)+1), res): + res = chain((r+1, c) for (r, row) in enumerate(rc) for c in row) + for (i, (r, c)) in zip(range(len(s)+1), res): self.assertEqual(strRowCol(s, i), (r, c)) class TestProperty(TestCase): def testName(self): with self.assertRaises(AssertionError): - Property.create("[99]",0) + Property.create("[99]", 0) with self.assertRaises(AssertionError): - Property.create("99[99]",0) + Property.create("99[99]", 0) - i,prop=Property.create("MN[99]",0) - self.assertNotEqual((i,prop), (0,None)) - self.assertEqual((i,prop.name), (6,"MN")) + (i, prop) = Property.create("MN[99]", 0) + self.assertNotEqual((i, prop), (0, None)) + self.assertEqual((i, prop.name), (6, "MN")) def testText(self): - s=r"""[abc\ + s = r"""[abc\ def ghi]""" - self.assertEqual(text()(s,1)[1], "abcdef ghi") - self.assertEqual(text(False)(s,1)[1], "abcdef\nghi") + self.assertEqual(text()(s, 1)[1], "abcdef ghi") + self.assertEqual(text(False)(s, 1)[1], "abcdef\nghi") - s="""[m\\no\\\tpqr\\]\\\\]""" - self.assertEqual(text()(s,1)[1], "mno pqr]\\") - self.assertEqual(text(False)(s,1)[1], "mno pqr]\\") + s = """[m\\no\\\tpqr\\]\\\\]""" + self.assertEqual(text()(s, 1)[1], "mno pqr]\\") + self.assertEqual(text(False)(s, 1)[1], "mno pqr]\\") - s="""[abc:def]""" - parsed=compose(text(composed=True),text(composed=True))(s,1) + s = """[abc:def]""" + parsed = compose(text(composed=True), text(composed=True))(s, 1) self.assertEqual(str(parsed[1]), "abc:def") class TestDateProperty(TestCase): def testSingle(self): - self.assertEqual(DateProperty.parseSingle("2019","Y")[1], date(2019,1,1)) - self.assertEqual(DateProperty.parseSingle("2019-06","YM")[1], date(2019,6,1)) - self.assertEqual(DateProperty.parseSingle("2019-06-22","YMD")[1], date(2019,6,22)) - d=date(2019,6,21) - self.assertEqual(DateProperty.parseSingle("22","D",d)[1], date(2019,6,22)) - self.assertEqual(DateProperty.parseSingle("07-22","MD",d)[1], date(2019,7,22)) - self.assertEqual(DateProperty.parseSingle("2020-07-22","YMD",d)[1], date(2020,7,22)) + self.assertEqual(DateProperty.parseSingle("2019", "Y")[1], date(2019, 1, 1)) + self.assertEqual(DateProperty.parseSingle("2019-06", "YM")[1], date(2019, 6, 1)) + self.assertEqual(DateProperty.parseSingle("2019-06-22", "YMD")[1], date(2019, 6, 22)) + d = date(2019, 6, 21) + self.assertEqual(DateProperty.parseSingle("22", "D", d)[1], date(2019, 6, 22)) + self.assertEqual(DateProperty.parseSingle("07-22", "MD", d)[1], date(2019, 7, 22)) + self.assertEqual(DateProperty.parseSingle("2020-07-22", "YMD", d)[1], date(2020, 7, 22)) with self.assertRaises(ValueError): - DateProperty.parseSingle("2019-31","YMD") + DateProperty.parseSingle("2019-31", "YMD") def testParse(self): - self.assertEqual(DateProperty("1996-05,06").value, [date(1996,5,1),date(1996,6,1)]) - self.assertEqual(DateProperty("1996-05-06,07,08").value, [date(1996,5,6),date(1996,5,7),date(1996,5,8)]) - self.assertEqual(DateProperty("1996,1997").value, [date(1996,1,1),date(1997,1,1)]) - self.assertEqual(DateProperty("1996-12-27,28,1997-01-03,04").value, [date(1996,12,27),date(1996,12,28),date(1997,1,3),date(1997,1,4)]) - self.assertEqual(DateProperty("1997-05-05,1997-05-06").value, [date(1997,5,5),date(1997,5,6)]) - self.assertEqual(DateProperty("Published on 1997-05-06").value, [date(1997,5,6)]) + self.assertEqual(DateProperty("1996-05,06").value, [date(1996, 5, 1), date(1996, 6, 1)]) + self.assertEqual(DateProperty("1996-05-06,07,08").value, [date(1996, 5, 6), date(1996, 5, 7), date(1996, 5, 8)]) + self.assertEqual(DateProperty("1996,1997").value, [date(1996, 1, 1), date(1997, 1, 1)]) + self.assertEqual(DateProperty("1996-12-27,28,1997-01-03,04").value, [date(1996, 12, 27), date(1996, 12, 28), date(1997, 1, 3), date(1997, 1, 4)]) + self.assertEqual(DateProperty("1997-05-05,1997-05-06").value, [date(1997, 5, 5), date(1997, 5, 6)]) + self.assertEqual(DateProperty("Published on 1997-05-06").value, [date(1997, 5, 6)]) with self.assertRaises(DateException): DateProperty("unknown") class TestCollection(TestCase): def testSubtrees(self): - c=Collection(""" + c = Collection(""" (;B[aa] (;W[ab]PB[Some Black]PW[Some White];B[ac]) (;W[bb]PB[Other Black]PW[Other White]) )""") - games=list(c.listGames()) + games = list(c.listGames()) - self.assertEqual(len(games),2) + self.assertEqual(len(games), 2) self.assertRegex(games[0].export(), r"^\(;B\[aa]\n;(PB\[Some Black]|PW\[Some White]|W\[ab]){3}\n;B\[ac]\n\)\n$") self.assertRegex(games[1].export(), r"^\(;B\[aa]\n;(PB\[Other Black]|PW\[Other White]|W\[bb]){3}\n\)\n$") @@ -102,5 +102,6 @@ class TestCollection(TestCase): with open(os.path.join(dataDir, "kogos.sgf")) as f: Collection(f.read()) + if __name__ == '__main__': unittest.main()