package org.aksw.sparqlify.core.test;
import java.util.Set;
import org.aksw.jena_sparql_api.utils.CompareUtils;
import com.google.common.collect.Sets;
import org.apache.jena.query.ResultSet;
import org.apache.jena.query.ResultSetFactory;
import org.apache.jena.query.ResultSetFormatter;
import org.apache.jena.query.ResultSetRewindable;
import org.apache.jena.sparql.core.Quad;
import org.apache.jena.sparql.resultset.ResultSetCompare;
public class TestHelper {
public static boolean isEqual(Set<Quad> actual, Set<Quad> expected) {
Set<Quad> alignedActual = CompareUtils.alignActualQuads(expected, actual);
Set<Quad> excessive = Sets.difference(alignedActual, expected);
Set<Quad> missing = Sets.difference(expected, alignedActual);
if(!excessive.isEmpty() || !missing.isEmpty()) {
System.out.println("Expected : " + expected);
System.out.println("Actual : " + alignedActual);
System.out.println("Excessive: " + excessive);
System.out.println("Missing : " + missing);
}
return expected.equals(alignedActual);
//Assert.assertEquals(expected, alignedActual);
}
public static boolean isEqual(ResultSet actual, ResultSet expected) {
boolean isEqual = true;
ResultSetRewindable act = null;
ResultSetRewindable exp = null;
if (expected != null) {
// TODO File in JIRA issue: This impl is bugged (look at the code,
// rs1 should be rs1a)
act = ResultSetFactory.makeRewindable(actual);
exp = ResultSetFactory.makeRewindable(expected) ;
isEqual = ResultSetCompare.equalsByTerm(act, exp);
act.reset();
exp.reset();
}
if(!isEqual) {
String eStr = ResultSetFormatter.asText(exp);
System.out.println("Expected");
System.out.println("------");
System.out.println(eStr);
String aStr = ResultSetFormatter.asText(act);
System.out.println("Actual");
System.out.println("------");
System.out.println(aStr);
}
return isEqual;
}
}