public KeyValuePair<RecordKey, RecordData> FindNext(IComparable<RecordKey> keytest, bool equal_ok) { var nested_keytest = new RecordKeyComparator().appendKeyPart(this.subset_name).appendKeyPart(keytest); var rec = next_stage.FindNext(nested_keytest, equal_ok); if (this.subset_name.CompareTo(rec.Key.key_parts[0]) != 0) { throw new KeyNotFoundException("SubsetStage.FindNext: no more records"); } RecordKeyType_RecordKey orig_key = (RecordKeyType_RecordKey)rec.Key.key_parts[1]; // strip off the prefix return new KeyValuePair<RecordKey, RecordData>(orig_key.GetRecordKey(), rec.Value); }
public void T12_RecordKey_Bug() { var testkey = new RecordKey().appendParsedKey(".zdata/index/fax"); var jeskekey = new RecordKey().appendParsedKey(".zdata/index/jeske"); var jeske2key = new RecordKey().appendParsedKey(".zdata/index/jeske").appendKeyPart(""); var jeske2keyAP = RecordKey.AfterPrefix(jeske2key); Assert.True(jeskekey.CompareTo(testkey) > 0, "1"); Assert.True(jeske2key.CompareTo(testkey) > 0, "2"); Assert.True(jeske2keyAP.CompareTo(testkey) > 0, "3"); RecordKeyComparator startrk = new RecordKeyComparator() .appendKeyPart(jeske2key); Assert.True(startrk.CompareTo(testkey) > 0, "4"); }
public void T11_RecordKey_ComposableIComparableTest() { IComparable<RecordKey> start_keytest = new RecordKeyComparator() .appendParsedKey(".ROOT/GEN") .appendKeyPart(new RecordKeyType_Long(1)) .appendKeyPart(RecordKey.AfterPrefix(new RecordKey().appendParsedKey("B"))); var range_a = new RecordKey() .appendParsedKey(".ROOT/GEN") .appendKeyPart(new RecordKeyType_Long(1)) .appendKeyPart(new RecordKey().appendKeyPart("A")); var range_c = new RecordKey() .appendParsedKey(".ROOT/GEN") .appendKeyPart(new RecordKeyType_Long(1)) .appendKeyPart(new RecordKey().appendKeyPart("C")); Assert.True(start_keytest.CompareTo(range_a) > 0, "after range a"); Assert.True(start_keytest.CompareTo(range_c) < 0, "before range c"); var random_key = new RecordKey() .appendParsedKey(".ROOT/GEN") .appendKeyPart(new RecordKeyType_Long(1)) .appendParsedKey("a"); Assert.True(start_keytest.CompareTo(random_key) > 0, "should be after this random_key"); }