#ifndef TESTS_HELPER_H
#define TESTS_HELPER_H
-static bool init_phrase_index(FacadePhraseIndex * phrase_index){
+static bool load_phrase_index(const pinyin_table_info_t * phrase_files,
+ FacadePhraseIndex * phrase_index){
MemoryChunk * chunk = NULL;
for (size_t i = 0; i < PHRASE_INDEX_LIBRARY_COUNT; ++i) {
- const char * bin_file = pinyin_phrase_files[i];
- if (NULL == bin_file)
+ const pinyin_table_info_t * table_info = phrase_files + i;
+
+ if (SYSTEM_FILE != table_info->m_file_type)
continue;
+ const char * binfile = table_info->m_system_filename;
+
gchar * filename = g_build_filename("..", "..", "data",
- bin_file, NULL);
+ binfile, NULL);
chunk = new MemoryChunk;
bool retval = chunk->load(filename);
if (!retval) {
- fprintf(stderr, "open %s failed!\n", bin_file);
+ fprintf(stderr, "open %s failed!\n", binfile);
+ delete chunk;
return false;
}
return true;
}
+static bool load_phrase_table(const pinyin_table_info_t * phrase_files,
+ ChewingLargeTable * chewing_table,
+ PhraseLargeTable2 * phrase_table,
+ FacadePhraseIndex * phrase_index){
+ for (size_t i = 0; i < PHRASE_INDEX_LIBRARY_COUNT; ++i) {
+ const pinyin_table_info_t * table_info = phrase_files + i;
+
+ if (SYSTEM_FILE != table_info->m_file_type)
+ continue;
+
+ const char * tablename = table_info->m_table_filename;
+
+ gchar * filename = g_build_filename("..", "..", "data",
+ tablename, NULL);
+ FILE * tablefile = fopen(filename, "r");
+ if (NULL == tablefile) {
+ fprintf(stderr, "open %s failed!\n", tablename);
+ return false;
+ }
+ g_free(filename);
+
+ if (chewing_table)
+ chewing_table->load_text(tablefile);
+ fseek(tablefile, 0L, SEEK_SET);
+ if (phrase_table)
+ phrase_table->load_text(tablefile);
+ fseek(tablefile, 0L, SEEK_SET);
+ if (phrase_index)
+ phrase_index->load_text(i, tablefile);
+ fclose(tablefile);
+ }
+ return true;
+}
+
#endif