public virtual void TestBuild() { try { IndexReader r = IndexReader.Open(userindex); spellChecker.ClearIndex(); Addwords(r, "field1"); int num_field1 = this.Numdoc(); Addwords(r, "field2"); int num_field2 = this.Numdoc(); Assert.AreEqual(num_field2, num_field1 + 1); // test small word System.String[] similar = spellChecker.SuggestSimilar("fvie", 2); Assert.AreEqual(1, similar.Length); Assert.AreEqual(similar[0], "five"); similar = spellChecker.SuggestSimilar("five", 2); Assert.AreEqual(1, similar.Length); Assert.AreEqual(similar[0], "nine"); // don't suggest a word for itself similar = spellChecker.SuggestSimilar("fiv", 2); Assert.AreEqual(1, similar.Length); Assert.AreEqual(similar[0], "five"); similar = spellChecker.SuggestSimilar("ive", 2); Assert.AreEqual(1, similar.Length); Assert.AreEqual(similar[0], "five"); similar = spellChecker.SuggestSimilar("fives", 2); Assert.AreEqual(1, similar.Length); Assert.AreEqual(similar[0], "five"); similar = spellChecker.SuggestSimilar("fie", 2); Assert.AreEqual(1, similar.Length); Assert.AreEqual(similar[0], "five"); similar = spellChecker.SuggestSimilar("fi", 2); Assert.AreEqual(0, similar.Length); // test restraint to a field similar = spellChecker.SuggestSimilar("tousand", 10, r, "field1", false); Assert.AreEqual(0, similar.Length); // there isn't the term thousand in the field field1 similar = spellChecker.SuggestSimilar("tousand", 10, r, "field2", false); Assert.AreEqual(1, similar.Length); // there is the term thousand in the field field2 } catch (System.IO.IOException e) { System.Console.Error.WriteLine(e.StackTrace); Assert.Fail(); } }