From d04630465ded7cc861bb527076d997bddf094294 Mon Sep 17 00:00:00 2001 From: pispis Date: Thu, 27 Jul 2023 14:52:23 +0300 Subject: [PATCH] test for fair literature v4 --- .../validator2/engine/Test_FAIR_LIT.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/java/eu/dnetlib/validator2/engine/Test_FAIR_LIT.java diff --git a/src/test/java/eu/dnetlib/validator2/engine/Test_FAIR_LIT.java b/src/test/java/eu/dnetlib/validator2/engine/Test_FAIR_LIT.java new file mode 100644 index 0000000..bc8e3e7 --- /dev/null +++ b/src/test/java/eu/dnetlib/validator2/engine/Test_FAIR_LIT.java @@ -0,0 +1,67 @@ +package eu.dnetlib.validator2.engine; + +import eu.dnetlib.validator2.validation.XMLApplicationProfile; +import eu.dnetlib.validator2.validation.guideline.Guideline; +import eu.dnetlib.validator2.validation.guideline.openaire.FAIR_Literature_GuidelinesProfile; +import groovy.xml.DOMBuilder; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Document; + +import java.io.FileReader; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.OptionalDouble; +import java.util.stream.Collectors; + +public class Test_FAIR_LIT { + + private static final org.slf4j.Logger logger = LoggerFactory.getLogger(Test_FAIR_LIT.class); + + + private static final String[] FILES = new String[]{ + "src/test/resources/openaireguidelinesV3/dia.library.tuc.gr/Record_21811.xml", + "src/test/resources/openaireguidelinesV3/cris.vtt.fi/03.xml", + "src/test/resources/openaireguidelinesV3/cris.vtt.fi/01_data.xml", + "src/test/resources/openaireguidelinesV3/cris.vtt.fi/02_data.xml", + "src/test/resources/openaireguidelinesV3/cris.vtt.fi/04_data.xml", +// "src/test/resources/openaireguidelinesV3/cris.vtt.fi/03_data.xml", +// "src/test/resources/openaireguidelinesV4/01_gv4.xml" + }; + + public static void main(String[] args) { + // String xmlFile = args[0]; + FAIR_Literature_GuidelinesProfile profile = new FAIR_Literature_GuidelinesProfile(); + logger.info("Max score: " + profile.maxScore()); + Map scorePerDoc = new LinkedHashMap<>(); + for ( String fileName : FILES ) { + try { + logger.info("Processing \"" + fileName + "\""); + Document doc = DOMBuilder.parse(new FileReader(fileName), false, true, true); + XMLApplicationProfile.ValidationResult result = profile.validate(fileName, doc); + scorePerDoc.put(fileName, result.score()); + Map results = result.results(); + + if ( logger.isDebugEnabled() ) { + for ( Map.Entry entry : results.entrySet() ) { + logger.debug(entry.getKey() + " = " + entry.getValue()); + } + } + } catch (Exception e) { + logger.error("", e); + } + } + + // Individual scores + String printout = scorePerDoc.entrySet().stream(). + map(entry -> entry.getValue() + ": " + entry.getKey()).collect(Collectors.joining("\n")); + + logger.info(printout); + + // Average Score + OptionalDouble optionalFinalScore = scorePerDoc.values().stream().mapToDouble(aDouble -> aDouble).average(); + double finalScore = (optionalFinalScore.isPresent() ? optionalFinalScore.getAsDouble() : -1 ); + + logger.info("Validation Score: " + finalScore); + } + +}