You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2010/11/22 23:10:28 UTC

[lucy-commits] svn commit: r1037909 - in /incubator/lucy/trunk/core/Lucy/Test: Analysis/TestCaseFolder.c TestUtils.c TestUtils.cfh

Author: marvin
Date: Mon Nov 22 22:10:27 2010
New Revision: 1037909

URL: http://svn.apache.org/viewvc?rev=1037909&view=rev
Log:
Port test_analyzer() utility function to C, along with a simple test for
CaseFolder.

Modified:
    incubator/lucy/trunk/core/Lucy/Test/Analysis/TestCaseFolder.c
    incubator/lucy/trunk/core/Lucy/Test/TestUtils.c
    incubator/lucy/trunk/core/Lucy/Test/TestUtils.cfh

Modified: incubator/lucy/trunk/core/Lucy/Test/Analysis/TestCaseFolder.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Test/Analysis/TestCaseFolder.c?rev=1037909&r1=1037908&r2=1037909&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Test/Analysis/TestCaseFolder.c (original)
+++ incubator/lucy/trunk/core/Lucy/Test/Analysis/TestCaseFolder.c Mon Nov 22 22:10:27 2010
@@ -18,6 +18,7 @@
 #include "Lucy/Util/ToolSet.h"
 
 #include "Lucy/Test.h"
+#include "Lucy/Test/TestUtils.h"
 #include "Lucy/Test/Analysis/TestCaseFolder.h"
 #include "Lucy/Analysis/CaseFolder.h"
 
@@ -40,14 +41,26 @@ test_Dump_Load_and_Equals(TestBatch *bat
     DECREF(clone);
 }
 
+static void
+test_analysis(TestBatch *batch)
+{
+    CaseFolder *case_folder = CaseFolder_new();
+    CharBuf *source = CB_newf("caPiTal ofFensE");
+    VArray *wanted = VA_new(1);
+    VA_Push(wanted, (Obj*)CB_newf("capital offense"));
+    TestUtils_test_analyzer(batch, (Analyzer*)case_folder, source, wanted, 
+        "lowercase plain text");
+}
+
 void
 TestCaseFolder_run_tests()
 {
-    TestBatch *batch = TestBatch_new(3);
+    TestBatch *batch = TestBatch_new(6);
 
     TestBatch_Plan(batch);
 
     test_Dump_Load_and_Equals(batch);
+    test_analysis(batch);
 
     DECREF(batch);
 }

Modified: incubator/lucy/trunk/core/Lucy/Test/TestUtils.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Test/TestUtils.c?rev=1037909&r1=1037908&r2=1037909&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Test/TestUtils.c (original)
+++ incubator/lucy/trunk/core/Lucy/Test/TestUtils.c Mon Nov 22 22:10:27 2010
@@ -20,6 +20,10 @@
 #include <string.h>
 
 #include "Lucy/Test/TestUtils.h"
+#include "Lucy/Test.h"
+#include "Lucy/Analysis/Analyzer.h"
+#include "Lucy/Analysis/Inversion.h"
+#include "Lucy/Analysis/Token.h"
 #include "Lucy/Search/TermQuery.h"
 #include "Lucy/Search/PhraseQuery.h"
 #include "Lucy/Search/LeafQuery.h"
@@ -202,4 +206,42 @@ TestUtils_freeze_thaw(Obj *object)
     }
 }
 
+void
+TestUtils_test_analyzer(TestBatch *batch, Analyzer *analyzer, CharBuf *source,
+                        VArray *expected, char *message)
+{
+    Token *seed = Token_new((char*)CB_Get_Ptr8(source),
+        CB_Get_Size(source), 0, 0, 1.0f, 1);
+    Inversion *starter = Inversion_new(seed);
+    Inversion *transformed = Analyzer_Transform(analyzer, starter);
+    VArray *got = VA_new(1);
+    Token *token;
+    while (NULL != (token = Inversion_Next(transformed))) {
+        CharBuf *token_text 
+            = CB_new_from_utf8(Token_Get_Text(token), Token_Get_Len(token));
+        VA_Push(got, (Obj*)token_text);
+    }
+    TEST_TRUE(batch, VA_Equals(expected, (Obj*)got), 
+        "Transform(): %s", message);
+    DECREF(transformed);
+
+    transformed = Analyzer_Transform_Text(analyzer, source);
+    VA_Clear(got);
+    while (NULL != (token = Inversion_Next(transformed))) {
+        CharBuf *token_text 
+            = CB_new_from_utf8(Token_Get_Text(token), Token_Get_Len(token));
+        VA_Push(got, (Obj*)token_text);
+    }
+    TEST_TRUE(batch, VA_Equals(expected, (Obj*)got), 
+        "Transform_Text(): %s", message);
+    DECREF(transformed);
+
+    DECREF(got);
+    got = Analyzer_Split(analyzer, source);
+    TEST_TRUE(batch, VA_Equals(expected, (Obj*)got), "Split(): %s", message);
+
+    DECREF(got);
+    DECREF(starter);
+}
+
 

Modified: incubator/lucy/trunk/core/Lucy/Test/TestUtils.cfh
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Test/TestUtils.cfh?rev=1037909&r1=1037908&r2=1037909&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Test/TestUtils.cfh (original)
+++ incubator/lucy/trunk/core/Lucy/Test/TestUtils.cfh Mon Nov 22 22:10:27 2010
@@ -101,6 +101,12 @@ inert class Lucy::Test::TestUtils  {
      */
     inert incremented Obj*
     freeze_thaw(Obj *object);
+
+    /** Verify an Analyzer's transform, transform_text, and split methods.
+     */
+    inert void
+    test_analyzer(TestBatch *batch, Analyzer *analyzer, CharBuf *source,
+                  VArray *expected, char *message);
 }
 
 __C__