From 78f726607b32925923d7e48686f7c6e9c8d7e831 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Sat, 30 Oct 2021 23:17:42 +0100 Subject: Finalise dbpedia functional testing --- .../ac/ox/cs/rsacomb/functional/Functional.scala | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'src/test/scala/uk') diff --git a/src/test/scala/uk/ac/ox/cs/rsacomb/functional/Functional.scala b/src/test/scala/uk/ac/ox/cs/rsacomb/functional/Functional.scala index 5872de1..08ff283 100644 --- a/src/test/scala/uk/ac/ox/cs/rsacomb/functional/Functional.scala +++ b/src/test/scala/uk/ac/ox/cs/rsacomb/functional/Functional.scala @@ -62,3 +62,44 @@ class LUBM extends AnyFunSpec with Matchers { } } + +class DBpedia extends AnyFunSpec with Matchers { + + Logger.level = Logger.QUIET + + private val test = os.pwd / "tests" / "dbpedia" + + /* Approximation algorithms */ + //private val toLowerbound = new Lowerbound + private val toUpperbound = new Upperbound + + /* Normalization algorithms */ + private val normalizer = new Normalizer + + /* Ontology */ + private val ontology = Ontology( + test / "dbpedia+travel.owl", + List(test / "dbpedia+travel.ttl") + ) normalize normalizer + private val rsa = ontology approximate toUpperbound + + /* Queries and results */ + private val results = ujson.read(os.read(test / "results.json")).arr + + describe("Full DBpedia + Travel data:") { + + val queries = RDFoxUtil.loadQueriesFromFile(test / "queries.sparql") + queries foreach { query => + it(s"Tested Query${query.id}") { + val answers = rsa.ask(query).answers.map(_._2.mkString("\t")) + val reference = results + .find(_("queryID").num == query.id) + .get("answers") + .arr + .map(_.str) + answers should contain theSameElementsAs reference + } + } + } +} + -- cgit v1.2.3