Fix tests

This commit is contained in:
Michael Hansen
2023-09-07 13:26:58 -05:00
parent 7cc6ac2a63
commit efd3c9048f
+28 -8
View File
@@ -11,13 +11,28 @@ CLAUSE_INTONATION_FULL_STOP = 0x00000000
CLAUSE_INTONATION_COMMA = 0x00001000
CLAUSE_INTONATION_QUESTION = 0x00002000
CLAUSE_INTONATION_EXCLAMATION = 0x00003000
CLAUSE_INTONATION_NONE = 0x00004000
CLAUSE_TYPE_NONE = 0x00000000
CLAUSE_TYPE_EOF = 0x00010000
CLAUSE_TYPE_CLAUSE = 0x00040000
CLAUSE_TYPE_SENTENCE = 0x00080000
EXPECTED_PHONEMES = """ðˈɪs, ˌaɪˌɛsˈeɪ tˈɛst!
CLAUSE_NONE = 0 | CLAUSE_INTONATION_NONE | CLAUSE_TYPE_NONE
CLAUSE_PARAGRAPH = 70 | CLAUSE_INTONATION_FULL_STOP | CLAUSE_TYPE_SENTENCE
CLAUSE_EOF = 40 | CLAUSE_INTONATION_FULL_STOP | CLAUSE_TYPE_SENTENCE | CLAUSE_TYPE_EOF
CLAUSE_PERIOD = 40 | CLAUSE_INTONATION_FULL_STOP | CLAUSE_TYPE_SENTENCE
CLAUSE_COMMA = 20 | CLAUSE_INTONATION_COMMA | CLAUSE_TYPE_CLAUSE
CLAUSE_QUESTION = 40 | CLAUSE_INTONATION_QUESTION | CLAUSE_TYPE_SENTENCE
CLAUSE_EXCLAMATION = 45 | CLAUSE_INTONATION_EXCLAMATION | CLAUSE_TYPE_SENTENCE
CLAUSE_COLON = 30 | CLAUSE_INTONATION_FULL_STOP | CLAUSE_TYPE_CLAUSE
CLAUSE_SEMICOLON = 30 | CLAUSE_INTONATION_COMMA | CLAUSE_TYPE_CLAUSE
EXPECTED_PHONEMES = """ðˈɪs, ˌaɪˌɛsˈeɪ; ɡˈʊd: tˈɛst!
ˌoʊkˈeɪ?
"""
def main() -> None:
"""Verify espeak_TextToPhonemesWithTerminator function"""
lib = ctypes.cdll.LoadLibrary("libespeak-ng.so")
@@ -34,7 +49,7 @@ def main() -> None:
lib.espeak_TextToPhonemesWithTerminator.restype = ctypes.c_char_p
# Should split into 3 sentences, highlighting each punctuation type.
text = "this, I.S. a test! ok?"
text = "this, I.S. a; good: test! ok?"
text_bytes = text.encode("utf-8")
text_pointer = ctypes.c_char_p(text_bytes)
@@ -54,14 +69,17 @@ def main() -> None:
phonemes += clause_phonemes.decode()
# Check for punctuation.
# The testing order here is critical.
if (terminator.value & CLAUSE_INTONATION_EXCLAMATION) == CLAUSE_INTONATION_EXCLAMATION:
if terminator.value == CLAUSE_EXCLAMATION:
phonemes += "!"
elif (terminator.value & CLAUSE_INTONATION_QUESTION) == CLAUSE_INTONATION_QUESTION:
elif terminator.value == CLAUSE_QUESTION:
phonemes += "?"
elif (terminator.value & CLAUSE_INTONATION_COMMA) == CLAUSE_INTONATION_COMMA:
elif terminator.value == CLAUSE_COMMA:
phonemes += ","
elif (terminator.value & CLAUSE_INTONATION_FULL_STOP) == CLAUSE_INTONATION_FULL_STOP:
elif terminator.value == CLAUSE_COLON:
phonemes += ":"
elif terminator.value == CLAUSE_SEMICOLON:
phonemes += ";"
elif terminator.value == CLAUSE_PERIOD:
phonemes += "."
# Check for end of sentence
@@ -70,7 +88,9 @@ def main() -> None:
else:
phonemes += " "
assert phonemes == EXPECTED_PHONEMES, f"Expected: {EXPECTED_PHONEMES}\n Got: {phonemes}"
assert (
phonemes == EXPECTED_PHONEMES
), f"Expected: {EXPECTED_PHONEMES}\n Got: {phonemes}"
print("It works!")