test for fair literature v4
This commit is contained in:
parent
5abdc97c1c
commit
d04630465d
|
@ -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<String, Double> 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<String, Guideline.Result> results = result.results();
|
||||
|
||||
if ( logger.isDebugEnabled() ) {
|
||||
for ( Map.Entry<String, Guideline.Result> 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);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue