Lucene.Net.Analysis.Ngram.NGramTokenFilterTest.TestSupplementaryCharacters C# (CSharp) Method

TestSupplementaryCharacters() private method

private TestSupplementaryCharacters ( ) : void
return void
        public virtual void TestSupplementaryCharacters()
        {
            string s = TestUtil.RandomUnicodeString(Random(), 10);
            int codePointCount = Character.CodePointCount(s, 0, s.Length);
            int minGram = TestUtil.NextInt(Random(), 1, 3);
            int maxGram = TestUtil.NextInt(Random(), minGram, 10);
            TokenStream tk = new KeywordTokenizer(new StringReader(s));
            tk = new NGramTokenFilter(TEST_VERSION_CURRENT, tk, minGram, maxGram);
            ICharTermAttribute termAtt = tk.AddAttribute<ICharTermAttribute>();
            IOffsetAttribute offsetAtt = tk.AddAttribute<IOffsetAttribute>();
            tk.Reset();
            for (int start = 0; start < codePointCount; ++start)
            {
                for (int end = start + minGram; end <= Math.Min(codePointCount, start + maxGram); ++end)
                {
                    assertTrue(tk.IncrementToken());
                    assertEquals(0, offsetAtt.StartOffset());
                    assertEquals(s.Length, offsetAtt.EndOffset());
                    int startIndex = Character.OffsetByCodePoints(s, 0, start);
                    int endIndex = Character.OffsetByCodePoints(s, 0, end);
                    assertEquals(s.Substring(startIndex, endIndex - startIndex), termAtt.ToString());
                }
            }
            assertFalse(tk.IncrementToken());
        }
    }