protected void checkReturnedTuple(OrderedIndexTestContext ctx, ITupleReference tuple, ISerializerDeserializer[] fieldSerdes, int componentPos, boolean antimatter, Object value) throws HyracksDataException { int actualComponentPos = IntegerPointable.getInteger(tuple.getFieldData(0), tuple.getFieldStart(0)); Assert.assertEquals("Check returned component position", componentPos, actualComponentPos); boolean actualAntiMatter = BooleanPointable.getBoolean(tuple.getFieldData(1), tuple.getFieldStart(1)); Assert.assertEquals("Check returned anti-matter flag", antimatter, actualAntiMatter); int[] permutation = new int[ctx.getFieldCount()]; for (int i = 0; i < permutation.length; i++) { permutation[i] = i + 2; } PermutingTupleReference originalTuple = new PermutingTupleReference(permutation); originalTuple.reset(tuple); for (int i = 0; i < fieldSerdes.length; i++) { ByteArrayInputStream inStream = new ByteArrayInputStream(originalTuple.getFieldData(i), originalTuple.getFieldStart(i), originalTuple.getFieldLength(i)); DataInput dataIn = new DataInputStream(inStream); Object actualObj = fieldSerdes[i].deserialize(dataIn); if (!actualObj.equals(value)) { fail("Actual and expected fields do not match on field " + i + ".\nExpected: " + value + "\nActual : " + actualObj); } } }