public void T000_TestBasic_SubsetScanAll()
{
LayerManager db = new LayerManager(InitMode.NEW_REGION, "c:\\BENDtst\\subset");
var stage1 = new StepsStageSubset(new RecordKeyType_String("stage1"), db);
var stage2 = new StepsStageSubset(new RecordKeyType_String("stage2"), db);
string[] keys = new string[] { "1/2/3", "1/3/4", "1/5/3" };
foreach (var key in keys) {
stage1.setValue(new RecordKey().appendParsedKey(key), RecordUpdate.WithPayload("st1 data:" + key));
stage2.setValue(new RecordKey().appendParsedKey(key), RecordUpdate.WithPayload("st2 data:" + key));
}
// TODO: check the data contents also to make sure we actually saw the right rows
{
int count = 0;
foreach (var row in stage1.scanForward(ScanRange<RecordKey>.All())) {
var match_key = new RecordKey().appendParsedKey(keys[count]);
Assert.True(match_key.CompareTo(row.Key) == 0, "scan key mismatch");
Console.WriteLine("scanned: " + row);
count++;
}
Assert.AreEqual(keys.Length, count, "incorrect number of keys in stage1 scan");
}
{
int count = 0;
foreach (var row in stage2.scanForward(ScanRange<RecordKey>.All())) {
var match_key = new RecordKey().appendParsedKey(keys[count]);
Assert.True(match_key.CompareTo(row.Key) == 0, "scan key mismatch");
Console.WriteLine("scanned: " + row);
count++;
}
Assert.AreEqual(keys.Length, count, "incorrect number of keys in stage2 scan");
}
}