unordf: tweak SPARQL unit test:
rasqal 0.9.27 returns no variables for a SPARQL SELECT query with no results; it is unclear whether that is allowed but it is a corner case and probably we should not be testing for that.
This commit is contained in:
@@ -785,15 +785,30 @@ public class RDFRepositoryTest
|
|||||||
String[] vars = (String[]) i_Result.getBindingNames();
|
String[] vars = (String[]) i_Result.getBindingNames();
|
||||||
XEnumeration iter = (XEnumeration) i_Result;
|
XEnumeration iter = (XEnumeration) i_Result;
|
||||||
XNode[][] bindings = toSeqs(iter);
|
XNode[][] bindings = toSeqs(iter);
|
||||||
if (vars.length != i_Vars.length) {
|
|
||||||
System.out.println("var lengths differ");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (bindings.length != i_Bindings.length) {
|
if (bindings.length != i_Bindings.length) {
|
||||||
System.out.println("binding lengths differ: " + i_Bindings.length +
|
System.out.println("binding lengths differ: " + i_Bindings.length +
|
||||||
" vs " + bindings.length );
|
" vs " + bindings.length );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (vars.length != i_Vars.length) {
|
||||||
|
// ignore for empty result: it is unclear to me whether SPARQL
|
||||||
|
// spec requires returning the variables in this case,
|
||||||
|
// and evidently newer rasqal versions don't
|
||||||
|
if (0 != i_Bindings.length || 0 != vars.length)
|
||||||
|
{
|
||||||
|
System.out.println("var lengths differ: expected "
|
||||||
|
+ i_Vars.length + " but got " + vars.length);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < i_Vars.length; ++i) {
|
||||||
|
if (!vars[i].equals(i_Vars[i])) {
|
||||||
|
System.out.println("variable names differ: " +
|
||||||
|
vars[i] + " != " + i_Vars[i]);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
java.util.Arrays.sort(bindings, new BindingComp());
|
java.util.Arrays.sort(bindings, new BindingComp());
|
||||||
java.util.Arrays.sort(i_Bindings, new BindingComp());
|
java.util.Arrays.sort(i_Bindings, new BindingComp());
|
||||||
for (int i = 0; i < i_Bindings.length; ++i) {
|
for (int i = 0; i < i_Bindings.length; ++i) {
|
||||||
@@ -813,13 +828,6 @@ public class RDFRepositoryTest
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int i = 0; i < i_Vars.length; ++i) {
|
|
||||||
if (!vars[i].equals(i_Vars[i])) {
|
|
||||||
System.out.println("variable names differ: " +
|
|
||||||
vars[i] + " != " + i_Vars[i]);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -839,6 +847,20 @@ public class RDFRepositoryTest
|
|||||||
return namespaces;
|
return namespaces;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// useful when debugging
|
||||||
|
static void dumpRepo(XDocumentRepository xRep) throws Exception
|
||||||
|
{
|
||||||
|
XEnumeration xEnum = xRep.getStatements(null, null, null);
|
||||||
|
while (xEnum.hasMoreElements())
|
||||||
|
{
|
||||||
|
Statement s = (Statement) xEnum.nextElement();
|
||||||
|
System.out.println("STATEMENT IN: " + toS(s.Graph)
|
||||||
|
+ "\n S: " + toS(s.Subject)
|
||||||
|
+ "\n P: " + toS(s.Predicate)
|
||||||
|
+ "\n O: " + toS(s.Object));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class TestRange implements XTextRange, XMetadatable, XServiceInfo
|
class TestRange implements XTextRange, XMetadatable, XServiceInfo
|
||||||
{
|
{
|
||||||
String m_Stream;
|
String m_Stream;
|
||||||
|
Reference in New Issue
Block a user