aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/uk
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/uk')
-rw-r--r--src/test/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQueryAnswerSpecs.scala53
1 files changed, 48 insertions, 5 deletions
diff --git a/src/test/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQueryAnswerSpecs.scala b/src/test/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQueryAnswerSpecs.scala
index b2319bc..6e7d6df 100644
--- a/src/test/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQueryAnswerSpecs.scala
+++ b/src/test/scala/uk/ac/ox/cs/rsacomb/sparql/ConjunctiveQueryAnswerSpecs.scala
@@ -16,25 +16,25 @@ object ConjunctiveQueryAnswerSpec {
16 val oneAnswer = new ConjunctiveQueryAnswers( 16 val oneAnswer = new ConjunctiveQueryAnswers(
17 false, 17 false,
18 Seq(varX, varY, varZ), 18 Seq(varX, varY, varZ),
19 Seq(Seq(iri1, iri2, iri3)) 19 Seq((4, Seq(iri1, iri2, iri3)))
20 ) 20 )
21 val multipleAnswers = 21 val multipleAnswers =
22 new ConjunctiveQueryAnswers( 22 new ConjunctiveQueryAnswers(
23 false, 23 false,
24 Seq(varY, varZ), 24 Seq(varY, varZ),
25 Seq(Seq(iri1, iri1), Seq(iri1, iri2), Seq(iri1, iri3)) 25 Seq((1, Seq(iri1, iri1)), (2, Seq(iri1, iri2)), (1, Seq(iri1, iri3)))
26 ) 26 )
27 val noAnswer = new ConjunctiveQueryAnswers(false, Seq(), Seq()) 27 val noAnswer = new ConjunctiveQueryAnswers(false, Seq(), Seq())
28 val emptyAnswer = 28 val emptyAnswer =
29 new ConjunctiveQueryAnswers(false, Seq(varX, varY), Seq(Seq())) 29 new ConjunctiveQueryAnswers(false, Seq(varX, varY), Seq((3, Seq())))
30 30
31 val falseAnswer = new ConjunctiveQueryAnswers(true, Seq(), Seq()) 31 val falseAnswer = new ConjunctiveQueryAnswers(true, Seq(), Seq())
32 val trueAnswer1 = new ConjunctiveQueryAnswers(true, Seq(), Seq(Seq())) 32 val trueAnswer1 = new ConjunctiveQueryAnswers(true, Seq(), Seq((1, Seq())))
33 val trueAnswer2 = 33 val trueAnswer2 =
34 new ConjunctiveQueryAnswers( 34 new ConjunctiveQueryAnswers(
35 true, 35 true,
36 Seq(varX, varY), 36 Seq(varX, varY),
37 Seq(Seq(iri1, iri1), Seq(iri1, iri2), Seq(iri1, iri3)) 37 Seq((5, Seq(iri1, iri1)), (2, Seq(iri1, iri2)), (1, Seq(iri1, iri3)))
38 ) 38 )
39} 39}
40 40
@@ -42,6 +42,49 @@ class ConjunctiveQueryAnswerSpec extends AnyFlatSpec with Matchers {
42 42
43 import ConjunctiveQueryAnswerSpec._ 43 import ConjunctiveQueryAnswerSpec._
44 44
45 "Test answer 1" should "have length 1 (4 with multiplicity)" in {
46 oneAnswer should have(
47 'length (1),
48 'lengthWithMultiplicity (4)
49 )
50 }
51 "Test answer 2" should "have length 3 (4 with multiplicity)" in {
52 multipleAnswers should have(
53 'length (3),
54 'lengthWithMultiplicity (4)
55 )
56 }
57 "Test answer 3" should "have length 0 (0 with multiplicity)" in {
58 noAnswer should have(
59 'length (0),
60 'lengthWithMultiplicity (0)
61 )
62 }
63 "Test answer 4" should "have length 1 (3 with multiplicity)" in {
64 noAnswer should have(
65 'length (1),
66 'lengthWithMultiplicity (3)
67 )
68 }
69 "Test boolean answer 1" should "have length 0 (0 with multiplicity)" in {
70 falseAnswer should have(
71 'length (0),
72 'lengthWithMultiplicity (0)
73 )
74 }
75 "Test boolean answer 2" should "have length 1 (1 with multiplicity)" in {
76 trueAnswer1 should have(
77 'length (1),
78 'lengthWithMultiplicity (1)
79 )
80 }
81 "Test boolean answer 3" should "have length 3 (8 with multiplicity)" in {
82 trueAnswer2 should have(
83 'length (3),
84 'lengthWithMultiplicity (8)
85 )
86 }
87
45 "A conjunctive query" should "print an header and a single line if it has a single answer" in { 88 "A conjunctive query" should "print an header and a single line if it has a single answer" in {
46 oneAnswer.toString shouldBe s"X\tY\tZ\n${iri1.getIRI}\t${iri2.getIRI}\t${iri3.getIRI}" 89 oneAnswer.toString shouldBe s"X\tY\tZ\n${iri1.getIRI}\t${iri2.getIRI}\t${iri3.getIRI}"
47 } 90 }