#!/usr/bin/env python3 # -*- coding: utf-8 -*- import logging import unittest import generate_reference logging.basicConfig(format='%(levelname)s:%(funcName)s:%(message)s', level=logging.INFO) log = logging.getLogger(__name__) 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 on instr:\n%s" % test_string) except AssertionError: log.debug("want = %s", want) raise def test_simple_reference(self): instr = 'Ž 93,28' exptuple = (('Ž', 93, (28,)),) 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_just_verse(self): instr = 'v. 1' exptuple = (('', 0, (1,)),) 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, 23, 24)), ('Ž', 93, (2,)), ('Ž', 102, (25, 26, 27)), ('Iz', 40, (21,)), ('Mk', 13, (19,)), ('J', 1, (1, 2, 3)), ('He', 1, (10, 11, 12)), ('1J', 1, (1,)), ('Iz', 66, (1, 2))) 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) 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 = (('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,)), ('', 0, (21, 27,)), ) 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; Jon 2,6' exptuple = (('Př', 8, (24, 27, 28)), ('Iz', 51, (10,)), ('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, 14, 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) 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;' + \ 'vzájemně se vylučují (nemísí se); srv. J 1,5]' exptuple = (('Ex', 26, (33,)), ('Lv', 10, (10,)), ('Lv', 20, (24,)), ('Nu', 8, (14,)), ('J', 1, (5,)), ('', 0, (6, 7, 14, 18)), ) self.do_test_expected(instr, exptuple) def test_nasledujici_verse(self): instr = 'Iz 66,1n; Ž 136,7nn' exptuple = (('Iz', 66, (1, 2)), ('Ž', 136, (7, 8, 9))) self.do_test_expected(instr, exptuple) 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 = (('Ž', 74, (16,)), ('Ž', 136, (7, 8, 9)), ('Jr', 31, (35,)), ('Dt', 4, (19,))) 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) def test_p_suffix(self): # 'p' suffix means "odkaz na poznámku u verše" # I don't know if we can make reference to note, # so for now we just make reference to the verse itself. instr = 'v. 1p' exptuple = (('', 0, (1,)),) self.do_test_expected(instr, exptuple) def test_unknown_28(self): instr = 'v. 28; 2,3; 5,2; 12,2; [v h. je slsoḇ–r–ḵ vždy spojeno' exptuple = (('', 2, (3,)), ('', 5, (2,)), ('', 12, (2,)), ('', 0, (28,))) self.do_test_expected(instr, exptuple) 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 = ( ('', 3, (22,)), ('', 11, (7,)), ('Jb', 1, (6, 7, 8, 9, 10, 11, 12)), ('Jb', 2, (1, 2, 3, 4, 5, 6)), ('Iz', 6, (8,)), ('1Kr', 22, (19, 20, 21, 22, 23)), ('Jr', 23, (18,)), ('Za', 3, (1, 2, 3, 4, 5, 6, 7)) ) self.do_test_expected(instr, exptuple) 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 = (('', 9, (6,)), ('', 5, (3,)), ('1K', 11, (7,)), ('Ef', 4, (24,)), ('Ko', 3, (10,))) self.do_test_expected(instr, exptuple) def test_pohlavi(self): instr = 'n.: mužského a ženského pohlaví. 5,2;Dt 4,16; Mt 19,4' exptuple = (('', 5, (2,)), ('Dt', 4, (16,)), ('Mt', 19, (4,))) self.do_test_expected(instr, exptuple) if __name__ == '__main__': unittest.main(verbosity=2)