This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit 73d6528cafed444989481c6ad7906859772d954f Author: Andy Seaborne <[email protected]> AuthorDate: Tue Dec 30 21:06:35 2025 +0000 Details for ASK eval test failure --- .../jena/arq/junit/sparql/tests/QueryEvalTest.java | 101 ++++++++++++--------- 1 file changed, 60 insertions(+), 41 deletions(-) diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java index 88a3617969..610b72463c 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java @@ -257,6 +257,50 @@ public class QueryEvalTest extends AbstractManifestTest { return; } + private void runTestAsk(Query query, QueryExecution qe) { + boolean bActual = qe.execAsk(); + if ( results != null ) { + if ( results.isBoolean() ) { + boolean bExpected = results.getBooleanResult(); + if ( bExpected != bActual ) { + printFailedAskTest(query, qe, bExpected, bActual); + } + assertEquals(bExpected, bActual, ()->"ASK test results do not match"); + } else { + Model resultsAsModel = results.getModel(); + StmtIterator sIter = results.getModel().listStatements(null, RDF.type, ResultSetGraphVocab.ResultSet); + if ( !sIter.hasNext() ) + throw new TestSetupException("Can't find the ASK result"); + Statement s = sIter.nextStatement(); + if ( sIter.hasNext() ) + throw new TestSetupException("Too many result sets in ASK result"); + Resource r = s.getSubject(); + Property p = resultsAsModel.createProperty(ResultSetGraphVocab.getURI() + "boolean"); + + boolean x = r.getRequiredProperty(p).getBoolean(); + if ( x != bActual ) + assertEquals(x, bActual, ()->"ASK test results do not match"); + } + } + return; + } + + private void runTestConstruct(Query query, QueryExecution qe) { + // Do the query! + if ( query.isConstructQuad() ) { + Dataset resultActual = qe.execConstructDataset(); + compareDatasetResults(resultActual, query); + } else { + Model resultsActual = qe.execConstruct(); + compareGraphResults(resultsActual, query); + } + } + + private void runTestDescribe(Query query, QueryExecution qe) { + Model resultsActual = qe.execDescribe(); + compareGraphResults(resultsActual, query); + } + private ResultSetRewindable convertToStrings(ResultSetRewindable resultsActual) { List<Binding> bindings = new ArrayList<>(); while (resultsActual.hasNext()) { @@ -312,17 +356,6 @@ public class QueryEvalTest extends AbstractManifestTest { } } - private void runTestConstruct(Query query, QueryExecution qe) { - // Do the query! - if ( query.isConstructQuad() ) { - Dataset resultActual = qe.execConstructDataset(); - compareDatasetResults(resultActual, query); - } else { - Model resultsActual = qe.execConstruct(); - compareGraphResults(resultsActual, query); - } - } - private void compareGraphResults(Model resultsActual, Query query) { if ( results != null ) { try { @@ -364,36 +397,6 @@ public class QueryEvalTest extends AbstractManifestTest { } } - private void runTestDescribe(Query query, QueryExecution qe) { - Model resultsActual = qe.execDescribe(); - compareGraphResults(resultsActual, query); - } - - private void runTestAsk(Query query, QueryExecution qe) { - boolean result = qe.execAsk(); - if ( results != null ) { - if ( results.isBoolean() ) { - boolean b = results.getBooleanResult(); - assertEquals(b, result, ()->"ASK test results do not match"); - } else { - Model resultsAsModel = results.getModel(); - StmtIterator sIter = results.getModel().listStatements(null, RDF.type, ResultSetGraphVocab.ResultSet); - if ( !sIter.hasNext() ) - throw new TestSetupException("Can't find the ASK result"); - Statement s = sIter.nextStatement(); - if ( sIter.hasNext() ) - throw new TestSetupException("Too many result sets in ASK result"); - Resource r = s.getSubject(); - Property p = resultsAsModel.createProperty(ResultSetGraphVocab.getURI() + "boolean"); - - boolean x = r.getRequiredProperty(p).getBoolean(); - if ( x != result ) - assertEquals(x, result, ()->"ASK test results do not match"); - } - } - return; - } - private void printFailedResultSetTest(Query query, QueryExecution qe, ResultSetRewindable qrExpected, ResultSetRewindable qrActual) { PrintStream out = System.out; out.println(); @@ -419,6 +422,22 @@ public class QueryEvalTest extends AbstractManifestTest { out.flush(); } + private void printFailedAskTest(Query query, QueryExecution qe, boolean qrExpected, boolean qrActual) { + PrintStream out = System.out; + out.println(); + out.println("======================================="); + out.println("Failure: " + description()); + out.println("Query: \n" + query); + if ( qe != null && qe.getDataset() != null ) { + out.println("Data:"); + RDFDataMgr.write(out, qe.getDataset(), Lang.TRIG); + } + out.println("Got: " + qrActual + " --------------------------------"); + out.println("Expected: " + qrExpected + " -----------------------------"); + out.println(); + out.flush(); + } + private void printFailedModelTest(Query query, Model expected, Model results) { PrintWriter out = FileUtils.asPrintWriterUTF8(System.out); out.println("=======================================");
