* @param indexName Name of index to compare to.
* @throws Exception On error.
*/
private void testKeyToObjectInternal(int tableId, int expectedRowCount, String indexName) throws Exception {
final Table table = getTable(tableId);
final Index index = table.getIndex(indexName);
assertNotNull("expected index named: "+indexName, index);
final List<Row> allRows = scanAll(tableId);
assertEquals("rows scanned", expectedRowCount, allRows.size());
final Iterator<Row> rowIt = allRows.iterator();
store().traverse(session(), index, new IndexVisitor<Key,Value>() {
private int rowCounter = 0;
@Override
protected void visit(Key key, Value value) {
if(!rowIt.hasNext()) {
Assert.fail("More index entries than rows: rows("+allRows+") index("+index+")");
}
final Row row = rowIt.next();
key.indexTo(0);
for(IndexColumn indexColumn : index.getKeyColumns()) {
Column column = indexColumn.getColumn();
int colPos = column.getPosition();
Object objFromRow = ValueSources.toObject(row.value(colPos));
PersistitKeyValueSource valueSource = new PersistitKeyValueSource(indexColumn.getColumn().getType());
valueSource.attach(key, indexColumn);