/
acctest.py
188 lines (174 loc) · 11.3 KB
/
acctest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# An acceptance test for signatrix.
import unittest
from io import StringIO
from line import Line
from work import Work
litora = ' Litora, multum ille et terris iactatus et alto '
early_aeneid = StringIO("""
Arma virumque cano, Troiae qui primus ab oris
Italiam, fato profugus, Laviniaque venit
litora, multum ille et terris iactatus et alto
vi superum saevae memorem Iunonis ob iram;
multa quoque et bello passus, dum conderet urbem, 5
inferretque deos Latio, genus unde Latinum,
Albanique patres, atque altae moenia Romae.
Musa, mihi causas memora, quo numine laeso,
quidve dolens, regina deum tot volvere casus
insignem pietate virum, tot adire labores 10
impulerit. Tantaene animis caelestibus irae?
Urbs antiqua fuit, Tyrii tenuere coloni,
""")
class AcceptanceTest(unittest.TestCase):
maxDiff = None
def test_litora(self):
line = Line(litora)
self.assertCountEqual(
[str(scan) for scan in line.scans],
[
"lī'-tŏ-ră / mul-t(um)⁀il-/-l(e)⁀et te'r-/-ris jac-/-tā'-tŭ-s⁀ĕ-/-t⁀a'l-to"
]
)
def test_early_aeneid(self):
work = Work(early_aeneid, name='Aeneid 1')
self.assertCountEqual(
work.scans_strings(),
[
"a'r-mă vĭ-/-ru'm-quĕ că'-/-nō trō-/-jā'-ĕ quĭ / prī'-mŭ-s⁀ă-/-b⁀ō'-ris",
"a'r-mă vĭ-/-ru'm-quĕ că'-/-nō trŏ'-jă-/-ē quī / prī'-mŭ-s⁀ă-/-b⁀ō'-ris",
"a'r-mă vĭ-/-ru'm-quē / cā'-nŏ trŏ-/-jā'-ĕ quĭ / prī'-mŭ-s⁀ă-/-b⁀ō'-ris",
"a'r-mă vĭ-/-ru'm-quĕ că'-/-nō trŏ'-ĭ-/-æ quī / prī'-mŭ-s⁀ă-/-b⁀ō'-ris",
"a'r-mă vĭ-/-ru'm-quĕ că'-/-nō trō'-/-jæ quī / prī'-mŭ-s⁀ă-/-b⁀ō'-ris",
"a'r-mă vĭ-/-ru'm-quĕ că'-/-nō trŏ-ĭ-/-ā'-ĕ quĭ / prī'-mŭ-s⁀ă-/-b⁀ō'-ris",
"a'r-mă vĭ-/-ru'm-quē / cā'-nŏ trŏ'-/-jæ quī / prī'-mŭ-s⁀ă-/-b⁀ō'-ris",
"",
"ī-ta'l-/-jam fā'-/-tō prō-/-fū'-gŭ-s⁀lă-/-vi'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō'-fŭ-gŭ-/-s⁀lā-ŭ-ĭ-/-nī'-ă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō'-fŭ-gŭ-/-s⁀lā-ū-/-i'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fā'-/-tō prŏ'-fŭ-/-gus lă-vĭ-/-nī'-ă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō'-fŭ-gŭ-/-s⁀lā-ū-/-i'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō-fū'-/-gus lă-ŭ-/-i'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fā'-/-tō prŏ'-fŭ-/-gus lā-/-vi'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fā'-/-tō prŏ'-fŭ-/-gū-s⁀lă-vĭ-/-nī'-ă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō-fū'-/-gus lau-/-i'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fā'-/-tō prŏ'-fŭ-/-gus lă-ŭ-/-i'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fā'-/-tō prŏ'-fŭ-/-gus lă-ŭ-/-i'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō'-fŭ-gŭ-/-s⁀lā-vī-/-nī'-ă-quĕ / vē'-nit",
"ī-ta'l-/-jam fā'-/-tō prŏ'-fŭ-/-gū-s⁀lă-vĭ-/-nī'-ă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fā'-/-tō prŏ'-fŭ-/-gus lau-/-i'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō-fū'-/-gū-s⁀lă-ŭ-/-i'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō-fū'-/-gus lā-/-vi'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō-fū'-/-gū-s⁀lā-/-vi'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fā'-/-tō prŏ'-fŭ-/-gū-s⁀lă-ŭ-/-i'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fā'-/-tō prŏ'-fŭ-/-gus lau-/-i'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fā'-/-tō prŏ'-fŭ-/-gū-s⁀lă-ŭ-/-i'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō-fū'-/-gus lā-/-vi'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fā'-/-tō prŏ'-fŭ-/-gus lā-/-vi'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō'-fŭ-gŭ-/-s⁀lā-ŭ-ĭ-/-nī'-ă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō-fū'-/-gū-s⁀lă-vĭ-/-nī'-ă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō-fū'-/-gū-s⁀lau-/-i'n-jă-quĕ / vē'-nit",
"ī-tā-/-lī'-am / fā'-tŏ prŏ-/-fū'-gŭ-s⁀lă-/-vi'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō-fū'-/-gū-s⁀lă-ŭ-/-i'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fā'-/-tō prŏ'-fŭ-/-gū-s⁀lau-/-i'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fā'-/-tō prŏ'-fŭ-/-gū-s⁀lā-/-vi'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō-fū'-/-gū-s⁀lă-vĭ-/-nī'-ă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō'-fŭ-gŭ-/-s⁀lā-vī-/-nī'-ă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fā'-/-tō prō-/-fū'-gŭ-s⁀lă-/-vi'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō-fū'-/-gus lă-vĭ-/-nī'-ă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō'-fŭ-gŭ-/-s⁀lau-ī-/-nī'-ă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō-fū'-/-gus lau-/-i'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fā'-/-tō prŏ'-fŭ-/-gus lă-vĭ-/-nī'-ă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō'-fŭ-gŭ-/-s⁀lau-ī-/-nī'-ă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō-fū'-/-gū-s⁀lā-/-vi'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fā'-/-tō prŏ'-fŭ-/-gū-s⁀lā-/-vi'n-jă-quĕ / vē'-nit",
"ī-ta'l-/-jam fă'-tŏ / prō-fū'-/-gū-s⁀lau-/-i'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō-fū'-/-gus lă-ŭ-/-i'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fā'-/-tō prŏ'-fŭ-/-gū-s⁀lau-/-i'n-jă-quĕ / vē'-nit",
"ī-tă'-lĭ-/-am fă'-tŏ / prō-fū'-/-gus lă-vĭ-/-nī'-ă-quĕ / vē'-nit",
"",
"lī'-tŏ-ră / mul-t(um)⁀il-/-l(e)⁀et te'r-/-ris jac-/-tā'-tŭ-s⁀ĕ-/-t⁀a'l-to",
"",
"vī sŭ'-pĕ-/-rum să'-ĕ-/-væ mē'-/-mō-r(em)⁀ĭ-ŭ-/-nō'-nĭ-s⁀ŏ-/-b⁀ī'-ram",
"vī sŭ'-pĕ-/-rum să'-ĕ-/-væ mĕ'-mŏ-/-r(em)⁀ī-ū-/-nō'-nĭ-s⁀ŏ-/-b⁀ī'-ram",
"vī sŭ'-pĕ-/-rum sæ'-/-væ mĕ'-mŏ-/-rē-m⁀ĭ-ŭ-/-nō'-nĭ-s⁀ŏ-/-b⁀ī'-ram",
"vī sŭ'-pĕ-/-rum să'-ĕ-/-væ mĕ'-mŏ-/-rem jū-/-nō'-nĭ-s⁀ŏ-/-b⁀ī'-ram",
"vī sŭ'-pĕ-/-rum să-ĕ-/-vā'-ĕ mĕ'-/-mō-r(em)⁀ĭ-ŭ-/-nō'-nĭ-s⁀ŏ-/-b⁀ī'-ram",
"vī sŭ'-pĕ-/-rum sæ'-/-væ mĕ'-mŏ-/-rem jū-/-nō'-nĭ-s⁀ŏ-/-b⁀ī'-ram",
"vī sŭ'-pĕ-/-rum sæ'-/-væ mē'-/-mō-r(em)⁀ĭ-ŭ-/-nō'-nĭ-s⁀ŏ-/-b⁀ī'-ram",
"vī sŭ'-pĕ-/-rum sæ'-/-væ mĕ'-mŏ-/-r(em)⁀ī-ū-/-nō'-nĭ-s⁀ŏ-/-b⁀ī'-ram",
"vī sŭ'-pĕ-/-rum să'-ĕ-/-væ mĕ'-mŏ-/-rē-m⁀ĭ-ŭ-/-nō'-nĭ-s⁀ŏ-/-b⁀ī'-ram",
"vī sŭ'-pĕ-/-rum sæ-/-vā'-ĕ mĕ'-/-mō-r(em)⁀ĭ-ŭ-/-nō'-nĭ-s⁀ŏ-/-b⁀ī'-ram",
"",
"mu'l-tă quŏ-/-qu(e)⁀et be'l-/-lō pa's-/-sus dum / co'n-dĕ-rĕ-/-t⁀u'r-bem",
"",
"in-fer-/-re't-quĕ dĕ'-/-ō-s⁀lă'-tĭ-/-ō gĕ'-nŭ-/-s⁀u'n-dĕ lă-/-tī'-num",
"in-fer-/-re't-quĕ dĕ'-/-ō-s⁀la't-/-jō gĕ'-nŭ-/-s⁀u'n-dĕ lă-/-tī'-num",
"in-fer-/-re't-quĕ dĕ'-/-os lă'-tĭ-/-ō gĕ'-nŭ-/-s⁀u'n-dĕ lă-/-tī'-num",
"in-fer-/-re't-quĕ dĕ'-/-os la't-/-jō gĕ'-nŭ-/-s⁀u'n-dĕ lă-/-tī'-num",
"",
"al-bă'-nĭ-/-quē pā'-/-trē-s⁀at-/-qu(e)⁀a'l-tæ / mœ'-nĭ-ă / rō'-mæ",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀at-qu(e)⁀al-/-tā'-ĕ mŏ-/-e'n-jă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀a't-quē / a'l-tă-ĕ / mœ'n-jă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀at-qu(e)⁀a'l-/-tæ mō-/-ē'-nĭ-ă / rō'-mæ",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀at-qu(e)⁀a'l-/-tæ mŏ-ĕ-/-nī'-ă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀at-qu(e)⁀al-/-tā'-ĕ mŏ-/-ē'-nĭ-ă / rō'-mæ",
"al-bā-/-nī'-quĕ pă'-/-trē-s⁀at-/-qu(e)⁀a'l-tæ / mœ'-nĭ-ă / rō'-mæ",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀at-qu(e)⁀a'l-/-tæ mō-/-e'n-jă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pā'-/-trē-s⁀at-/-qu(e)⁀a'l-tă-ĕ / mœ'-nĭ-ă / rō'-mæ",
"al-bā-/-nī'-quĕ pă'-/-trē-s⁀at-/-qu(e)⁀a'l-tă-ĕ / mœ'n-jă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pa't-/-rē-s⁀at-/-qu(e)⁀a'l-tă-ĕ / mœ'n-jă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pa't-/-rē-s⁀at-/-qu(e)⁀a'l-tă-ĕ / mœ'-nĭ-ă / rō'-mæ",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀a't-quē / a'l-tă-ĕ / mœ'-nĭ-ă / rō'-mæ",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀at-qu(e)⁀al-/-tā'-ē / mœ'n-jă rŏ-/-mā'-e",
"al-bā-/-nī'-quĕ pă'-/-trē-s⁀at-/-qu(e)⁀a'l-tă-ĕ / mœ'-nĭ-ă / rō'-mæ",
"al-bă'-nĭ-/-quē pā'-/-trē-s⁀at-/-qu(e)⁀a'l-tă-ĕ / mœ'n-jă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pa't-/-rē-s⁀at-/-qu(e)⁀a'l-tæ / mœ'-nĭ-ă / rō'-mæ",
"al-bă'-nĭ-/-quē pa't-/-rē-s⁀at-/-qu(e)⁀a'l-tæ / mœ'n-jă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀a't-quē / a'l-tæ / mœ'n-jă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pā'-/-trē-s⁀at-/-qu(e)⁀a'l-tæ / mœ'n-jă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀at-qu(e)⁀a'l-/-tæ mœ-/-nī'-ă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀at-qu(e)⁀al-/-tā'-ē / mœ'-nĭ-ă / rō'-mæ",
"al-bā-/-nī'-quĕ pă'-/-trē-s⁀at-/-qu(e)⁀a'l-tæ / mœ'n-jă rŏ-/-mā'-e",
"al-bă'-nĭ-/-quē pă'-trĕ-/-s⁀a't-quē / a'l-tæ / mœ'-nĭ-ă / rō'-mæ",
"",
"mū'-să mĭ'-/-hī că'-ŭ-/-sas mĕ'-mŏ-/-rā quō / nū'-mĭ-nĕ / læ'-so",
"mū'-să mĭ'-/-hī cau'-/-sas mĕ'-mŏ-/-rā quō / nū'-mĭ-nĕ / læ'-so",
"mū'-să mĭ'-/-hī că'-ŭ-/-sas mĕ'-mŏ-/-rā quŏ nŭ-/-mī'-nĕ lă-/-ē'-so",
"mū'-să mĭ'-/-hī cau'-/-sas mĕ'-mŏ-/-rā quŏ nŭ-/-mī'-nĕ lă-/-ē'-so",
"mū'-să mĭ'-/-hī cau'-/-sas mē-/-mō'-ră quŏ / nū'-mĭ-nĕ / læ'-so",
"mū'-să mĭ'-/-hī că'-ŭ-/-sas mē-/-mō'-ră quŏ / nū'-mĭ-nĕ / læ'-so",
"",
"qui'd-vĕ dŏ'-/-lens rĕ'-gĭ-/-nā dē'-/-um tot / vo'l-vĕ-rĕ / cā'-sus",
"qui'd-vĕ dŏ'-/-lens rē-/-gī'-nă dĕ'-/-um tot / vo'l-vĕ-rĕ / cā'-sus",
"quī'-dŭ-ĕ / dō'-lens / rē'-gĭ-nă / deum tot / vo'l-vĕ-rĕ / cā'-sus",
"qui'd-vĕ dŏ'-/-lens rē-/-gī'-nā / deum tot / vo'l-vĕ-rĕ / cā'-sus",
"qui'd-vĕ dŏ'-/-lens rĕ'-gĭ-/-nā deum / tot vō-/-lū'-ĕ-rĕ / cā'-sus",
"qui'd-vē / dō'-lens / rē'-gĭ-nă / deum tot / vo'l-vĕ-rĕ / cā'-sus",
"",
"in-si'g-/-nem pjĕ'-tă-/-tē vī'-/-rum tŏ-t⁀ă-/-dī'-rĕ lă-/-bō'-res",
"in-si'g-/-nem pĭ-ĕ-/-tā'-tĕ vĭ'-/-rum tŏ-t⁀ă-/-dī'-rĕ lă-/-bō'-res",
"in-si'g-/-nem pjē-/-tā'-tĕ vĭ'-/-rum tŏ-t⁀ă-/-dī'-rĕ lă-/-bō'-res",
"",
"im-pŭ'-lĕ-/-rit ta'n-/-tæ-n(e)⁀ă'-nĭ-/-mis că-ĕ-/-le's-tĭ-bŭ-/-s⁀ī'-ræ",
"im-pŭ'-lĕ-/-rit ta'n-/-tæ-n(e)⁀ă'-nĭ-/-mī-s⁀cæ-/-le's-tĭ-bŭ-/-s⁀ī'-ræ",
"im-pŭ'-lĕ-/-rit ta'n-/-tæ-n(e)⁀ă'-nĭ-/-mī-s⁀că-ĕ-/-lē'-stĭ-bŭ-/-s⁀ī'-ræ",
"im-pŭ'-lĕ-/-rit ta'n-/-tæ-n(e)⁀ă'-nĭ-/-mī-s⁀că-ĕ-/-le's-tĭ-bŭ-/-s⁀ī'-ræ",
"im-pŭ'-lĕ-/-rit ta'n-/-tæ-n(e)⁀ă'-nĭ-/-mis cæ-/-lē'-stĭ-bŭ-/-s⁀ī'-ræ",
"im-pŭ'-lĕ-/-rit ta'n-/-tæ-n(e)⁀ă'-nĭ-/-mī-s⁀cæ-/-lē'-stĭ-bŭ-/-s⁀ī'-ræ",
"im-pŭ'-lĕ-/-rit ta'n-/-tæ-n(e)⁀ă'-nĭ-/-mis că-ĕ-/-lē'-stĭ-bŭ-/-s⁀ī'-ræ",
"im-pŭ'-lĕ-/-rit ta'n-/-tæ-n(e)⁀ă'-nĭ-/-mis cæ-/-le's-tĭ-bŭ-/-s⁀ī'-ræ",
"",
"urb-s⁀an-/-tī'-quă fŭ'-/-it ty'-rĭ-/-ī tĕ-nŭ-/-ē'-rĕ cŏ-/-lō'-ni",
"urb-s⁀an-/-tī'-quā / fvit ty'-rĭ-/-ī ten-/-vē'-rĕ cŏ-/-lō'-ni",
"urb-s⁀an-/-tī'-quā / fvit ty'r-/-jī ten-/-vē'-rĕ cŏ-/-lō'-ni",
"urb-s⁀an-/-tī'-quā / fvit ty'r-/-jī tĕ-nŭ-/-ē'-rĕ cŏ-/-lō'-ni",
"urb-s⁀an-/-tī'-quă fŭ'-/-it ty'r-/-jī ten-/-vē'-rĕ cŏ-/-lō'-ni",
"urb-s⁀an-/-tī'-quă fŭ'-/-it ty'r-/-jī tĕ-nŭ-/-ē'-rĕ cŏ-/-lō'-ni",
"urb-s⁀an-/-tī'-quă fŭ'-/-it ty'-rĭ-/-ī ten-/-vē'-rĕ cŏ-/-lō'-ni",
"urb-s⁀an-/-tī'-quā / fvit ty'-rĭ-/-ī tĕ-nŭ-/-ē'-rĕ cŏ-/-lō'-ni",
""
]
)
if __name__ == '__main__':
#import cProfile
#cProfile.run('unittest.main()')
unittest.main()