Browse Source

Test ReadClause with a Latin-character sentence.

master
Reece H. Dunn 8 years ago
parent
commit
f94f7effcd
1 changed files with 37 additions and 2 deletions
  1. 37
    2
      tests/readclause.c

+ 37
- 2
tests/readclause.c View File

if (p_decoder == NULL) if (p_decoder == NULL)
p_decoder = create_text_decoder(); p_decoder = create_text_decoder();


count_characters = 0;
return text_decoder_decode_string(p_decoder, text, -1, ESPEAKNG_ENCODING_UTF_8); return text_decoder_decode_string(p_decoder, text, -1, ESPEAKNG_ENCODING_UTF_8);
} }


{ {
printf("testing Latin (Latn)\n"); printf("testing Latin (Latn)\n");


assert(clause_type_from_codepoint('a') == CLAUSE_NONE);
assert(clause_type_from_codepoint('.') == CLAUSE_PERIOD);
assert(clause_type_from_codepoint('?') == CLAUSE_QUESTION); assert(clause_type_from_codepoint('?') == CLAUSE_QUESTION);
assert(clause_type_from_codepoint('!') == CLAUSE_EXCLAMATION); assert(clause_type_from_codepoint('!') == CLAUSE_EXCLAMATION);
assert(clause_type_from_codepoint(',') == CLAUSE_COMMA); assert(clause_type_from_codepoint(',') == CLAUSE_COMMA);
assert(clause_type_from_codepoint(0x2026) == (CLAUSE_SEMICOLON | CLAUSE_SPEAK_PUNCTUATION_NAME | CLAUSE_OPTIONAL_SPACE_AFTER)); assert(clause_type_from_codepoint(0x2026) == (CLAUSE_SEMICOLON | CLAUSE_SPEAK_PUNCTUATION_NAME | CLAUSE_OPTIONAL_SPACE_AFTER));
} }


void
test_latin_sentence()
{
printf("testing Latin (Latn) ... sentence\n");

assert(clause_type_from_codepoint('a') == CLAUSE_NONE);
assert(clause_type_from_codepoint('.') == CLAUSE_PERIOD);

short retix[] = {
0, 2, 3, 4, 5, 6, // Jane
0, 8, 9, 10, 11, 12, 13, 14, 15, // finished
0, 17, 18, // #1
0, 20, 21, // in
0, 23, 24, 25, // the
0, 27, 28, 29, 30, // race
0 };

assert(set_text("Janet finished #1 in the race.", "en") == ENS_OK);

charix_top = 0;
assert(ReadClause(translator, source, charix, &charix_top, N_TR_SOURCE, &tone2, voice_change_name) == (CLAUSE_PERIOD | CLAUSE_DOT_AFTER_LAST_WORD));
assert(!strcmp(source, "Janet finished #1 in the race "));
assert(charix_top == (sizeof(retix)/sizeof(retix[0])) - 2);
assert(!memcmp(charix, retix, sizeof(retix)));
assert(tone2 == 0);
assert(voice_change_name[0] == 0);

charix_top = 0;
assert(ReadClause(translator, source, charix, &charix_top, N_TR_SOURCE, &tone2, voice_change_name) == CLAUSE_EOF);
assert(!strcmp(source, " "));
assert(charix_top == 0);
}

void void
test_greek() test_greek()
{ {
"\xF0\x9F\x90\xAC", // [1F42C] dolphin "\xF0\x9F\x90\xAC", // [1F42C] dolphin
"en") == ENS_OK); "en") == ENS_OK);


charix_top = 0;
assert(ReadClause(translator, source, charix, &charix_top, N_TR_SOURCE, &tone2, voice_change_name) == CLAUSE_EOF); assert(ReadClause(translator, source, charix, &charix_top, N_TR_SOURCE, &tone2, voice_change_name) == CLAUSE_EOF);
assert(!strcmp(source, assert(!strcmp(source,
"\xE2\x86\x94" // [2194] left right arrow "\xE2\x86\x94" // [2194] left right arrow
assert(espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS, 0, NULL, espeakINITIALIZE_DONT_EXIT) == 22050); assert(espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS, 0, NULL, espeakINITIALIZE_DONT_EXIT) == 22050);


test_latin(); test_latin();
test_latin_sentence();

test_greek(); test_greek();
test_armenian(); test_armenian();
test_arabic(); test_arabic();

Loading…
Cancel
Save