@@ -228,7 +228,7 @@ TEST_CLASS(TestPqlEvaluator) {
228
228
TEST_METHOD (TestEvaluateParsedQuery_SingleSuchThatClause) {
229
229
// stmt s; Select s such that Follows(3, s)
230
230
ParsedQuery pq = {{{" s" , TokenType::STMT}},
231
- {" s" },
231
+ {PqlResultType::Tuple, {{ " s" , AttributeRefType::NONE}} },
232
232
{{TokenType::FOLLOWS,
233
233
{TokenType::NUMBER, " 3" },
234
234
{TokenType::STMT, " s" }}}};
@@ -239,7 +239,7 @@ TEST_CLASS(TestPqlEvaluator) {
239
239
240
240
// read r1; read r2; Select r2 such that Follows(r1, r2)
241
241
pq = {{{" r1" , TokenType::READ}, {" r2" , TokenType::READ}},
242
- {" r2" },
242
+ {PqlResultType::Tuple, {{ " r2" , AttributeRefType::NONE}} },
243
243
{{TokenType::FOLLOWS,
244
244
{TokenType::READ, " r1" },
245
245
{TokenType::READ, " r2" }}}};
@@ -252,7 +252,7 @@ TEST_CLASS(TestPqlEvaluator) {
252
252
253
253
// call c; Select c such that Follows(_, c)
254
254
pq = {{{" c" , TokenType::CALL}},
255
- {" c" },
255
+ {PqlResultType::Tuple, {{ " c" , AttributeRefType::NONE}} },
256
256
{{TokenType::FOLLOWS,
257
257
{TokenType::UNDERSCORE},
258
258
{TokenType::CALL, " c" }}}};
@@ -268,7 +268,7 @@ TEST_CLASS(TestPqlEvaluator) {
268
268
{{" w" , TokenType::WHILE},
269
269
{" i" , TokenType::IF},
270
270
{" p" , TokenType::PRINT}},
271
- {" p" },
271
+ {PqlResultType::Tuple, {{ " p" , AttributeRefType::NONE}} },
272
272
{{TokenType::FOLLOWS, {TokenType::WHILE, " w" }, {TokenType::IF, " i" }}}};
273
273
expected = {" 6" , " 21" , " 22" , " 26" };
274
274
actual.clear ();
@@ -281,7 +281,7 @@ TEST_CLASS(TestPqlEvaluator) {
281
281
pq = {{{" a" , TokenType::ASSIGN},
282
282
{" p" , TokenType::PRINT},
283
283
{" s" , TokenType::STMT}},
284
- {" s" },
284
+ {PqlResultType::Tuple, {{ " s" , AttributeRefType::NONE}} },
285
285
{{TokenType::FOLLOWS,
286
286
{TokenType::ASSIGN, " a" },
287
287
{TokenType::PRINT, " p" }}}};
@@ -297,7 +297,7 @@ TEST_CLASS(TestPqlEvaluator) {
297
297
PkbTables::AST const1 = TNode (" 1" );
298
298
spec.value = &const1;
299
299
ParsedQuery pq = {{{" a" , TokenType::ASSIGN}},
300
- {" a" },
300
+ {PqlResultType::Tuple, {{ " a" , AttributeRefType::NONE}} },
301
301
{},
302
302
{ParsedPattern{PqlToken{TokenType::ASSIGN, " a" },
303
303
PqlToken{TokenType::STRING, " q" }, spec}}};
@@ -311,8 +311,9 @@ TEST_CLASS(TestPqlEvaluator) {
311
311
312
312
TEST_METHOD (TestEvaluateParsedQuery_SelectStatementNoClause) {
313
313
// while w; if i; Select i
314
- ParsedQuery pq = {
315
- {{" w" , TokenType::WHILE}, {" i" , TokenType::IF}}, {" i" }, {}};
314
+ ParsedQuery pq = {{{" w" , TokenType::WHILE}, {" i" , TokenType::IF}},
315
+ {PqlResultType::Tuple, {{" i" , AttributeRefType::NONE}}},
316
+ {}};
316
317
std::list<std::string> expected = {" 15" , " 19" };
317
318
std::list<std::string> actual;
318
319
Pql::evaluate (pq, pkb.getQueryInterface (), actual);
@@ -321,7 +322,9 @@ TEST_CLASS(TestPqlEvaluator) {
321
322
Assert::IsTrue (expected == actual);
322
323
323
324
// call c; Select c
324
- pq = {{{" c" , TokenType::CALL}}, {" c" }, {}};
325
+ pq = {{{" c" , TokenType::CALL}},
326
+ {PqlResultType::Tuple, {{" c" , AttributeRefType::NONE}}},
327
+ {}};
325
328
expected = {" 7" , " 11" , " 25" };
326
329
actual.clear ();
327
330
Pql::evaluate (pq, pkb.getQueryInterface (), actual);
@@ -332,7 +335,9 @@ TEST_CLASS(TestPqlEvaluator) {
332
335
333
336
TEST_METHOD (TestEvaluateParsedQuery_SelectProcedureNoClause) {
334
337
// procedure p; Select p
335
- ParsedQuery pq = {{{" p" , TokenType::PROCEDURE}}, {" p" }, {}};
338
+ ParsedQuery pq = {{{" p" , TokenType::PROCEDURE}},
339
+ {PqlResultType::Tuple, {{" p" , AttributeRefType::NONE}}},
340
+ {}};
336
341
std::list<std::string> expected = {" main" , " extra" , " complicate" , " aux" };
337
342
std::list<std::string> actual;
338
343
Pql::evaluate (pq, pkb.getQueryInterface (), actual);
@@ -343,7 +348,9 @@ TEST_CLASS(TestPqlEvaluator) {
343
348
344
349
TEST_METHOD (TestEvaluateParsedQuery_SelectVariableNoClause) {
345
350
// variable v; Select v
346
- ParsedQuery pq = {{{" v" , TokenType::VARIABLE}}, {" v" }, {}};
351
+ ParsedQuery pq = {{{" v" , TokenType::VARIABLE}},
352
+ {PqlResultType::Tuple, {{" v" , AttributeRefType::NONE}}},
353
+ {}};
347
354
std::list<std::string> expected = {{" x" , " y" , " r" , " m" , " q" , " t" , " k" }};
348
355
std::list<std::string> actual;
349
356
Pql::evaluate (pq, pkb.getQueryInterface (), actual);
@@ -354,7 +361,9 @@ TEST_CLASS(TestPqlEvaluator) {
354
361
355
362
TEST_METHOD (TestEvaluateParsedQuery_SelectConstantNoClause) {
356
363
// constant c; Select c
357
- ParsedQuery pq = {{{" c" , TokenType::CONSTANT}}, {" c" }, {}};
364
+ ParsedQuery pq = {{{" c" , TokenType::CONSTANT}},
365
+ {PqlResultType::Tuple, {{" c" , AttributeRefType::NONE}}},
366
+ {}};
358
367
std::list<std::string> expected = {
359
368
" 0" , " 1" , " 5" , " 11111111111111111111111111111111111111" };
360
369
std::list<std::string> actual;
@@ -366,9 +375,11 @@ TEST_CLASS(TestPqlEvaluator) {
366
375
367
376
TEST_METHOD (TestEvaluateParsedQuery_SelectMultipleNoClause) {
368
377
// constant c; procedure p; Select <p, c>
369
- ParsedQuery pq = {{{" c" , TokenType::CONSTANT}, {" p" , TokenType::PROCEDURE}},
370
- {" p" , " c" },
371
- {}};
378
+ ParsedQuery pq = {
379
+ {{" c" , TokenType::CONSTANT}, {" p" , TokenType::PROCEDURE}},
380
+ {PqlResultType::Tuple,
381
+ {{" p" , AttributeRefType::NONE}, {" c" , AttributeRefType::NONE}}},
382
+ {}};
372
383
std::list<std::string> expected = {
373
384
" main 0" , " main 1" ,
374
385
" main 5" , " main 11111111111111111111111111111111111111" ,
@@ -391,11 +402,13 @@ TEST_CLASS(TestPqlEvaluator) {
391
402
/* All seen synonyms
392
403
read r1; read r2; Select <r2, r1> such that Follows(r1, r2)
393
404
*/
394
- ParsedQuery pq = {{{" r1" , TokenType::READ}, {" r2" , TokenType::READ}},
395
- {" r2" , " r1" },
396
- {{TokenType::FOLLOWS,
397
- {TokenType::READ, " r1" },
398
- {TokenType::READ, " r2" }}}};
405
+ ParsedQuery pq = {
406
+ {{" r1" , TokenType::READ}, {" r2" , TokenType::READ}},
407
+ {PqlResultType::Tuple,
408
+ {{" r2" , AttributeRefType::NONE}, {" r1" , AttributeRefType::NONE}}},
409
+ {{TokenType::FOLLOWS,
410
+ {TokenType::READ, " r1" },
411
+ {TokenType::READ, " r2" }}}};
399
412
std::list<VALUE> expected = {" 2 1" , " 9 8" , " 13 12" };
400
413
std::list<VALUE> actual;
401
414
Pql::evaluate (pq, pkb.getQueryInterface (), actual);
@@ -410,7 +423,10 @@ TEST_CLASS(TestPqlEvaluator) {
410
423
{{" w" , TokenType::WHILE},
411
424
{" i" , TokenType::IF},
412
425
{" p" , TokenType::PRINT}},
413
- {" w" , " p" , " i" },
426
+ {PqlResultType::Tuple,
427
+ {{" w" , AttributeRefType::NONE},
428
+ {" p" , AttributeRefType::NONE},
429
+ {" i" , AttributeRefType::NONE}}},
414
430
{{TokenType::FOLLOWS, {TokenType::WHILE, " w" }, {TokenType::IF, " i" }}}};
415
431
expected = {" 17 6 19" , " 17 21 19" , " 17 22 19" , " 17 26 19" };
416
432
actual.clear ();
@@ -425,7 +441,8 @@ TEST_CLASS(TestPqlEvaluator) {
425
441
pq = {{{" a" , TokenType::ASSIGN},
426
442
{" r" , TokenType::READ},
427
443
{" c" , TokenType::CALL}},
428
- {" c" , " a" },
444
+ {PqlResultType::Tuple,
445
+ {{" c" , AttributeRefType::NONE}, {" a" , AttributeRefType::NONE}}},
429
446
{{TokenType::FOLLOWS,
430
447
{TokenType::READ, " r" },
431
448
{TokenType::ASSIGN, " a" }}}};
0 commit comments