75 lines
3.3 KiB
Java
75 lines
3.3 KiB
Java
package eu.dnetlib.validator2.engine;
|
|
|
|
//import com.google.gson.Gson;
|
|
import eu.dnetlib.validator2.validation.XMLApplicationProfile;
|
|
import eu.dnetlib.validator2.validation.guideline.Guideline;
|
|
import eu.dnetlib.validator2.validation.guideline.StandardResult;
|
|
import eu.dnetlib.validator2.validation.guideline.openaire.FAIR_Data_GuidelinesProfile;
|
|
import groovy.xml.DOMBuilder;
|
|
import org.w3c.dom.Document;
|
|
|
|
import java.io.FileReader;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.Map;
|
|
import java.util.OptionalDouble;
|
|
import java.util.StringJoiner;
|
|
import java.util.function.ToDoubleFunction;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.DoubleStream;
|
|
|
|
public class Test_FAIR {
|
|
|
|
private static final String[] FILES = new String[]{
|
|
"/Users/lpisp/Documents/OpenAIRE/MaDgIK/validator-engine/src/test/resources/openaireguidelinesV3/dia.library.tuc.gr/Record_21811.xml",
|
|
"/Users/lpisp/Documents/OpenAIRE/MaDgIK/validator-engine/src/test/resources/openaireguidelinesV3/cris.vtt.fi/03.xml",
|
|
"/Users/lpisp/Documents/OpenAIRE/MaDgIK/validator-engine/src/test/resources/openaireguidelinesV3/cris.vtt.fi/01_data.xml",
|
|
"/Users/lpisp/Documents/OpenAIRE/MaDgIK/validator-engine/src/test/resources/openaireguidelinesV3/cris.vtt.fi/02_data.xml",
|
|
"/Users/lpisp/Documents/OpenAIRE/MaDgIK/validator-engine/src/test/resources/openaireguidelinesV3/cris.vtt.fi/04_data.xml",
|
|
"/Users/lpisp/Documents/OpenAIRE/MaDgIK/validator-engine/src/test/resources/openaireguidelinesV3/cris.vtt.fi/03_data.xml",
|
|
"/Users/lpisp/Documents/OpenAIRE/MaDgIK/validator-engine/src/test/resources/openaireguidelinesV4/01_gv4.xml"
|
|
|
|
};
|
|
|
|
public static void main(String[] args) {
|
|
// String xmlFile = args[0];
|
|
FAIR_Data_GuidelinesProfile profile = new FAIR_Data_GuidelinesProfile();
|
|
System.out.println("Max score: " + profile.maxScore());
|
|
Map<String, Double> scorePerDoc = new LinkedHashMap<>();
|
|
int i = 1;
|
|
for (String file : FILES) {
|
|
try {
|
|
System.out.println("Processing " + file);
|
|
Document doc = DOMBuilder.parse(new FileReader(file), false, true, true);
|
|
XMLApplicationProfile.ValidationResult result = profile.validate(file, doc);
|
|
scorePerDoc.put(file, result.score());
|
|
Map<String, Guideline.Result> results = result.results();
|
|
// for (Map.Entry entry : results.entrySet()) {
|
|
// System.out.println(entry.getKey() + " = " + entry.getValue());
|
|
// }
|
|
|
|
|
|
} catch (Exception e) {
|
|
System.out.println(e.getMessage());
|
|
System.out.println(e);
|
|
e.printStackTrace();
|
|
}
|
|
// System.out.println("\n\n\n\n");
|
|
}
|
|
|
|
// Individual scores
|
|
String printout = scorePerDoc.entrySet().stream().
|
|
map(entry -> entry.getValue() + ": " + entry.getKey()).collect(Collectors.joining("\n"));
|
|
|
|
// Average Score
|
|
double FinalScore = scorePerDoc.entrySet().stream().
|
|
mapToDouble(entry -> entry.getValue()).average().getAsDouble();
|
|
|
|
|
|
System.out.println(printout);
|
|
System.out.println("\nValidation Score: "+FinalScore);
|
|
// TotalScore.forEach(System.out::println);
|
|
|
|
}
|
|
|
|
}
|