RED-8481: Use visual layout parsing to detect signatures
working on failing tests
This commit is contained in:
parent
903b1c1fd4
commit
b4a225144d
@ -35,12 +35,9 @@ public class VisualLayoutParsingAdapter {
|
|||||||
public Map<Integer, List<ClassifiedImage>> buildExtractedSignaturesPerPage(VisualLayoutParsingResponse visualLayoutParsingResponse) {
|
public Map<Integer, List<ClassifiedImage>> buildExtractedSignaturesPerPage(VisualLayoutParsingResponse visualLayoutParsingResponse) {
|
||||||
|
|
||||||
Map<Integer, List<ClassifiedImage>> signatures = new HashMap<>();
|
Map<Integer, List<ClassifiedImage>> signatures = new HashMap<>();
|
||||||
if(visualLayoutParsingResponse.getData() != null ) {
|
|
||||||
visualLayoutParsingResponse.getData().forEach(tableData -> signatures.computeIfAbsent(tableData.getPage_idx(), tableCell -> new ArrayList<>()).addAll(convertSignatures(tableData.getPage_idx(), tableData.getBoxes())));
|
visualLayoutParsingResponse.getData().forEach(tableData -> signatures.computeIfAbsent(tableData.getPage_idx(), tableCell -> new ArrayList<>()).addAll(convertSignatures(tableData.getPage_idx(), tableData.getBoxes())));
|
||||||
|
|
||||||
return signatures;
|
return signatures;
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,5 @@
|
|||||||
|
package com.knecon.fforesight.service.layoutparser.server;
|
||||||
|
|
||||||
|
public class VisualLayoutParsingServiceTests {
|
||||||
|
|
||||||
|
}
|
||||||
@ -20,6 +20,7 @@ import org.springframework.context.annotation.Import;
|
|||||||
import org.springframework.context.annotation.Primary;
|
import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||||
|
import org.xmlunit.builder.Input;
|
||||||
|
|
||||||
import com.iqser.red.commons.jackson.ObjectMapperFactory;
|
import com.iqser.red.commons.jackson.ObjectMapperFactory;
|
||||||
import com.iqser.red.storage.commons.service.StorageService;
|
import com.iqser.red.storage.commons.service.StorageService;
|
||||||
@ -51,6 +52,8 @@ public abstract class AbstractTest {
|
|||||||
private RabbitTemplate rabbitTemplate;
|
private RabbitTemplate rabbitTemplate;
|
||||||
|
|
||||||
protected final static String ORIGIN_FILE_ID = "origin";
|
protected final static String ORIGIN_FILE_ID = "origin";
|
||||||
|
|
||||||
|
protected final static String VISUAL_LAYOUT_FILE = "visual";
|
||||||
protected final static String TABLE_FILE_ID = "table";
|
protected final static String TABLE_FILE_ID = "table";
|
||||||
protected final static String IMAGE_FILE_ID = "image";
|
protected final static String IMAGE_FILE_ID = "image";
|
||||||
protected final static String STRUCTURE_FILE_ID = "structure";
|
protected final static String STRUCTURE_FILE_ID = "structure";
|
||||||
@ -96,7 +99,7 @@ public abstract class AbstractTest {
|
|||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
protected LayoutParsingRequest prepareStorage(String file) {
|
protected LayoutParsingRequest prepareStorage(String file) {
|
||||||
|
|
||||||
return prepareStorage(file, "cv_table_parsing_response/empty.json", "image_service_response/empty.json");
|
return prepareStorage(file, "cv_table_parsing_response/empty.json", "image_service_response/empty.json","visual_layout_parsing_response/empty.json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -116,6 +119,7 @@ public abstract class AbstractTest {
|
|||||||
.originFileStorageId(ORIGIN_FILE_ID)
|
.originFileStorageId(ORIGIN_FILE_ID)
|
||||||
.tablesFileStorageId(Optional.of(TABLE_FILE_ID))
|
.tablesFileStorageId(Optional.of(TABLE_FILE_ID))
|
||||||
.imagesFileStorageId(Optional.of(IMAGE_FILE_ID))
|
.imagesFileStorageId(Optional.of(IMAGE_FILE_ID))
|
||||||
|
.visualLayoutParsingFileId(Optional.of(VISUAL_LAYOUT_FILE))
|
||||||
.structureFileStorageId(STRUCTURE_FILE_ID)
|
.structureFileStorageId(STRUCTURE_FILE_ID)
|
||||||
.textBlockFileStorageId(TEXT_FILE_ID)
|
.textBlockFileStorageId(TEXT_FILE_ID)
|
||||||
.positionBlockFileStorageId(POSITION_FILE_ID)
|
.positionBlockFileStorageId(POSITION_FILE_ID)
|
||||||
@ -136,6 +140,16 @@ public abstract class AbstractTest {
|
|||||||
return prepareStorage(pdfFileResource.getInputStream(), cvServiceResponseFileResource.getInputStream(), imageInfoFileResource.getInputStream());
|
return prepareStorage(pdfFileResource.getInputStream(), cvServiceResponseFileResource.getInputStream(), imageInfoFileResource.getInputStream());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
protected LayoutParsingRequest prepareStorage(String file, String cvServiceResponseFile, String imageInfoFile, String visualLayoutParsingResponseFile) {
|
||||||
|
|
||||||
|
ClassPathResource pdfFileResource = new ClassPathResource(file);
|
||||||
|
ClassPathResource cvServiceResponseFileResource = new ClassPathResource(cvServiceResponseFile);
|
||||||
|
ClassPathResource imageInfoFileResource = new ClassPathResource(imageInfoFile);
|
||||||
|
ClassPathResource visualLayoutParsingResponseResource = new ClassPathResource(visualLayoutParsingResponseFile);
|
||||||
|
|
||||||
|
return prepareStorage(pdfFileResource.getInputStream(), cvServiceResponseFileResource.getInputStream(), imageInfoFileResource.getInputStream(), visualLayoutParsingResponseResource.getInputStream());
|
||||||
|
}
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
protected LayoutParsingRequest prepareStorage(InputStream fileStream, InputStream cvServiceResponseFileStream, InputStream imageInfoStream) {
|
protected LayoutParsingRequest prepareStorage(InputStream fileStream, InputStream cvServiceResponseFileStream, InputStream imageInfoStream) {
|
||||||
@ -147,6 +161,17 @@ public abstract class AbstractTest {
|
|||||||
return buildDefaultLayoutParsingRequest(LayoutParsingType.REDACT_MANAGER);
|
return buildDefaultLayoutParsingRequest(LayoutParsingType.REDACT_MANAGER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
protected LayoutParsingRequest prepareStorage(InputStream fileStream, InputStream cvServiceResponseFileStream, InputStream imageInfoStream, InputStream visualLayoutParsingResponseFileStream) {
|
||||||
|
|
||||||
|
storageService.storeObject(TenantContext.getTenantId(), IMAGE_FILE_ID, imageInfoStream);
|
||||||
|
storageService.storeObject(TenantContext.getTenantId(), TABLE_FILE_ID, cvServiceResponseFileStream);
|
||||||
|
storageService.storeObject(TenantContext.getTenantId(), ORIGIN_FILE_ID, fileStream);
|
||||||
|
storageService.storeObject(TenantContext.getTenantId(),VISUAL_LAYOUT_FILE,visualLayoutParsingResponseFileStream );
|
||||||
|
|
||||||
|
return buildDefaultLayoutParsingRequest(LayoutParsingType.REDACT_MANAGER);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
public void cleanupStorage() {
|
public void cleanupStorage() {
|
||||||
|
|||||||
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"dossierId": "123",
|
||||||
|
"fileId": "123",
|
||||||
|
"targetFileExtension": "ORIGIN.pdf.gz",
|
||||||
|
"responseFileExtension": "EXTRACTED_TABLES.json.gz",
|
||||||
|
"data": [],
|
||||||
|
"X_TENANT_ID": ""
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user