public virtual void TestAppend() { Random random = Random(); BytesRefArray list = new BytesRefArray(Util.Counter.NewCounter()); IList<string> stringList = new List<string>(); for (int j = 0; j < 2; j++) { if (j > 0 && random.NextBoolean()) { list.Clear(); stringList.Clear(); } int entries = AtLeast(500); BytesRef spare = new BytesRef(); int initSize = list.Size(); for (int i = 0; i < entries; i++) { string randomRealisticUnicodeString = TestUtil.RandomRealisticUnicodeString(random); spare.CopyChars(randomRealisticUnicodeString); Assert.AreEqual(i + initSize, list.Append(spare)); stringList.Add(randomRealisticUnicodeString); } for (int i = 0; i < entries; i++) { Assert.IsNotNull(list.Get(spare, i)); Assert.AreEqual(stringList[i], spare.Utf8ToString(), "entry " + i + " doesn't match"); } // check random for (int i = 0; i < entries; i++) { int e = random.Next(entries); Assert.IsNotNull(list.Get(spare, e)); Assert.AreEqual(stringList[e], spare.Utf8ToString(), "entry " + i + " doesn't match"); } for (int i = 0; i < 2; i++) { BytesRefIterator iterator = list.Iterator(); foreach (string @string in stringList) { Assert.AreEqual(@string, iterator.Next().Utf8ToString()); } } } }
protected override int Compare(int i, int j) { int idx1 = orderedEntries[i], idx2 = orderedEntries[j]; return(comp.Compare(outerInstance.Get(scratch1, idx1), outerInstance.Get(scratch2, idx2))); }
protected internal override int Compare(int i, int j) { int idx1 = OrderedEntries[i], idx2 = OrderedEntries[j]; return(Comp.Compare(OuterInstance.Get(scratch1, idx1), OuterInstance.Get(scratch2, idx2))); }