def assertUnlabeledFormFieldDictTransformCorrect(self, form_fields, generated_fields, read_results=None): if generated_fields is None: return for idx, expected in enumerate(generated_fields): self.assertEqual(adjust_confidence(expected.confidence), form_fields["field-" + str(idx)].confidence) self.assertEqual(expected.key.text, form_fields["field-" + str(idx)].label_data.text) self.assertBoundingBoxTransformCorrect( form_fields["field-" + str(idx)].label_data.bounding_box, expected.key.bounding_box) if read_results: self.assertFieldElementsTransFormCorrect( form_fields["field-" + str(idx)].label_data.field_elements, expected.key.elements, read_results) self.assertEqual(expected.value.text, form_fields["field-" + str(idx)].value_data.text) self.assertBoundingBoxTransformCorrect( form_fields["field-" + str(idx)].value_data.bounding_box, expected.value.bounding_box) if read_results: self.assertFieldElementsTransFormCorrect( form_fields["field-" + str(idx)].value_data.field_elements, expected.value.elements, read_results)
def assertTablesTransformCorrect(self, layout, expected_layout, read_results=None, **kwargs): for table, expected_table in zip(layout, expected_layout): self.assertEqual(table.row_count, expected_table.rows) self.assertEqual(table.column_count, expected_table.columns) self.assertBoundingBoxTransformCorrect(table.bounding_box, expected_table.bounding_box) for cell, expected_cell in zip(table.cells, expected_table.cells): self.assertEqual(table.page_number, cell.page_number) self.assertEqual(cell.text, expected_cell.text) self.assertEqual(cell.row_index, expected_cell.row_index) self.assertEqual(cell.column_index, expected_cell.column_index) self.assertEqual( cell.row_span, expected_cell.row_span if expected_cell.row_span is not None else 1) self.assertEqual( cell.column_span, expected_cell.column_span if expected_cell.column_span is not None else 1) self.assertEqual(cell.confidence, adjust_confidence(expected_cell.confidence)) self.assertEqual( cell.is_header, expected_cell.is_header if expected_cell.is_header is not None else False) self.assertEqual( cell.is_footer, expected_cell.is_footer if expected_cell.is_footer is not None else False) self.assertBoundingBoxTransformCorrect( cell.bounding_box, expected_cell.bounding_box) self.assertFieldElementsTransFormCorrect( cell.field_elements, expected_cell.elements, read_results)
def assertFormWordTransformCorrect(self, word, expected): self.assertEqual(word.text, expected.text) self.assertEqual(word.confidence, adjust_confidence(expected.confidence)) self.assertEqual(word.kind, "word") self.assertBoundingBoxTransformCorrect(word.bounding_box, expected.bounding_box)
def assertTablesTransformCorrect(self, layout, expected_layout, read_results=None, **kwargs): for table, expected_table in zip(layout, expected_layout): assert table.row_count == expected_table.rows assert table.column_count == expected_table.columns self.assertBoundingBoxTransformCorrect(table.bounding_box, expected_table.bounding_box) for cell, expected_cell in zip(table.cells, expected_table.cells): assert table.page_number == cell.page_number assert cell.text == expected_cell.text assert cell.row_index == expected_cell.row_index assert cell.column_index == expected_cell.column_index assert cell.row_span == expected_cell.row_span if expected_cell.row_span is not None else 1 assert cell.column_span == expected_cell.column_span if expected_cell.column_span is not None else 1 assert cell.confidence == adjust_confidence( expected_cell.confidence) assert cell.is_header == (expected_cell.is_header if expected_cell.is_header is not None else False) assert cell.is_footer == (expected_cell.is_footer if expected_cell.is_footer is not None else False) self.assertBoundingBoxTransformCorrect( cell.bounding_box, expected_cell.bounding_box) self.assertFieldElementsTransFormCorrect( cell.field_elements, expected_cell.elements, read_results)
def assertFormSelectionMarkTransformCorrect(self, selection_mark, expected): self.assertEqual(selection_mark.kind, "selectionMark") self.assertEqual(selection_mark.confidence, adjust_confidence(expected.confidence)) self.assertEqual(selection_mark.state, expected.state) self.assertBoundingBoxTransformCorrect(selection_mark.bounding_box, expected.bounding_box)
def assertDocumentSelectionMarkTransformCorrect(self, selection_mark, expected): assert selection_mark.kind == "selectionMark" assert selection_mark.confidence == adjust_confidence( expected.confidence) assert selection_mark.state == expected.state self.assertBoundingBoxTransformCorrect(selection_mark.bounding_box, expected.bounding_box)
def assertFormFieldsTransformCorrect(self, form_fields, generated_fields, read_results=None): if generated_fields is None: return for label, expected in generated_fields.items(): field_type = expected.type self.assertEqual(adjust_value_type(field_type), form_fields[label].value_type) self.assertEqual(label, form_fields[label].name) self.assertEqual(adjust_confidence(expected.confidence), form_fields[label].confidence) self.assertFormFieldValueTransformCorrect(form_fields[label], expected, read_results)
def assertFormFieldsTransformCorrect(self, form_fields, generated_fields, read_results=None): if generated_fields is None: return for label, expected in generated_fields.items(): if expected is None: # None value occurs with labeled tables and empty cells continue field_type = expected.type self.assertEqual(adjust_value_type(field_type), form_fields[label].value_type) self.assertEqual(label, form_fields[label].name) self.assertEqual(adjust_confidence(expected.confidence), form_fields[label].confidence) self.assertFormFieldValueTransformCorrect(form_fields[label], expected, read_results)
def assertFormWordTransformCorrect(self, word, expected): assert word.text == expected.text assert word.confidence == adjust_confidence(expected.confidence) assert word.kind == "word" self.assertBoundingBoxTransformCorrect(word.bounding_box, expected.bounding_box)