PageRenderTime 48ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/rdfapi-php/test/unit/Sparql/SparqlTests_test.php

https://github.com/koja13/DSi2.0
PHP | 260 lines | 198 code | 49 blank | 13 comment | 4 complexity | 28cc8e2200b5d65165494c15dd0c511b MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. // ----------------------------------------------------------------------------------
  3. // Class: testSparqlTests
  4. // Run this script by executing /test/unit/sparqlTests.php
  5. // ----------------------------------------------------------------------------------
  6. require_once dirname(__FILE__) . '/../../config.php';
  7. require_once RDFAPI_TEST_INCLUDE_DIR . 'test/unit/Sparql/cases.php';
  8. require_once RDFAPI_TEST_INCLUDE_DIR . 'test/unit/Sparql/SparqlTestHelper.php';
  9. require_once RDFAPI_INCLUDE_DIR . 'sparql/SparqlParser.php';
  10. require_once RDFAPI_INCLUDE_DIR . 'sparql/SparqlEngine.php';
  11. /**
  12. * Testcases for the SparqlParser and SparqlEngine
  13. *
  14. * @version $Id$
  15. * @author Tobias Gauß <tobias.gauss@web.de>
  16. *
  17. * @package unittests
  18. * @access public
  19. */
  20. class testSparqlTests extends UnitTestCase
  21. {
  22. public function __construct()
  23. {
  24. echo "<b>SparqlTests</b><br/>\n";
  25. }
  26. function testDAWGTestcases()
  27. {
  28. foreach($_SESSION['sparql_dawg_tests'] as $name) {
  29. $_SESSION['test'] = $name . ' test';
  30. $parser = new SparqlParser();
  31. $graphset = ModelFactory::getDatasetMem('Dataset1');
  32. $graph1 = $graphset->getDefaultGraph();
  33. $graph1 ->load(SPARQL_TESTFILES.'data/'.$name.'.n3');
  34. $qs = file_get_contents(SPARQL_TESTFILES.'query/'.$name.'.rq','r');
  35. $res = file_get_contents(SPARQL_TESTFILES.'result/'.$name.'.res','r');
  36. eval($res);
  37. $q = $parser->parse($qs);
  38. $engine = SparqlEngine::factory();
  39. $t = $engine->queryModel($graphset, $q, false);
  40. $this->assertTrue(SparqlTestHelper::resultCheck($t,$result));
  41. }
  42. }
  43. function testCustomTestcases()
  44. {
  45. foreach($_SESSION['sparql_custom_tests'] as $name) {
  46. $_SESSION['test']=$name.' test';
  47. $parser = new SparqlParser();
  48. $graphset = ModelFactory::getDatasetMem('Dataset1');
  49. $graph1 = $graphset->getDefaultGraph();
  50. $graph1->load(SPARQL_TESTFILES.'data/'.$name.'.n3');
  51. $qs = file_get_contents(SPARQL_TESTFILES.'query/'.$name.'.rq','r');
  52. $res = file_get_contents(SPARQL_TESTFILES.'result/'.$name.'.res','r');
  53. eval($res);
  54. $q = $parser->parse($qs);
  55. $engine = SparqlEngine::factory();
  56. $t = $engine->queryModel($graphset, $q,false);
  57. $this->assertTrue(SparqlTestHelper::resultCheck($t,$result));
  58. }
  59. }
  60. function testGraphset1Testcase()
  61. {
  62. $_SESSION['test']= ' Graphset1 test';
  63. $parser = new SparqlParser();
  64. $graphset = ModelFactory::getDatasetMem('Dataset1');
  65. $graph1 = $graphset->createGraph('http://example.org/foaf/aliceFoaf');
  66. $graph1->load(SPARQL_TESTFILES.'data/graphset1gr1.n3');
  67. $graph2 = $graphset->createGraph('http://example.org/foaf/bobFoaf');
  68. $graph2->load(SPARQL_TESTFILES.'data/graphset1gr2.n3');
  69. $qs = file_get_contents(SPARQL_TESTFILES.'query/graphset1.rq','r');
  70. $res = file_get_contents(SPARQL_TESTFILES.'result/graphset1.res','r');
  71. eval($res);
  72. $q = $parser->parse($qs);
  73. $engine = SparqlEngine::factory();
  74. $t = $engine->queryModel($graphset, $q,false);
  75. $this->assertTrue(SparqlTestHelper::resultCheck($t,$result));
  76. }
  77. function testGraphset2Testcase()
  78. {
  79. $_SESSION['test']= ' Graphset2 test';
  80. $parser = new SparqlParser();
  81. $graphset = ModelFactory::getDatasetMem('Dataset1');
  82. $graph1 = $graphset->createGraph('http://example.org/foaf/aliceFoaf');
  83. $graph1->load(SPARQL_TESTFILES.'data/graphset1gr1.n3');
  84. $graph2 = $graphset->createGraph('http://example.org/foaf/bobFoaf');
  85. $graph2->load(SPARQL_TESTFILES.'data/graphset1gr2.n3');
  86. $qs = file_get_contents(SPARQL_TESTFILES.'query/graphset2.rq','r');
  87. $res = file_get_contents(SPARQL_TESTFILES.'result/graphset2.res','r');
  88. eval($res);
  89. $q = $parser->parse($qs);
  90. $engine = SparqlEngine::factory();
  91. $t = $engine->queryModel($graphset, $q,false);
  92. $this->assertTrue(SparqlTestHelper::resultCheck($t,$result));
  93. }
  94. function testGraphset3Testcase()
  95. {
  96. $_SESSION['test']= ' Graphset3 test';
  97. $parser = new SparqlParser();
  98. $graphset = ModelFactory::getDatasetMem('Dataset1');
  99. $default = $graphset->getDefaultGraph();
  100. $default->load(SPARQL_TESTFILES.'data/graphset3gr1.n3');
  101. $graph1 = $graphset->createGraph('urn:x-local:graph1');
  102. $graph1->load(SPARQL_TESTFILES.'data/graphset3gr2.n3');
  103. $graph2 = $graphset->createGraph('urn:x-local:graph2');
  104. $graph2->load(SPARQL_TESTFILES.'data/graphset3gr3.n3');
  105. $qs = file_get_contents(SPARQL_TESTFILES.'query/graphset3.rq','r');
  106. $res = file_get_contents(SPARQL_TESTFILES.'result/graphset3.res','r');
  107. eval($res);
  108. $q = $parser->parse($qs);
  109. $engine = SparqlEngine::factory();
  110. $t = $engine->queryModel($graphset, $q,false);
  111. $this->assertTrue(SparqlTestHelper::resultCheck($t,$result));
  112. }
  113. function testGraphset4Testcase()
  114. {
  115. $_SESSION['test']= ' Graphset4 test';
  116. $parser = new SparqlParser();
  117. $graphset = ModelFactory::getDatasetMem('Dataset1');
  118. $graph1 = $graphset->createGraph('http://example.org/foaf/aliceFoaf');
  119. $graph1->load(SPARQL_TESTFILES.'data/graphset1gr1.n3');
  120. $graph2 = $graphset->createGraph('http://example.org/foaf/bobFoaf');
  121. $graph2->load(SPARQL_TESTFILES.'data/graphset1gr2.n3');
  122. $qs = file_get_contents(SPARQL_TESTFILES.'query/graphset4.rq','r');
  123. $res = file_get_contents(SPARQL_TESTFILES.'result/graphset4.res','r');
  124. eval($res);
  125. $q = $parser->parse($qs);
  126. $engine = SparqlEngine::factory();
  127. $t = $engine->queryModel($graphset, $q,false);
  128. $this->assertTrue(SparqlTestHelper::resultCheck($t,$result));
  129. }
  130. function testSortTestcase()
  131. {
  132. foreach($_SESSION['sparql_sort_tests'] as $name) {
  133. $_SESSION['test']= $name['query']." test";
  134. $parser = new SparqlParser();
  135. $graphset = ModelFactory::getDatasetMem('Dataset1');
  136. $def = $graphset->getDefaultGraph();
  137. $def->load(SPARQL_TESTFILES.'data/'.$name['data']);
  138. $qs = file_get_contents(SPARQL_TESTFILES.'query/'.$name['query'].".rq",'r');
  139. $res = file_get_contents(SPARQL_TESTFILES.'result/'.$name['result'].".res",'r');
  140. eval($res);
  141. $q = $parser->parse($qs);
  142. $engine = SparqlEngine::factory();
  143. $t = $engine->queryModel($graphset, $q,false);
  144. $this->assertTrue(SparqlTestHelper::resultCheckSort($t,$result));
  145. }
  146. }
  147. function testlimitOffsetTestcase()
  148. {
  149. foreach($_SESSION['sparql_limitOffset_tests'] as $name){
  150. $_SESSION['test']= $name['query']." test";
  151. $parser = new SparqlParser();
  152. $graphset = ModelFactory::getDatasetMem('Dataset1');
  153. $def = $graphset->getDefaultGraph();
  154. $def->load(SPARQL_TESTFILES.'data/'.$name['data']);
  155. $qs = file_get_contents(SPARQL_TESTFILES.'query/'.$name['query'].".rq",'r');
  156. $res = file_get_contents(SPARQL_TESTFILES.'result/'.$name['result'].".res",'r');
  157. eval($res);
  158. $q = $parser->parse($qs);
  159. $engine = SparqlEngine::factory();
  160. $t = $engine->queryModel($graphset, $q,false);
  161. $this->assertTrue(SparqlTestHelper::resultCheckSort($t,$result));
  162. }
  163. }
  164. function testFilterTestcases()
  165. {
  166. foreach($_SESSION['sparql_filter_tests'] as $name) {
  167. $_SESSION['test']= $name['query']." test";
  168. $parser = new SparqlParser();
  169. $graphset = ModelFactory::getDatasetMem('Dataset1');
  170. $def = $graphset->getDefaultGraph();
  171. $def ->load(SPARQL_TESTFILES.'data/'.$name['data']);
  172. $qs = file_get_contents(SPARQL_TESTFILES.'query/'.$name['query'].".rq",'r');
  173. $res = file_get_contents(SPARQL_TESTFILES.'result/'.$name['result'].".res",'r');
  174. eval($res);
  175. $q = $parser->parse($qs);
  176. $engine = SparqlEngine::factory();
  177. $t = $engine->queryModel($graphset, $q, false);
  178. $bOk = SparqlTestHelper::resultCheck($t,$result);
  179. $this->assertTrue($bOk);
  180. if (!$bOk) {
  181. echo $name['query'] . "\n";
  182. }
  183. }
  184. }
  185. function testArqTestcases()
  186. {
  187. foreach($_SESSION['sparql_arq_tests'] as $name) {
  188. $_SESSION['test']= $name['query']." test";
  189. $parser = new SparqlParser();
  190. $graphset = ModelFactory::getDatasetMem('Dataset1');
  191. $def = $graphset->getDefaultGraph();
  192. $def->load(SPARQL_TESTFILES.'data/'.$name['data']);
  193. $qs = file_get_contents(SPARQL_TESTFILES.'query/'.$name['query'].".rq",'r');
  194. $res = file_get_contents(SPARQL_TESTFILES.'result/'.$name['result'].".res",'r');
  195. eval($res);
  196. $q = $parser->parse($qs);
  197. $engine = SparqlEngine::factory();
  198. $t = $engine->queryModel($graphset, $q,false);
  199. if ($t instanceof MemModel) {
  200. $bOk = $t->equals($result);
  201. } else {
  202. $bOk = SparqlTestHelper::resultCheck($t,$result);
  203. }
  204. $this->assertTrue($bOk);
  205. if (!$bOk) {
  206. echo $name['query'] . "\n";
  207. }
  208. }
  209. }
  210. }
  211. ?>