use of com.amplifyframework.predictions.models.Cell in project amplify-android by aws-amplify.
the class TextractResultTransformersTest method testTableConversion.
/**
* Tests that the graph of related blocks from Textract is properly
* converted to an Amplify table item.
*/
@Test
public void testTableConversion() {
Block cellTextBlock = new Block().withId(RandomString.string()).withText(RandomString.string());
Block cellSelectionBlock = new Block().withId(RandomString.string()).withSelectionStatus(SelectionStatus.SELECTED);
Block cellBlock = new Block().withId(RandomString.string()).withBlockType(BlockType.CELL).withConfidence(random.nextFloat()).withGeometry(randomGeometry()).withRowIndex(random.nextInt()).withColumnIndex(random.nextInt()).withRelationships(new Relationship().withIds(cellTextBlock.getId(), cellSelectionBlock.getId()));
Block tableBlock = new Block().withId(RandomString.string()).withBlockType(BlockType.TABLE).withConfidence(random.nextFloat()).withGeometry(randomGeometry()).withRelationships(new Relationship().withIds(cellBlock.getId()));
// Construct a map to act as a graph
Map<String, Block> blockMap = new HashMap<>();
Observable.fromArray(cellTextBlock, cellSelectionBlock, cellBlock, tableBlock).blockingForEach(block -> blockMap.put(block.getId(), block));
// Test table block conversion
Table table = TextractResultTransformers.fetchTable(tableBlock, blockMap);
assertEquals(1, table.getCells().size());
assertEquals(tableBlock.getConfidence(), table.getConfidence(), DELTA);
assertEquals(1, table.getRowSize());
assertEquals(1, table.getColumnSize());
// Test cell block conversion
Cell cell = table.getCells().iterator().next();
assertEquals(cellTextBlock.getText(), cell.getText());
assertEquals(cellBlock.getConfidence(), cell.getConfidence(), DELTA);
assertTrue(cell.isSelected());
assertEquals(cellBlock.getRowIndex() - 1, cell.getRow());
assertEquals(cellBlock.getColumnIndex() - 1, cell.getColumn());
}
use of com.amplifyframework.predictions.models.Cell in project amplify-android by aws-amplify.
the class AWSPredictionsIdentifyTextTest method testIdentifyTables.
/**
* Assert table detection works.
* @throws PredictionsException if prediction fails
*/
@Test
public void testIdentifyTables() throws PredictionsException {
final Bitmap image = Assets.readAsBitmap("sample-table.png");
// Identify the text inside given image and assert non-null result.
IdentifyDocumentTextResult result = (IdentifyDocumentTextResult) predictions.identify(TextFormatType.TABLE, image);
assertNotNull(result);
// Assert that one table is detected.
List<Table> tables = result.getTables();
assertFalse(Empty.check(tables));
assertEquals(1, tables.size());
// Assert that table has correct dimensions.
Table table = tables.get(0);
assertEquals(2, table.getRowSize());
assertEquals(2, table.getColumnSize());
// Assert that table has correct cells.
List<Cell> cells = table.getCells();
assertEquals(4, cells.size());
FeatureAssert.assertContains("Name", cells);
FeatureAssert.assertContains("Address", cells);
FeatureAssert.assertContains("Ana Carolina", cells);
FeatureAssert.assertContains("123 Any Town", cells);
}
Aggregations