END_TEST START_TEST (words_with_unknown_letters_should_be_rejected) { int rc = varnam_learn (varnam_instance, "test"); if (rc != VARNAM_ERROR) { ck_abort_msg ("Expected return code to be VARNAM_ERROR"); } ck_assert_str_eq (varnam_get_last_error (varnam_instance), "Can't process 't'. One or more characters in 'test' are not known"); }
END_TEST START_TEST (numbers_will_be_ignored_while_learning) { int rc; strbuf *string; rc = varnam_learn (varnam_instance, "01"); assert_error (rc); string = strbuf_init (50); strbuf_add (string, "Can't process '0'. One or more characters in '01' are not known"); ck_assert_str_eq (varnam_get_last_error (varnam_instance), strbuf_to_s (string)); rc = varnam_learn (varnam_instance, "१०१"); assert_error (rc); strbuf_clear (string); strbuf_add (string, "Nothing to learn from '१०१'"); ck_assert_str_eq (varnam_get_last_error (varnam_instance), strbuf_to_s (string)); strbuf_destroy (string); }
void assert_error (int value) { strbuf *string = NULL; if (value != VARNAM_ERROR) { string = strbuf_init (50); strbuf_addf (string, "Expected VARNAM_ERROR, but got %d. %s", value, varnam_get_last_error (varnam_instance)); ck_abort_msg (strbuf_to_s (string)); } }
END_TEST START_TEST (words_with_repeating_characters_will_not_be_learned) { int rc; strbuf *string; const char *word_to_learn = "കകകകകകക"; rc = varnam_learn (varnam_instance, word_to_learn); assert_error (rc); string = strbuf_init (50); strbuf_addf (string, "'%s' looks incorrect. Not learning anything", word_to_learn); ck_assert_str_eq (varnam_get_last_error (varnam_instance), strbuf_to_s (string)); strbuf_destroy (string); }
END_TEST START_TEST (varnam_import_learnings_wrong_filetype) { FILE* fp; int rc; fp = fopen ("output/wrong_file_type.txt", "w"); ck_assert (fp != NULL); fprintf (fp, "%s\n", "Wrong filetype"); fclose (fp); rc = varnam_import_learnings_from_file (varnam_instance, "output/wrong_file_type.txt", NULL); ck_assert_int_eq (rc, VARNAM_ERROR); ck_assert_str_eq ("Couldn't read file 'output/wrong_file_type.txt'. Unknown file type", varnam_get_last_error (varnam_instance)); }