[Groonga-commit] groonga/groonga [master] add tests for edit_distance with Japanese.

Back to archive index

null+****@clear***** null+****@clear*****
2010年 8月 24日 (火) 18:46:06 JST


Kouhei Sutou	2010-08-24 09:46:06 +0000 (Tue, 24 Aug 2010)

  New Revision: ee7142b3abb67d07e19187c5d2d6c7298da766c9

  Log:
    add tests for edit_distance with Japanese.

  Modified files:
    test/unit/core/test-function-edit-distance.c

  Modified: test/unit/core/test-function-edit-distance.c (+83 -0)
===================================================================
--- test/unit/core/test-function-edit-distance.c    2010-08-24 09:46:31 +0000 (12f5eb2)
+++ test/unit/core/test-function-edit-distance.c    2010-08-24 09:46:06 +0000 (7aa0c22)
@@ -25,6 +25,8 @@
 
 void data_alphabet(void);
 void test_alphabet(gconstpointer data);
+void data_japanese(void);
+void test_japanese(gconstpointer data);
 
 static gchar *tmp_directory;
 
@@ -157,3 +159,84 @@ test_alphabet(gconstpointer data)
 
   cut_assert_equal_string(expected, send_command(command));
 }
+
+void
+data_japanese(void)
+{
+#define ADD_DATUM(label, expected, string)              \
+    gcut_add_datum(label,                               \
+                   "expected", G_TYPE_STRING, expected, \
+                   "string", G_TYPE_STRING, string,     \
+                   NULL)
+
+    ADD_DATUM("same",
+              "[\"もり\",0],"
+              "[\"たこ\",2],"
+              "[\"たぱ\",2],"
+              "[\"たぽ\",2],"
+              "[\"とぽ\",2],"
+              "[\"ゆう\",2],"
+              "[\"たぽぽ\",3],"
+              "[\"グニャラくん\",6]",
+              "もり");
+
+    ADD_DATUM("long",
+              "[\"たぽ\",2],"
+              "[\"もり\",2],"
+              "[\"たこ\",3],"
+              "[\"たぱ\",3],"
+              "[\"たぽぽ\",3],"
+              "[\"とぽ\",3],"
+              "[\"ゆう\",4],"
+              "[\"グニャラくん\",6]",
+              "もりたぽ");
+
+    ADD_DATUM("short",
+              "[\"もり\",1],"
+              "[\"たこ\",2],"
+              "[\"たぱ\",2],"
+              "[\"たぱ\",2],"
+              "[\"とぽ\",2],"
+              "[\"ゆう\",2],"
+              "[\"たぽぽ\",3],"
+              "[\"グニャラくん\",6]",
+              "も");
+
+#undef ADD_DATUM
+}
+
+void
+test_japanese(gconstpointer data)
+{
+  const gchar *expected, *command;
+
+  assert_send_command("table_create Users TABLE_NO_KEY");
+  assert_send_command("column_create Users name COLUMN_SCALAR ShortText");
+  assert_send_command("load --table Users\n"
+                      "[\n"
+                      "[\"name\"],\n"
+                      "[\"もり\"],\n"
+                      "[\"グニャラくん\"],\n"
+                      "[\"ゆう\"],\n"
+                      "[\"たぽ\"],\n"
+                      "[\"たぽぽ\"],\n"
+                      "[\"たぱ\"],\n"
+                      "[\"たこ\"],\n"
+                      "[\"とぽ\"]\n"
+                      "]");
+
+  expected =
+      cut_take_printf("[[[8],"
+                      "[[\"name\",\"ShortText\"],[\"_score\",\"Int32\"]],"
+                      "%s"
+                      "]]",
+                      gcut_data_get_string(data, "expected"));
+  command = cut_take_printf("select Users "
+                            "--output_columns name,_score "
+                            "--filter true "
+                            "--sortby _score,name "
+                            "--scorer '_score=edit_distance(name, \"%s\")'",
+                            gcut_data_get_string(data, "string"));
+
+  cut_assert_equal_string(expected, send_command(command));
+}




Groonga-commit メーリングリストの案内
Back to archive index