You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2011/09/15 17:25:08 UTC

svn commit: r1171133 - in /lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src: java/org/apache/lucene/search/suggest/fst/FSTLookup.java test/org/apache/lucene/search/suggest/fst/FSTLookupTest.java

Author: dweiss
Date: Thu Sep 15 15:25:07 2011
New Revision: 1171133

URL: http://svn.apache.org/viewvc?rev=1171133&view=rev
Log:
Backporting test changes.

Modified:
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTLookup.java
    lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FSTLookupTest.java

Modified: lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTLookup.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTLookup.java?rev=1171133&r1=1171132&r2=1171133&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTLookup.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/java/org/apache/lucene/search/suggest/fst/FSTLookup.java Thu Sep 15 15:25:07 2011
@@ -335,7 +335,7 @@ public class FSTLookup extends Lookup {
         // so we will collect it too.
         output.setLength(matchLength);
         if (collect(res, num, weight, output, arc) && greedy) {
-          // We have enough suggestion to return immediately. Keep on looking for an
+          // We have enough suggestions to return immediately. Keep on looking for an
           // exact match, if requested.
           if (exactMatchFirst) {
             Float exactMatchWeight = getExactMatchStartingFromRootArc(i, key);

Modified: lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FSTLookupTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FSTLookupTest.java?rev=1171133&r1=1171132&r2=1171133&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FSTLookupTest.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/spellchecker/src/test/org/apache/lucene/search/suggest/fst/FSTLookupTest.java Thu Sep 15 15:25:07 2011
@@ -43,6 +43,12 @@ public class FSTLookupTest extends Lucen
 
   public void setUp() throws Exception {
     super.setUp();
+
+    lookup = new FSTLookup();
+    lookup.build(new TermFreqArrayIterator(evalKeys()));
+  }
+
+  private TermFreq[] evalKeys() {
     final TermFreq[] keys = new TermFreq[] {
         tf("one", 0.5f),
         tf("oneness", 1),
@@ -61,9 +67,7 @@ public class FSTLookupTest extends Lucen
         tf("fourty", 1),
         tf("xo", 1),
       };
-
-      lookup = new FSTLookup();
-      lookup.build(new TermFreqArrayIterator(keys));
+    return keys;
   }
 
   public void testExactMatchHighPriority() throws Exception {
@@ -76,6 +80,31 @@ public class FSTLookupTest extends Lucen
         "oneness/1.0");
   }
 
+  public void testRequestedCount() throws Exception {
+    // 'one' is promoted after collecting two higher ranking results.
+    assertMatchEquals(lookup.lookup("one", true, 2), 
+        "one/0.0", 
+        "oneness/1.0");
+
+    // 'one' is at the top after collecting all alphabetical results. 
+    assertMatchEquals(lookup.lookup("one", false, 2), 
+        "one/0.0", 
+        "oneness/1.0");
+
+    lookup = new FSTLookup(10, false);
+    lookup.build(new TermFreqArrayIterator(evalKeys()));
+    
+    // 'one' is not promoted after collecting two higher ranking results.
+    assertMatchEquals(lookup.lookup("one", true, 2),  
+        "oneness/1.0",
+        "onerous/1.0");
+
+    // 'one' is at the top after collecting all alphabetical results. 
+    assertMatchEquals(lookup.lookup("one", false, 2), 
+        "one/0.0", 
+        "oneness/1.0");
+  }
+
   public void testMiss() throws Exception {
     assertMatchEquals(lookup.lookup("xyz", true, 1));
   }