summaryrefslogtreecommitdiffstats
path: root/test_generate_reference.py
diff options
context:
space:
mode:
Diffstat (limited to 'test_generate_reference.py')
-rwxr-xr-xtest_generate_reference.py298
1 files changed, 181 insertions, 117 deletions
diff --git a/test_generate_reference.py b/test_generate_reference.py
index 6cfd082..4207db2 100755
--- a/test_generate_reference.py
+++ b/test_generate_reference.py
@@ -1,118 +1,24 @@
#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
import logging
import unittest
-logging.basicConfig(format='%(levelname)s:%(funcName)s:%(message)s',
- level=logging.DEBUG)
-
-TESTS = (
- ('Ž 93,2', (('Ž', 93, 2),)),
- ('Př 8,22—24; Ž 93,2; 102,25—27v; Iz 40,21; Mk 13,19;J 1,1—3; ' +
- 'He 1,10—12; 1J 1,1; [Jde o počátek věčnosti (Iz 66,1n — tj. ' +
- 'mimo čas.]',
- (('Př', 8, 22, 24),
- ('Ž', 93, 2),
- ('Ž', 102, 25, 27),
- ('Iz', 40, 21),
- ('Mk', 13, 19),
- ('J', 1, 1, 3),
- ('He', 1, 10, 12),
- ('1J', 1, 1),
- ('Iz', 66, 1) # TODO we should parse also 1n style verse ref.
- )
- ),
- # ('v. 21.27; Iz 42,5; 45,12.18; Ž 90,2v; Sk 17,24v;
- # Ř 1,20;He 11,3v; Zj 4,11; ' '10,6; [h. slsobārā’ se používá pouze
- # o Bohu a popisuje stvoření něčeho ' 'nového a dokonalého. Buď se
- # jedná o stvoření z ničeho jako při prvotním ' 'stvoření
- # (He 11,3v), anebo o obnovu nebo přetvořenípro nový účel či nové
- # ' 'uspořádání (srv. Ž 51,10; Iz 65,17)]', ()),
- ('[h. výraz’ₑlōhîm jeplurál od ’ₑlôah velmičastý ve spojení se sg. '
- ' slovesa; majestát a svrchovanost. v pl. (např. Sd 2,3) a také '
- 'v případech zřejmých z kontextu (Dt 4,28; 6,14) se jedná '
- 'o bohy — pohanská božstva]',
- (
- ('Sd', 2, 3),
- ('Dt', 4, 28),
- ('Dt', 6, 13),
- )
- ),
- # ('14,19; Ex 20,11; Iz 37,16; Jr 32,17; 1Pa 16,26; Neh 9,6;Ž 8,4; '
- # '115,15; Sk 4,24', ()),
- ('Jb 38,4; Př 3,19; Jr 10,12',
- (('Jb', 38, 4),
- ('Př', 3, 19),
- ('Jr', 10, 12))),
- ('Jr 4,23; Iz 45,18p',
- (('Jr', 4, 23),
- ('Iz', 45, 18))),
- ('Iz 9,1; 58,10',
- (('Iz', 9, 1),
- ('Iz', 58, 10))),
- ('Př 8,24.27n; Iz 51,10; Ez 31,15; Jon 2,6',
- (('Př', 8, 24, 27),
- ('Iz', 51, 10),
- ('Ez', 31, 15),
- ('Jon', 2, 6)
- )
- ),
- ('Iz 40,13-15; Ž 33,6;',
- (
- ('Iz', 40, 13, 15),
- ('Ž', 33, 6)
- )),
- #('[klíčový výraz kapitoly (srv. v. 6.7.14.18) a vůbec celéhoZákona '
- #'(Ex 26,33; Lv 10,10; 20,24; Nu 8,14; Dt 4,41; 10,8; srv. 1Kr 8,53;Neh 9,2; '
- #'Ez 42,20); zde vidíme, že světlo existuje souběžně s tmou, alevzájemně '
- #'se vylučují (nemísí se); srv. J 1,5]', ()),
- ('srv. Ez 1,22; 10,1',
- (('Ez', 1, 22), ('Ez', 10, 1))),
- #('Ž 74,16; 136,7nn; Jr 31,35; [slova slunce a měsíc nejsouprav. záměrně '
- #'použita, protože oba výrazy označovaly uctívaná pohanská božstva(srv. '
- #'Dt 4,19); zde je naopak zdůrazněno (dále ještě třemi slovesy,popisujícími '
- #'jejich funkci), že to jsou stvořené věci, nikolivbožstva]', ()),
- ('Ž 8,4; Iz 40,26; Am 5,8; [pro jejich množství jsou použity ' +
- 'k vyjádření velkého počtu — např. Gn 15,5; Dt 1,10;Na 3,16]',
- (
- ('Ž', 8, 4), ('Iz', 40, 26), ('Am', 5, 8), ('Gn', 15, 5),
- ('Dt', 1, 10), ('Na', 3, 16)
- )),
- # ('v. 1p', ('', 0, 1)), # TODO what does 'p' suffix means?
- #('v. 28; 2,3; 5,2; 12,2; [v h. je slsoḇ–r–ḵ vždyspojeno', ()),
- #('přítomnosti;(srv. 3,22!; 11,7; Jb 1,6—12; 2,1—6; Iz 6,8; 1Kr 22,19—23; '
- #'Jr 23,18;Za 3,1—7)]', ()),
- #('9,6; 5,3; 1K 11,7; Ef 4,24; srv. Ko 3,10p; [tzn. aby prostvoření '
- # 'představoval Boha]', ()),
- ('5,1; Jk 3,9',
- (
- ('', 5, 1), ('Jk', 3, 9)
- )
- ),
- #('n.: mužského a ženského pohlaví. 5,2;Dt 4,16; Mt 19,4', ()),
-)
-
import generate_reference
-
-class TestNotesParsing(unittest.TestCase): # IGNORE:C0111
- pass
-
-
-def _generate_test_name():
- counter = 0
- while True:
- counter += 1
- yield "{:03d}".format(counter)
+logging.basicConfig(format='%(levelname)s:%(funcName)s:%(message)s',
+ level=logging.INFO)
+log = logging.getLogger(__name__)
-def _create_test(test_string, want):
- """
- Decorate tested function to be used as a method for TestCase.
- """
- def do_test_expected(self):
+class TestNotesParsing(unittest.TestCase): # IGNORE:C0111
+ def setUp(self):
self.maxDiff = None
+ def do_test_expected(self, test_string, want):
+ log.debug('test_string = %s', test_string)
got = generate_reference.parse_notes_test(test_string)
+ log.debug('want = %s', want)
+ log.debug('got = %s', got)
try:
self.assertEqual(got, want, """Result matches
expected = %s
@@ -120,21 +26,179 @@ def _create_test(test_string, want):
observed = %s
""" % (want, got))
except AssertionError:
- logging.debug("want = %s", want)
+ log.debug("want = %s", want)
raise
- return do_test_expected
+ def test_simple_reference(self):
+ instr = 'Ž 93,2'
+ exptuple = (('Ž', 93, 2),)
+ self.do_test_expected(instr, exptuple)
+
+ def test_prvni_empty(self):
+ instr = '5,1; Jk 3,9'
+ exptuple = (('', 5, 1), ('Jk', 3, 9))
+ self.do_test_expected(instr, exptuple)
+
+ def test_parse_pr_8_22_a_dalsi(self):
+ instr = 'Př 8,22—24; Ž 93,2; 102,25—27v; Iz 40,21; Mk 13,19;' + \
+ 'J 1,1—3; He 1,10—12; 1J 1,1; [Jde o počátek věčnosti ' + \
+ '(Iz 66,1n — tj. mimo čas.]'
+ exptuple = (('Př', 8, 22, 24),
+ ('Ž', 93, 2),
+ ('Ž', 102, 25, 27),
+ ('Iz', 40, 21),
+ ('Mk', 13, 19),
+ ('J', 1, 1, 3),
+ ('He', 1, 10, 12),
+ ('1J', 1, 1),
+ # TODO we should parse also 1n style verse ref.
+ ('Iz', 66, 1))
+ self.do_test_expected(instr, exptuple)
+
+ def test_unknown_14_19(self):
+ instr = '14,19; Ex 20,11; Iz 37,16; Jr 32,17; 1Pa 16,26; Neh 9,6;' + \
+ 'Ž 8,4; 115,15; Sk 4,24'
+ exptuple = (('', 14, 19),
+ ('Ex', 20, 11),
+ ('Iz', 37, 16),
+ ('Jr', 32, 17),
+ ('1Pa', 16, 26),
+ ('Neh', 9, 6),
+ ('Ž', 8, 4),
+ ('Ž', 115, 15),
+ ('Sk', 4, 24))
+ self.do_test_expected(instr, exptuple)
+
+ def test_elohim(self):
+ instr = '[h. výraz’ₑlōhîm jeplurál od ’ₑlôah velmičastý' + \
+ ' ve spojení se sg. slovesa; majestát a svrchovanost. ' + \
+ 'v pl. (např. Sd 2,3) a také v případech zřejmých z kontextu ' + \
+ '(Dt 4,28; 6,14) se jedná o bohy — pohanská božstva]'
+ exptuple = (('Sd', 2, 3),
+ ('Dt', 4, 28),
+ ('Dt', 6, 14))
+ self.do_test_expected(instr, exptuple)
+
+ @unittest.skip('Not implemented yet')
+ def test_slsobara(self):
+ instr = 'v. 21.27; Iz 42,5; 45,12.18; Ž 90,2v; Sk 17,24v;' + \
+ 'Ř 1,20;He 11,3v; Zj 4,11; ' '10,6; [h. slsobārā’ se používá' + \
+ ' pouze o Bohu a popisuje stvoření něčeho ' 'nového' + \
+ ' a dokonalého. Buď se jedná o stvoření z ničeho jako při' + \
+ ' prvotním stvoření (He 11,3v), anebo o obnovu nebo přetvoření' + \
+ ' pro nový účel či nové uspořádání (srv. Ž 51,10; Iz 65,17)]'
+ exptuple = (('', 21, 27), ('Iz', 42, 5), ('Iz', 45, 12, 18),
+ ('Ž', 90, 2), ('Sk', 17, 24), ('Ř', 1, 20), ('He', 11, 3),
+ ('Zj', 4, 11), ('Zj', 10, 6), ('He', 11, 3),
+ ('Ž', 51, 10), ('Iz', 65, 17))
+
+ self.do_test_expected(instr, exptuple)
+
+ def test_jb_38_4(self):
+ instr = 'Jb 38,4; Př 3,19; Jr 10,12'
+ exptuple = (('Jb', 38, 4),
+ ('Př', 3, 19),
+ ('Jr', 10, 12))
+ self.do_test_expected(instr, exptuple)
+
+ def test_jr_4_23(self):
+ instr = 'Jr 4,23; Iz 45,18p'
+ exptuple = (('Jr', 4, 23), ('Iz', 45, 18))
+ self.do_test_expected(instr, exptuple)
+
+ def test_iz_9_1(self):
+ instr = 'Iz 9,1; 58,10'
+ exptuple = (('Iz', 9, 1), ('Iz', 58, 10))
+ self.do_test_expected(instr, exptuple)
+
+ def test_pr_8_24(self):
+ instr = 'Př 8,24.27n; Iz 51,10; Ez 31,15; Jon 2,6'
+ exptuple = (('Př', 8, 24, 27), ('Iz', 51, 10), ('Ez', 31, 15),
+ ('Jon', 2, 6))
+ self.do_test_expected(instr, exptuple)
+
+ def test_iz_40_13(self):
+ instr = 'Iz 40,13-15; Ž 33,6;'
+ exptuple = (('Iz', 40, 13, 15), ('Ž', 33, 6))
+ self.do_test_expected(instr, exptuple)
+
+ def test_srv_ez_1_22(self):
+ instr = 'srv. Ez 1,22; 10,1'
+ exptuple = (('Ez', 1, 22), ('Ez', 10, 1))
+ self.do_test_expected(instr, exptuple)
+
+ @unittest.skip('This fails so far')
+ def test_dlouhy_klicovy_vyraz(self):
+ instr = '[klíčový výraz kapitoly (srv. v. 6.7.14.18) a vůbec ' + \
+ 'celého Zákona (Ex 26,33; Lv 10,10; 20,24; Nu 8,14;' + \
+ ' Dt 4,41; 10,8; srv. 1Kr 8,53;Neh 9,2; Ez 42,20); zde' + \
+ ' vidíme, že světlo existuje souběžně s tmou, ale ' + \
+ 'vzájemně se vylučují (nemísí se); srv. J 1,5]'
+ exptuple = (('', 40, 13, 15), # FIXME not sure how 2D multiple verses
+ ('Ex', 26, 33),
+ ('Lv', 10, 10),
+ ('Lv', 20, 24),
+ ('Nu', 8, 14),
+ ('Dt', 4, 41),
+ ('Dt', 10, 8),
+ ('1Kr', 8, 53),
+ ('Neh', 9, 2),
+ ('Ez', 42, 20),
+ ('J', 1, 5))
+ self.do_test_expected(instr, exptuple)
+
+ @unittest.skip('Not implemented yet')
+ def test_slunce_mesic(self):
+ instr = 'Ž 74,16; 136,7nn; Jr 31,35; [slova slunce a měsíc ' + \
+ 'nejsou prav. záměrně použita, protože oba výrazy ' + \
+ 'označovaly uctívaná pohanská božstva(srv. Dt 4,19);' + \
+ ' zde je naopak zdůrazněno (dále ještě třemi ' + \
+ 'slovesy, popisujícími jejich funkci), že to ' + \
+ 'jsou stvořené věci, nikolivbožstva]'
+ exptuple = ()
+ self.do_test_expected(instr, exptuple)
+
+ def test_velky_pocet(self):
+ instr = 'Ž 8,4; Iz 40,26; Am 5,8; [pro jejich množství ' + \
+ 'jsou použity k vyjádření velkého počtu — např. Gn 15,5; ' + \
+ 'Dt 1,10;Na 3,16]'
+ exptuple = (('Ž', 8, 4), ('Iz', 40, 26), ('Am', 5, 8), ('Gn', 15, 5),
+ ('Dt', 1, 10), ('Na', 3, 16))
+ self.do_test_expected(instr, exptuple)
+
+ @unittest.skip('Not implented yet')
+ def test_p_suffix(self):
+ # TODO what does 'p' suffix means?
+ instr = 'v. 1p'
+ exptuple = (('', 0, 1))
+ self.do_test_expected(instr, exptuple)
+
+ @unittest.skip('Not implented yet')
+ def test_unknown_28(self):
+ instr = 'v. 28; 2,3; 5,2; 12,2; [v h. je slsoḇ–r–ḵ vždyspojeno'
+ exptuple = ()
+ self.do_test_expected(instr, exptuple)
+
+ @unittest.skip('Not implented yet')
+ def test_pritomnosti(self):
+ instr = 'přítomnosti;(srv. 3,22!; 11,7; Jb 1,6—12; 2,1—6; ' + \
+ 'Iz 6,8; 1Kr 22,19—23; Jr 23,18;Za 3,1—7)]'
+ exptuple = ()
+ self.do_test_expected(instr, exptuple)
+
+ @unittest.skip('Not implented yet')
+ def test_unknown_9_6(self):
+ instr = '9,6; 5,3; 1K 11,7; Ef 4,24; srv. Ko 3,10p; ' + \
+ '[tzn. aby prostvoření představoval Boha]'
+ exptuple = ()
+ self.do_test_expected(instr, exptuple)
+
+ @unittest.skip('Not implented yet')
+ def test_pohlavi(self):
+ instr = 'n.: mužského a ženského pohlaví. 5,2;Dt 4,16; Mt 19,4'
+ exptuple = ()
+ self.do_test_expected(instr, exptuple)
if __name__ == '__main__':
- for test_str, parsed_out in TESTS:
- logging.debug('test_str, parsed_out:\n%s, %s' %
- (test_str, parsed_out))
- test_name = _generate_test_name()
-# test_name = "test_parsing_%03d" % TESTS.index((test_str, parsed_out))
- logging.debug('test_name = %s', test_name)
- test_method = _create_test(test_str, parsed_out)
- test_method.__name__ = str('test_%s' % test_name)
- setattr(TestNotesParsing, test_method.__name__, test_method)
-
- unittest.main()
+ unittest.main(verbosity=2)