summaryrefslogblamecommitdiffstats
path: root/test_generate_reference.py
blob: 6cfd082a3ee5859a6c94cb4ccc44b47a28ce2659 (plain) (tree)
1
2
3
4
5
6
7
8
                      
              

               

                                                                    

         














                                                                                  









                                                                                        
      


                      
      




















































                                                                                          

 

                         
 


                                                          
 



                          
                                      
 
 






















                                                                 

                                                       

                                                                              
                                                  




                                                                    
#!/usr/bin/env python3
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)


def _create_test(test_string, want):
    """
    Decorate tested function to be used as a method for TestCase.
    """
    def do_test_expected(self):
        self.maxDiff = None

        got = generate_reference.parse_notes_test(test_string)
        try:
            self.assertEqual(got, want, """Result matches
            expected = %s

            observed = %s
            """ % (want, got))
        except AssertionError:
            logging.debug("want = %s", want)
            raise

    return do_test_expected


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()