/** * Makes the field name/value pairs from a collection of field annotations. * * @param fieldAnnotations the field annotations * @return the field value name/value pairs */ private static Collection<ExtractedField> makeFieldValues( Collection<TemplateField> fieldAnnotations) { Collection<ExtractedField> fieldValues = new ArrayList<>(); for (TemplateField templateField : fieldAnnotations) { fieldValues.add(new ExtractedField(templateField.getName(), templateField.getValue())); } return fieldValues; }
@Test public void testAthleteIsMadePersonSource() throws AnalysisEngineProcessException, ResourceInitializationException { processJCas( TemplateFieldJoiningAnnotator.PARAM_RECORD, "report", TemplateFieldJoiningAnnotator.PARAM_FIELD_NAME, "fullName", TemplateFieldJoiningAnnotator.PARAM_TEMPLATE, "{{athlete}}, {{spectator}}", TemplateFieldJoiningAnnotator.PARAM_SOURCE, "brown"); Collection<TemplateField> fields = JCasUtil.select(jCas, TemplateField.class); assertEquals(3, fields.size()); List<TemplateField> fullNameFields = fields.stream().filter(f -> extracted(f)).collect(Collectors.toList()); assertEquals(1, fullNameFields.size()); TemplateField fullName = fullNameFields.iterator().next(); assertEquals("fox, dog", fullName.getValue()); assertEquals(16, fullName.getBegin()); assertEquals(44, fullName.getEnd()); }
@Test public void testAthleteIsMadePersonNoSource() throws AnalysisEngineProcessException, ResourceInitializationException { processJCas( TemplateFieldJoiningAnnotator.PARAM_RECORD, "report", TemplateFieldJoiningAnnotator.PARAM_FIELD_NAME, "fullName", TemplateFieldJoiningAnnotator.PARAM_TEMPLATE, "{{athlete}}, {{spectator}}"); Collection<TemplateField> fields = JCasUtil.select(jCas, TemplateField.class); assertEquals(3, fields.size()); List<TemplateField> fullNameFields = fields.stream().filter(f -> extracted(f)).collect(Collectors.toList()); assertEquals(1, fullNameFields.size()); TemplateField fullName = fullNameFields.iterator().next(); assertEquals("fox, dog", fullName.getValue()); assertEquals(16, fullName.getBegin()); assertEquals(44, fullName.getEnd()); }
@Test public void testDefaultRecord() throws AnalysisEngineProcessException, ResourceInitializationException, IOException { Path definitionFile = createDefaultRecordDefinition(); try { processJCas(TemplateAnnotator.PARAM_RECORD_DEFINITIONS_DIRECTORY, tempDirectory.toString()); assertEquals(0, JCasUtil.select(jCas, TemplateRecord.class).size()); TemplateField field1 = JCasUtil.selectSingle(jCas, TemplateField.class); assertEquals(53, field1.getBegin()); assertEquals(105, field1.getEnd()); assertEquals(PARA2, field1.getCoveredText()); assertEquals(PARA2, field1.getValue()); } finally { Files.delete(definitionFile); } }
@Test public void testCreateDefaultFieldAnnotationsMisingWithDefaultValue() throws AnalysisEngineProcessException, ResourceInitializationException, IOException { Path definitionFile = createGoodRecordDefinitionWithDefaultAndMissing(); try { processJCas(TemplateAnnotator.PARAM_RECORD_DEFINITIONS_DIRECTORY, tempDirectory.toString()); TemplateField field1 = JCasUtil.selectSingle(jCas, TemplateField.class); assertEquals(212, field1.getBegin()); assertEquals(212, field1.getEnd()); assertEquals("", field1.getCoveredText()); assertEquals("default value", field1.getValue()); assertEquals(1, JCasUtil.select(jCas, Metadata.class).size()); } finally { Files.delete(definitionFile); } }
@Test public void testCreateFieldAnnotationsFromSelectorFileWithRegexDefaultUsed() throws AnalysisEngineProcessException, ResourceInitializationException, IOException { Path definitionFile = createGoodRecordDefinitionWithRegexDefaultNeeded(); try { processJCas(TemplateAnnotator.PARAM_RECORD_DEFINITIONS_DIRECTORY, tempDirectory.toString()); assertRecordCoversParas2to4(); TemplateField field1 = JCasUtil.selectSingle(jCas, TemplateField.class); assertEquals(159, field1.getBegin()); assertEquals(159, field1.getEnd()); assertEquals("", field1.getCoveredText()); assertEquals("horse", field1.getValue()); assertEquals(2, JCasUtil.select(jCas, Metadata.class).size()); } finally { Files.delete(definitionFile); } }
@Test public void testCreateDefaultFieldAnnotationsWithDefault() throws AnalysisEngineProcessException, ResourceInitializationException, IOException { Path definitionFile = createGoodRecordDefinitionWithDefaultAndMissing(); try { processJCas(TemplateAnnotator.PARAM_RECORD_DEFINITIONS_DIRECTORY, tempDirectory.toString()); TemplateField field1 = JCasUtil.selectSingle(jCas, TemplateField.class); assertEquals(212, field1.getBegin()); assertEquals(212, field1.getEnd()); assertEquals("", field1.getCoveredText()); assertEquals("default value", field1.getValue()); } finally { Files.delete(definitionFile); } }
@Test public void testCreateFieldAnnotationsFromSelectorFile() throws AnalysisEngineProcessException, ResourceInitializationException, IOException { Path definitionFile = createGoodRecordDefinition(); try { processJCas(TemplateAnnotator.PARAM_RECORD_DEFINITIONS_DIRECTORY, tempDirectory.toString()); assertRecordCoversParas2to4(); TemplateField field1 = JCasUtil.selectSingle(jCas, TemplateField.class); assertEquals(53, field1.getBegin()); assertEquals(105, field1.getEnd()); assertEquals(PARA2, field1.getCoveredText()); assertEquals(PARA2, field1.getValue()); } finally { Files.delete(definitionFile); } }
@Test public void testCreateFieldAnnotationsFromSelectorFileWithRegex() throws AnalysisEngineProcessException, ResourceInitializationException, IOException { Path definitionFile = createGoodRecordDefinitionWithRegex(); try { processJCas(TemplateAnnotator.PARAM_RECORD_DEFINITIONS_DIRECTORY, tempDirectory.toString()); assertRecordCoversParas2to4(); TemplateField field1 = JCasUtil.selectSingle(jCas, TemplateField.class); assertEquals(69, field1.getBegin()); assertEquals(72, field1.getEnd()); assertEquals("cat", field1.getCoveredText()); assertEquals("cat", field1.getValue()); } finally { Files.delete(definitionFile); } }
@Test public void testCreateFieldAnnotationsFromSelectorFileWithRegexRequired() throws AnalysisEngineProcessException, ResourceInitializationException, IOException { Path definitionFile = createGoodRecordDefinitionWithRegexRequired(); try { processJCas(TemplateAnnotator.PARAM_RECORD_DEFINITIONS_DIRECTORY, tempDirectory.toString()); assertRecordCoversParas2to4(); TemplateField field1 = JCasUtil.selectSingle(jCas, TemplateField.class); assertEquals(122, field1.getBegin()); assertEquals(125, field1.getEnd()); assertEquals("rat", field1.getCoveredText()); assertEquals("rat", field1.getValue()); } finally { Files.delete(definitionFile); } }
@Test public void testCreateFieldAnnotationsFromSelectorFileWithRegexDefaultNotNeeded() throws AnalysisEngineProcessException, ResourceInitializationException, IOException { Path definitionFile = createGoodRecordDefinitionWithRegexDefaultNotNeeded(); try { processJCas(TemplateAnnotator.PARAM_RECORD_DEFINITIONS_DIRECTORY, tempDirectory.toString()); assertRecordCoversParas2to4(); TemplateField field1 = JCasUtil.selectSingle(jCas, TemplateField.class); assertEquals(179, field1.getBegin()); assertEquals(185, field1.getEnd()); assertEquals("jumped", field1.getCoveredText()); assertEquals("jumped", field1.getValue()); } finally { Files.delete(definitionFile); } }
@Test public void testCreateRecordWhenNoFollowingPath() throws AnalysisEngineProcessException, ResourceInitializationException, IOException { Path definitionFile = createNoFollowingRecordDefinition(); try { processJCas( TemplateAnnotator.PARAM_RECORD_DEFINITIONS_DIRECTORY, tempDirectory.toString(), TemplateAnnotator.PARAM_TYPE_NAMES, new String[] {"Paragraph"}); TemplateRecord record = JCasUtil.selectSingle(jCas, TemplateRecord.class); assertEquals(212, record.getBegin()); assertEquals(265, record.getEnd()); assertEquals("\n" + PARA5, record.getCoveredText()); TemplateField field1 = JCasUtil.selectSingle(jCas, TemplateField.class); assertEquals(213, field1.getBegin()); assertEquals(265, field1.getEnd()); assertEquals(PARA5, field1.getCoveredText()); assertEquals(PARA5, field1.getValue()); assertEquals(2, JCasUtil.select(jCas, Metadata.class).size()); } finally { Files.delete(definitionFile); } }
assertEquals(QUOTE1.length(), field.getEnd()); assertEquals(QUOTE1, field.getCoveredText()); assertEquals(QUOTE1, field.getValue()); assertEquals(field.getBegin() + QUOTE2.length(), field.getEnd()); assertEquals(QUOTE2, field.getCoveredText()); assertEquals(QUOTE2, field.getValue()); assertEquals(field.getBegin() + QUOTE1.length(), field.getEnd()); assertEquals(QUOTE1, field.getCoveredText()); assertEquals(QUOTE1, field.getValue()); assertEquals(field.getBegin() + QUOTE2.length(), field.getEnd()); assertEquals(QUOTE2, field.getCoveredText()); assertEquals(QUOTE2, field.getValue()); assertEquals(field.getBegin() + QUOTE3.length(), field.getEnd()); assertEquals(QUOTE3, field.getCoveredText()); assertEquals(QUOTE3, field.getValue()); assertEquals(paragraph1.getEnd(), cell111.getEnd()); assertEquals(R1C1P1, cell111.getCoveredText()); assertEquals(R1C1P1, cell111.getValue()); TemplateField cell112 = fields.get(1); assertEquals("cell1", cell112.getName()); assertEquals(paragraph2.getEnd(), cell112.getEnd()); assertEquals(R1C1P2, cell112.getCoveredText()); assertEquals(R1C1P2, cell112.getValue());
assertEquals(QUOTE1.length(), field.getEnd()); assertEquals(QUOTE1, field.getCoveredText()); assertEquals(QUOTE1, field.getValue()); assertEquals(field.getBegin() + QUOTE2.length(), field.getEnd()); assertEquals(QUOTE2, field.getCoveredText()); assertEquals(QUOTE2, field.getValue()); assertEquals(field.getBegin() + QUOTE1.length(), field.getEnd()); assertEquals(QUOTE1, field.getCoveredText()); assertEquals(QUOTE1, field.getValue()); assertEquals(field.getBegin() + QUOTE2.length(), field.getEnd()); assertEquals(QUOTE2, field.getCoveredText()); assertEquals(QUOTE2, field.getValue()); assertEquals(field.getBegin() + QUOTE3.length(), field.getEnd()); assertEquals(QUOTE3, field.getCoveredText()); assertEquals(QUOTE3, field.getValue()); assertEquals(tableCell11.getEnd(), cell11.getEnd()); assertEquals(R1C1, cell11.getCoveredText()); assertEquals(R1C1, cell11.getValue()); TemplateField cell12 = fields.get(1); assertEquals("cell2", cell12.getName()); assertEquals(tableCell12.getEnd(), cell12.getEnd()); assertEquals(R1C2, cell12.getCoveredText()); assertEquals(R1C2, cell12.getValue());