#!/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 expected = %s observed = %s """ % (want, got)) except AssertionError: log.debug("want = %s", want) raise 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__': unittest.main(verbosity=2)