Ejemplo n.º 1
0
 def test_dubious_subset(self):
     self.assertEqual(CognateParser().parse_cognate('1, 2?'), ['1'])
     self.assertEqual(CognateParser().parse_cognate('1?, 2'), ['2'])
     self.assertEqual(CognateParser().parse_cognate('91?, 42'), ['42'])
     self.assertEqual(CognateParser().parse_cognate('?, 31'), ['31'])
     # note that both of these are dubious, should become a unique
     # state instead
     self.assertEqual(CognateParser().parse_cognate('1?, 2?'), ['u_1'])
Ejemplo n.º 2
0
 def test_is_unique_cognateset(self):
     self.assertEqual(CognateParser().is_unique_cognateset('u_1'), True)
     self.assertEqual(
         CognateParser().is_unique_cognateset('u_1', labelled=False), True)
     self.assertEqual(
         CognateParser().is_unique_cognateset('hand_u_1', labelled=False),
         False)
     self.assertEqual(
         CognateParser().is_unique_cognateset('hand_u_1', labelled=True),
         True)
Ejemplo n.º 3
0
 def test_entries_with_a_cognate_word_arenot_added_as_unique(self):
     hand = [c for c in self.nex.characters if c.startswith('hand_')]
     hand = [
         c for c in hand
         if CognateParser().is_unique_cognateset(c, labelled=True)
     ]
     assert len(hand) == 1, 'Only expecting one unique character for hand'
     assert self.nex.data['hand_u_2']['Iaai-471'] in ('0', '?'), \
         'Iaai-471 should not be unique for `hand`'
Ejemplo n.º 4
0
 def test_combined_cognate(self):
     self.assertEqual(CognateParser().parse_cognate('1a'), ['1', '1a'])
     self.assertEqual(CognateParser().parse_cognate('2b'), ['2', '2b'])
     self.assertEqual(CognateParser().parse_cognate('3az'), ['3', '3az'])
     self.assertEqual(CognateParser().parse_cognate('45c'), ['45', '45c'])
     self.assertEqual(CognateParser().parse_cognate('1a,2b'),
                      ['1', '1a', '2', '2b'])
     self.assertEqual(CognateParser().parse_cognate('1,2a,3b'),
                      ['1', '2', '2a', '3', '3b'])
Ejemplo n.º 5
0
 def test_add_unique(self):
     CP = CognateParser()
     self.assertEqual(CP.parse_cognate(''), ['u_1'])
     self.assertEqual(CP.parse_cognate(''), ['u_2'])
     self.assertEqual(CP.parse_cognate(''), ['u_3'])
     self.assertEqual(CP.parse_cognate(''), ['u_4'])
Ejemplo n.º 6
0
 def test_simple(self):
     self.assertEqual(CognateParser().parse_cognate('1'), ['1'])
     self.assertEqual(CognateParser().parse_cognate('10'), ['10'])
     self.assertEqual(CognateParser().parse_cognate('100'), ['100'])
     self.assertEqual(CognateParser().parse_cognate('111'), ['111'])
Ejemplo n.º 7
0
 def test_empty_entries(self):
     with self.assertRaises(ValueError):
         CognateParser(uniques=False).parse_cognate(',,')
Ejemplo n.º 8
0
 def test_subset(self):
     self.assertEqual(CognateParser().parse_cognate('1,2'), ['1', '2'])
     self.assertEqual(CognateParser().parse_cognate('1   ,   2'),
                      ['1', '2'])
Ejemplo n.º 9
0
    def test_complicated_strict_unique(self):
        CP = CognateParser(strict=True, uniques=True)
        # # 3. right
        # Maori    katau         5, 40
        # Maori    matau         5
        # South Island Maori    tika
        self.assertEqual(CP.parse_cognate('5, 40'), ['5', '40'])
        self.assertEqual(CP.parse_cognate('5'), ['5'])
        self.assertEqual(CP.parse_cognate(''), ['u_1'])

        # # 8. turn
        # Maori    huri         15
        # South Island Maori    tahuli         15
        # South Island Maori    tahuri    to turn, to turn around    15
        self.assertEqual(CP.parse_cognate('15'), ['15'])
        self.assertEqual(CP.parse_cognate('15'), ['15'])
        self.assertEqual(CP.parse_cognate('15'), ['15'])

        # # 20. to know
        # Maori    moohio         52
        # South Island Maori    matau         1
        # South Island Maori    mohio    to know    52
        # South Island Maori    ara    to know, to awake
        self.assertEqual(CP.parse_cognate('52'), ['52'])
        self.assertEqual(CP.parse_cognate('1'), ['1'])
        self.assertEqual(CP.parse_cognate('52'), ['52'])
        self.assertEqual(CP.parse_cognate(''), ["u_2"])

        # # 36: to spit
        # Maori    tuha         19, 34?
        # South Island Maori    huare         18
        # South Island Maori    tuha    to expectorate, to spit    19, 34?
        self.assertEqual(CP.parse_cognate('19, 34?'), ['19'])
        self.assertEqual(CP.parse_cognate('18'), ['18'])
        self.assertEqual(CP.parse_cognate('19, 34?'), ['19'])
Ejemplo n.º 10
0
 def test_null(self):
     self.assertEqual(CognateParser().parse_cognate(None), ['u_1'])
Ejemplo n.º 11
0
 def test_semicolon(self):
     with self.assertRaises(ValueError):
         CognateParser().parse_cognate('2, 63; 87')
Ejemplo n.º 12
0
 def test_trailing_dash(self):
     with self.assertRaises(ValueError):
         CognateParser().parse_cognate('1-')
Ejemplo n.º 13
0
 def test_normalisation(self):
     self.assertEqual(CognateParser().parse_cognate('1, 52'), ['1', '52'])
     self.assertEqual(CognateParser().parse_cognate('52, 1'), ['1', '52'])
Ejemplo n.º 14
0
 def test_complicated_with_slash(self):
     CP = CognateParser(strict=True, uniques=True)
     self.assertEqual(CP.parse_cognate('53/54'), ['53', '54'])
Ejemplo n.º 15
0
 def test_dubious(self):
     self.assertEqual(CognateParser().parse_cognate('1?'), ['u_1'])
     self.assertEqual(CognateParser().parse_cognate('?'), ['u_1'])
Ejemplo n.º 16
0
 def test_no_uniques(self):
     CP = CognateParser(uniques=False)
     self.assertEqual(CP.parse_cognate(''), [])
     self.assertEqual(CP.parse_cognate(''), [])
     self.assertEqual(CP.parse_cognate(''), [])
Ejemplo n.º 17
0
 def test_dubious_with_no_strict(self):
     self.assertEqual(
         CognateParser(strict=False).parse_cognate('1?'), ['1'])
     self.assertEqual(
         CognateParser(strict=False).parse_cognate('1, 2?'), ['1', '2'])
Ejemplo n.º 18
0
 def test_bad_entries_in_forms_uniques(self):
     # coded as x
     self.assertEqual(
         CognateParser(uniques=True).parse_cognate('X20'), ['u_1'])
     self.assertEqual(
         CognateParser(uniques=True).parse_cognate('x20'), ['u_1'])
Ejemplo n.º 19
0
 def test_bad_cog_int(self):
     with self.assertRaises(ValueError):
         CognateParser().parse_cognate(1)
Ejemplo n.º 20
0
 def test_bad_entries_nouniques(self):
     self.assertEqual(CognateParser(uniques=False).parse_cognate('X'), [])
     self.assertEqual(CognateParser(uniques=False).parse_cognate('x'), [])
Ejemplo n.º 21
0
 def test_nexus_characters_expected_uniques(self):
     uniques = [
         c for c in self.nex.characters
         if CognateParser().is_unique_cognateset(c, labelled=True)
     ]
     assert len(uniques) == len(EXPECTED_UNIQUES)
Ejemplo n.º 22
0
 def test_s_entries_nouniques(self):
     # entries that are in the wrong word (e.g. you sg. not you pl.)
     self.assertEqual(CognateParser(uniques=False).parse_cognate('s'), [])