public virtual void TestLongConversionAndOrdering() { // generate a series of encoded longs, each numerical one bigger than the one before BytesRef last = null, act = new BytesRef(NumericUtils.BUF_SIZE_LONG); for (long l = -100000L; l < 100000L; l++) { NumericUtils.LongToPrefixCodedBytes(l, 0, act); if (last != null) { // test if smaller Assert.IsTrue(last.CompareTo(act) < 0, "actual bigger than last (BytesRef)"); //Assert.IsTrue(last.Utf8ToString().CompareTo(act.Utf8ToString()) < 0, "actual bigger than last (as String)"); } // test is back and forward conversion works Assert.AreEqual(l, NumericUtils.PrefixCodedToLong(act), "forward and back conversion should generate same long"); // next step last = act; act = new BytesRef(NumericUtils.BUF_SIZE_LONG); } }
public virtual void TestIntConversionAndOrdering() { // generate a series of encoded ints, each numerical one bigger than the one before BytesRef last = null, act = new BytesRef(NumericUtils.BUF_SIZE_INT32); for (int i = -100000; i < 100000; i++) { NumericUtils.Int32ToPrefixCodedBytes(i, 0, act); if (last != null) { // test if smaller Assert.IsTrue(last.CompareTo(act) < 0, "actual bigger than last (BytesRef)"); Assert.IsTrue(last.Utf8ToString().CompareToOrdinal(act.Utf8ToString()) < 0, "actual bigger than last (as String)"); } // test is back and forward conversion works Assert.AreEqual(i, NumericUtils.PrefixCodedToInt32(act), "forward and back conversion should generate same int"); // next step last = act; act = new BytesRef(NumericUtils.BUF_SIZE_INT32); } }
private void CheckTermsOrder(IndexReader r, ISet<string> allTerms, bool isTop) { TermsEnum terms = MultiFields.GetFields(r).Terms("f").Iterator(null); BytesRef last = new BytesRef(); HashSet<string> seenTerms = new HashSet<string>(); while (true) { BytesRef term = terms.Next(); if (term == null) { break; } Assert.IsTrue(last.CompareTo(term) < 0); last.CopyBytes(term); string s = term.Utf8ToString(); Assert.IsTrue(allTerms.Contains(s), "term " + TermDesc(s) + " was not added to index (count=" + allTerms.Count + ")"); seenTerms.Add(s); } if (isTop) { Assert.IsTrue(allTerms.SetEquals(seenTerms)); } // Test seeking: IEnumerator<string> it = seenTerms.GetEnumerator(); while (it.MoveNext()) { BytesRef tr = new BytesRef(it.Current); Assert.AreEqual(TermsEnum.SeekStatus.FOUND, terms.SeekCeil(tr), "seek failed for term=" + TermDesc(tr.Utf8ToString())); } }