refine tests
authorPeng Wu <alexepico@gmail.com>
Fri, 18 May 2012 03:09:30 +0000 (11:09 +0800)
committerPeng Wu <alexepico@gmail.com>
Fri, 18 May 2012 03:09:30 +0000 (11:09 +0800)
tests/Makefile.am
tests/lookup/test_phrase_lookup.cpp
tests/lookup/test_pinyin_lookup.cpp
tests/tests_helper.h [new file with mode: 0644]

index 6cc9e51..1c0bf09 100644 (file)
@@ -30,7 +30,8 @@ INCLUDES                = -I$(top_srcdir)/src \
                           -I$(top_srcdir)/src/lookup \
                           @GLIB2_CPPFLAGS@
 
-noinst_HEADERS          = timer.h
+noinst_HEADERS          = timer.h \
+                         tests_helper.h
 
 noinst_PROGRAMS         = test_pinyin \
                          test_phrase \
@@ -46,4 +47,4 @@ test_phrase_LDADD     = ../src/libpinyin.la @GLIB2_LDFLAGS@
 
 test_chewing_SOURCES   = test_chewing.cpp
 
-test_chewing_LDADD     = ../src/libpinyin.la @GLIB2_LDFLAGS@
\ No newline at end of file
+test_chewing_LDADD     = ../src/libpinyin.la @GLIB2_LDFLAGS@
index 3d5fbec..42a715f 100644 (file)
@@ -23,6 +23,7 @@
 #include <stdio.h>
 #include <locale.h>
 #include "pinyin_internal.h"
+#include "tests_helper.h"
 
 void print_help(){
     printf("Usage: test_phrase_lookup\n");
@@ -77,23 +78,8 @@ int main(int argc, char * argv[]){
 
     /* init phrase index */
     FacadePhraseIndex phrase_index;
-    for (size_t i = 0; i < PHRASE_INDEX_LIBRARY_COUNT; ++i) {
-        const char * bin_file = pinyin_phrase_files[i];
-        if (NULL == bin_file)
-            continue;
-
-        gchar * filename = g_build_filename("..", "..", "data",
-                                            bin_file, NULL);
-        chunk = new MemoryChunk;
-        bool retval = chunk->load(filename);
-        if (!retval) {
-            fprintf(stderr, "open %s failed!\n", bin_file);
-            exit(ENOENT);
-        }
-
-        phrase_index.load(i, chunk);
-        g_free(filename);
-    }
+    if (!init_phrase_index(&phrase_index))
+        exit(ENOENT);
 
     /* init bi-gram */
     Bigram system_bigram;
index 4bb07ef..6aa34a9 100644 (file)
@@ -1,6 +1,29 @@
+/* 
+ *  libpinyin
+ *  Library to deal with pinyin.
+ *  
+ *  Copyright (C) 2012 Peng Wu <alexepico@gmail.com>
+ *  
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ * 
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *  GNU General Public License for more details.
+ *  
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+
 #include "timer.h"
 #include <string.h>
 #include "pinyin_internal.h"
+#include "tests_helper.h"
 
 size_t bench_times = 100;
 
@@ -15,23 +38,8 @@ int main( int argc, char * argv[]){
     largetable.load(options, chunk, NULL);
 
     FacadePhraseIndex phrase_index;
-    for (size_t i = 0; i < PHRASE_INDEX_LIBRARY_COUNT; ++i) {
-        const char * bin_file = pinyin_phrase_files[i];
-        if (NULL == bin_file)
-            continue;
-
-        gchar * filename = g_build_filename("..", "..", "data",
-                                            bin_file, NULL);
-        chunk = new MemoryChunk;
-        bool retval = chunk->load(filename);
-        if (!retval) {
-            fprintf(stderr, "open %s failed!\n", bin_file);
-            exit(ENOENT);
-        }
-
-        phrase_index.load(i, chunk);
-        g_free(filename);
-    }
+    if (!init_phrase_index(&phrase_index))
+        exit(ENOENT);
 
     Bigram system_bigram;
     system_bigram.attach("../../data/bigram.db", ATTACH_READONLY);
diff --git a/tests/tests_helper.h b/tests/tests_helper.h
new file mode 100644 (file)
index 0000000..b6cda61
--- /dev/null
@@ -0,0 +1,47 @@
+/* 
+ *  libpinyin
+ *  Library to deal with pinyin.
+ *  
+ *  Copyright (C) 2012 Peng Wu <alexepico@gmail.com>
+ *  
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ * 
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *  GNU General Public License for more details.
+ *  
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+#ifndef TESTS_HELPER_H
+#define TESTS_HELPER_H
+
+static bool init_phrase_index(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)
+            continue;
+
+        gchar * filename = g_build_filename("..", "..", "data",
+                                            bin_file, NULL);
+        chunk = new MemoryChunk;
+        bool retval = chunk->load(filename);
+        if (!retval) {
+            fprintf(stderr, "open %s failed!\n", bin_file);
+            return false;
+        }
+
+        phrase_index->load(i, chunk);
+        g_free(filename);
+    }
+    return true;
+}
+
+#endif