Lucene.Net.Index.TestTermsEnum.TestRandomTerms C# (CSharp) Method

TestRandomTerms() private method

private TestRandomTerms ( ) : void
return void
        public virtual void TestRandomTerms()
        {
            var terms = new string[TestUtil.NextInt(Random(), 1, AtLeast(1000))];
            var seen = new HashSet<string>();

            var allowEmptyString = Random().NextBoolean();

            if (Random().Next(10) == 7 && terms.Length > 2)
            {
                // Sometimes add a bunch of terms sharing a longish common prefix:
                int numTermsSamePrefix = Random().Next(terms.Length / 2);
                if (numTermsSamePrefix > 0)
                {
                    string prefix;
                    while (true)
                    {
                        prefix = RandomString;
                        if (prefix.Length < 5)
                        {
                            continue;
                        }
                        else
                        {
                            break;
                        }
                    }
                    while (seen.Count < numTermsSamePrefix)
                    {
                        string t = prefix + RandomString;
                        if (!seen.Contains(t))
                        {
                            terms[seen.Count] = t;
                            seen.Add(t);
                        }
                    }
                }
            }

            while (seen.Count < terms.Length)
            {
                string t = RandomString;
                if (!seen.Contains(t) && (allowEmptyString || t.Length != 0))
                {
                    terms[seen.Count] = t;
                    seen.Add(t);
                }
            }

            using (var d = NewDirectory())
            using (var r = MakeIndex(d, terms))
            {
                TestRandomSeeks(r, terms);
            }
        }