Search in sources :

Example 1 with Cell

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());
}
Also used : Table(com.amplifyframework.predictions.models.Table) HashMap(java.util.HashMap) Relationship(com.amazonaws.services.textract.model.Relationship) Block(com.amazonaws.services.textract.model.Block) RandomString(com.amplifyframework.testutils.random.RandomString) Cell(com.amplifyframework.predictions.models.Cell) Test(org.junit.Test)

Example 2 with Cell

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);
}
Also used : Bitmap(android.graphics.Bitmap) Table(com.amplifyframework.predictions.models.Table) IdentifyDocumentTextResult(com.amplifyframework.predictions.result.IdentifyDocumentTextResult) Cell(com.amplifyframework.predictions.models.Cell) Test(org.junit.Test)

Aggregations

Cell (com.amplifyframework.predictions.models.Cell)2 Table (com.amplifyframework.predictions.models.Table)2 Test (org.junit.Test)2 Bitmap (android.graphics.Bitmap)1 Block (com.amazonaws.services.textract.model.Block)1 Relationship (com.amazonaws.services.textract.model.Relationship)1 IdentifyDocumentTextResult (com.amplifyframework.predictions.result.IdentifyDocumentTextResult)1 RandomString (com.amplifyframework.testutils.random.RandomString)1 HashMap (java.util.HashMap)1