Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

## 1.0.0-beta.5 (Unreleased)

### Key Bug Fixes
- Fixed `getFields()` to preserve service side ordering of fields.

## 1.0.0-beta.4 (2020-07-07)
### Breaking Changes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
Expand Down Expand Up @@ -199,7 +200,7 @@ static List<FormLine> getReadResultFormLines(ReadResult readResultItem) {
*/
private static Map<String, FormField<?>> getUnlabeledFieldMap(DocumentResult documentResultItem,
List<ReadResult> readResults, boolean includeFieldElements) {
Map<String, FormField<?>> extractedFieldMap = new TreeMap<>();
Map<String, FormField<?>> extractedFieldMap = new LinkedHashMap<>();
// add receipt fields
if (!CoreUtils.isNullOrEmpty(documentResultItem.getFields())) {
documentResultItem.getFields().forEach((key, fieldValue) -> {
Expand Down Expand Up @@ -367,7 +368,7 @@ private static FormPage getFormPage(ReadResult readResultItem, List<FormTable> p
private static Map<String, FormField<?>> getLabeledFieldMap(boolean includeFieldElements,
List<ReadResult> readResults,
PageResult pageResultItem, Integer pageNumber) {
Map<String, FormField<?>> formFieldMap = new TreeMap<>();
Map<String, FormField<?>> formFieldMap = new LinkedHashMap<>();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had to look this up to see what it was in Java 👍

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, just something that will preserve the insertion order for keys in a dictionary. All we ever wanted 👯‍♀️

List<KeyValuePair> keyValuePairs = pageResultItem.getKeyValuePairs();
forEachWithIndex(keyValuePairs, ((index, keyValuePair) -> {
List<FormElement> formKeyContentList = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -696,9 +696,10 @@ void beginTrainingMultipageRunner(Consumer<String> testRunner) {
private void validateUnLabeledResult(RecognizedForm actualForm, boolean includeFieldElements,
List<ReadResult> readResults, PageResult expectedPage) {
validatePageRangeData(expectedPage.getPage(), actualForm.getFormPageRange());
for (int i = 0; i < expectedPage.getKeyValuePairs().size(); i++) {
final KeyValuePair expectedFormField = expectedPage.getKeyValuePairs().get(i);
final FormField<?> actualFormField = actualForm.getFields().get("field-" + i);
int i = 0;
for (Map.Entry<String, FormField<?>> entry : actualForm.getFields().entrySet()) {
FormField<?> actualFormField = entry.getValue();
final KeyValuePair expectedFormField = expectedPage.getKeyValuePairs().get(i++);
assertEquals(expectedFormField.getConfidence(), actualFormField.getConfidence());
assertEquals(expectedFormField.getKey().getText(), actualFormField.getLabelData().getText());
validateBoundingBoxData(expectedFormField.getKey().getBoundingBox(),
Expand All @@ -720,6 +721,7 @@ private void validateLabeledData(RecognizedForm actualForm, boolean includeField

assertEquals(documentResult.getPageRange().get(0), actualForm.getFormPageRange().getFirstPageNumber());
assertEquals(documentResult.getPageRange().get(1), actualForm.getFormPageRange().getLastPageNumber());
assertEquals(documentResult.getFields().keySet(), actualForm.getFields().keySet());
documentResult.getFields().forEach((label, expectedFieldValue) -> {
final FormField<?> actualFormField = actualForm.getFields().get(label);
assertEquals(label, actualFormField.getName());
Expand Down