@Test
public void testCombiner() throws IOException {
addRecord(shard1, 1, "C1", "C2", "C3");
addRecord(shard1, 2, "C2", "C3", "C4");
addRecord(shard1, 3, "C1", "C2", "C3");
addRecord(shard2, 4, "C2", "C3", "C4");
addRecord(shard2, 5, "C1", "C4", "C5");
addRecord(shard2, 6, "C1", "C2", "C3");
addRecord(shard3, 7, "C4", "C5", "C6");
HollowCombiner combiner = new HollowCombiner(roundTrip(shard1), roundTrip(shard2), roundTrip(shard3));
combiner.combine();
HollowReadStateEngine combinedResult = roundTrip(combiner.getCombinedStateEngine());
Assert.assertEquals(6, combinedResult.getTypeState("A").maxOrdinal());
Assert.assertEquals(3, combinedResult.getTypeState("B").maxOrdinal());
Assert.assertEquals(5, combinedResult.getTypeState("C").maxOrdinal());
HollowSetTypeReadState bTypeState = (HollowSetTypeReadState)combinedResult.getTypeState("B");
Assert.assertTrue(setOrderingExists(bTypeState, "C1", "C2", "C3"));
Assert.assertTrue(setOrderingExists(bTypeState, "C2", "C3", "C4"));
Assert.assertTrue(setOrderingExists(bTypeState, "C1", "C4", "C5"));
Assert.assertTrue(setOrderingExists(bTypeState, "C4", "C5", "C6"));
}