|
1 | 1 | -- Setup test table and read in student solution:
|
2 | 2 | .read ./test_setup.sql
|
3 |
| - |
4 | 3 | -- Test cases:
|
5 |
| -INSERT INTO tests (name, uuid, |
6 |
| - diagram, student, expected) |
7 |
| - VALUES |
8 |
| - ('garden with single student', '1fc316ed-17ab-4fba-88ef-3ae78296b692', |
9 |
| - 'RC' || char(10) || 'GG', 'Alice', 'radishes,clover,grass,grass'), |
10 |
| - ('different garden with single student', 'acd19dc1-2200-4317-bc2a-08f021276b40', |
11 |
| - 'VC' || char(10) || 'RC', 'Alice', 'violets,clover,radishes,clover'), |
12 |
| - ('garden with two students', 'c376fcc8-349c-446c-94b0-903947315757', |
13 |
| - 'VVCG' || char(10) || 'VVRC', 'Bob', 'clover,grass,radishes,clover'), |
14 |
| - ('second student''s garden', '2d620f45-9617-4924-9d27-751c80d17db9', |
15 |
| - 'VVCCGG' || char(10) || 'VVCCGG', 'Bob', 'clover,clover,clover,clover'), |
16 |
| - ('third student''s garden', '57712331-4896-4364-89f8-576421d69c44', |
17 |
| - 'VVCCGG' || char(10) || 'VVCCGG', 'Charlie', 'grass,grass,grass,grass'), |
18 |
| - ('for Alice, first student''s garden', '149b4290-58e1-40f2-8ae4-8b87c46e765b', |
19 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'Alice', 'violets,radishes,violets,radishes'), |
20 |
| - ('for Bob, second student''s garden', 'ba25dbbc-10bd-4a37-b18e-f89ecd098a5e', |
21 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'Bob', 'clover,grass,clover,clover'), |
22 |
| - ('for Charlie', '566b621b-f18e-4c5f-873e-be30544b838c', |
23 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'Charlie', 'violets,violets,clover,grass'), |
24 |
| - ('for David', '3ad3df57-dd98-46fc-9269-1877abf612aa', |
25 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'David', 'radishes,violets,clover,radishes'), |
26 |
| - ('for Eve', '0f0a55d1-9710-46ed-a0eb-399ba8c72db2', |
27 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'Eve', 'clover,grass,radishes,grass'), |
28 |
| - ('for Fred', 'a7e80c90-b140-4ea1-aee3-f4625365c9a4', |
29 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'Fred', 'grass,clover,violets,clover'), |
30 |
| - ('for Ginny', '9d94b273-2933-471b-86e8-dba68694c615', |
31 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'Ginny', 'clover,grass,grass,clover'), |
32 |
| - ('for Harriet', 'f55bc6c2-ade8-4844-87c4-87196f1b7258', |
33 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'Harriet', 'violets,radishes,radishes,violets'), |
34 |
| - ('for Ileana', '759070a3-1bb1-4dd4-be2c-7cce1d7679ae', |
35 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'Ileana', 'grass,clover,violets,clover'), |
36 |
| - ('for Joseph', '78578123-2755-4d4a-9c7d-e985b8dda1c6', |
37 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'Joseph', 'violets,clover,violets,grass'), |
38 |
| - ('for Kincaid, second to last student''s garden', '6bb66df7-f433-41ab-aec2-3ead6e99f65b', |
39 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'Kincaid', 'grass,clover,clover,grass'), |
40 |
| - ('for Larry, last student''s garden', 'd7edec11-6488-418a-94e6-ed509e0fa7eb', |
41 |
| - 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', 'Larry', 'grass,violets,clover,violets'); |
| 4 | +INSERT INTO |
| 5 | + tests (name, uuid, diagram, student, expected) |
| 6 | +VALUES |
| 7 | + ( |
| 8 | + 'garden with single student', |
| 9 | + '1fc316ed-17ab-4fba-88ef-3ae78296b692', |
| 10 | + 'RC' || char(10) || 'GG', |
| 11 | + 'Alice', |
| 12 | + 'radishes,clover,grass,grass' |
| 13 | + ), |
| 14 | + ( |
| 15 | + 'different garden with single student', |
| 16 | + 'acd19dc1-2200-4317-bc2a-08f021276b40', |
| 17 | + 'VC' || char(10) || 'RC', |
| 18 | + 'Alice', |
| 19 | + 'violets,clover,radishes,clover' |
| 20 | + ), |
| 21 | + ( |
| 22 | + 'garden with two students', |
| 23 | + 'c376fcc8-349c-446c-94b0-903947315757', |
| 24 | + 'VVCG' || char(10) || 'VVRC', |
| 25 | + 'Bob', |
| 26 | + 'clover,grass,radishes,clover' |
| 27 | + ), |
| 28 | + ( |
| 29 | + 'second student''s garden', |
| 30 | + '2d620f45-9617-4924-9d27-751c80d17db9', |
| 31 | + 'VVCCGG' || char(10) || 'VVCCGG', |
| 32 | + 'Bob', |
| 33 | + 'clover,clover,clover,clover' |
| 34 | + ), |
| 35 | + ( |
| 36 | + 'third student''s garden', |
| 37 | + '57712331-4896-4364-89f8-576421d69c44', |
| 38 | + 'VVCCGG' || char(10) || 'VVCCGG', |
| 39 | + 'Charlie', |
| 40 | + 'grass,grass,grass,grass' |
| 41 | + ), |
| 42 | + ( |
| 43 | + 'for Alice, first student''s garden', |
| 44 | + '149b4290-58e1-40f2-8ae4-8b87c46e765b', |
| 45 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 46 | + 'Alice', |
| 47 | + 'violets,radishes,violets,radishes' |
| 48 | + ), |
| 49 | + ( |
| 50 | + 'for Bob, second student''s garden', |
| 51 | + 'ba25dbbc-10bd-4a37-b18e-f89ecd098a5e', |
| 52 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 53 | + 'Bob', |
| 54 | + 'clover,grass,clover,clover' |
| 55 | + ), |
| 56 | + ( |
| 57 | + 'for Charlie', |
| 58 | + '566b621b-f18e-4c5f-873e-be30544b838c', |
| 59 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 60 | + 'Charlie', |
| 61 | + 'violets,violets,clover,grass' |
| 62 | + ), |
| 63 | + ( |
| 64 | + 'for David', |
| 65 | + '3ad3df57-dd98-46fc-9269-1877abf612aa', |
| 66 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 67 | + 'David', |
| 68 | + 'radishes,violets,clover,radishes' |
| 69 | + ), |
| 70 | + ( |
| 71 | + 'for Eve', |
| 72 | + '0f0a55d1-9710-46ed-a0eb-399ba8c72db2', |
| 73 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 74 | + 'Eve', |
| 75 | + 'clover,grass,radishes,grass' |
| 76 | + ), |
| 77 | + ( |
| 78 | + 'for Fred', |
| 79 | + 'a7e80c90-b140-4ea1-aee3-f4625365c9a4', |
| 80 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 81 | + 'Fred', |
| 82 | + 'grass,clover,violets,clover' |
| 83 | + ), |
| 84 | + ( |
| 85 | + 'for Ginny', |
| 86 | + '9d94b273-2933-471b-86e8-dba68694c615', |
| 87 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 88 | + 'Ginny', |
| 89 | + 'clover,grass,grass,clover' |
| 90 | + ), |
| 91 | + ( |
| 92 | + 'for Harriet', |
| 93 | + 'f55bc6c2-ade8-4844-87c4-87196f1b7258', |
| 94 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 95 | + 'Harriet', |
| 96 | + 'violets,radishes,radishes,violets' |
| 97 | + ), |
| 98 | + ( |
| 99 | + 'for Ileana', |
| 100 | + '759070a3-1bb1-4dd4-be2c-7cce1d7679ae', |
| 101 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 102 | + 'Ileana', |
| 103 | + 'grass,clover,violets,clover' |
| 104 | + ), |
| 105 | + ( |
| 106 | + 'for Joseph', |
| 107 | + '78578123-2755-4d4a-9c7d-e985b8dda1c6', |
| 108 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 109 | + 'Joseph', |
| 110 | + 'violets,clover,violets,grass' |
| 111 | + ), |
| 112 | + ( |
| 113 | + 'for Kincaid, second to last student''s garden', |
| 114 | + '6bb66df7-f433-41ab-aec2-3ead6e99f65b', |
| 115 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 116 | + 'Kincaid', |
| 117 | + 'grass,clover,clover,grass' |
| 118 | + ), |
| 119 | + ( |
| 120 | + 'for Larry, last student''s garden', |
| 121 | + 'd7edec11-6488-418a-94e6-ed509e0fa7eb', |
| 122 | + 'VRCGVVRVCGGCCGVRGCVCGCGV' || char(10) || 'VRCCCGCRRGVCGCRVVCVGCGCV', |
| 123 | + 'Larry', |
| 124 | + 'grass,violets,clover,violets' |
| 125 | + ); |
42 | 126 |
|
43 | 127 | -- Comparison of user input and the tests updates the status for each test:
|
44 | 128 | UPDATE tests
|
45 |
| -SET status = 'pass' |
46 |
| -FROM (SELECT diagram, student, result FROM "kindergarten-garden") AS actual |
47 |
| -WHERE (actual.diagram, actual.student, actual.result) = (tests.diagram, tests.student, tests.expected); |
| 129 | +SET |
| 130 | + status = 'pass' |
| 131 | +FROM |
| 132 | + ( |
| 133 | + SELECT |
| 134 | + diagram, |
| 135 | + student, |
| 136 | + result |
| 137 | + FROM |
| 138 | + "kindergarten-garden" |
| 139 | + ) AS actual |
| 140 | +WHERE |
| 141 | + (actual.diagram, actual.student, actual.result) = (tests.diagram, tests.student, tests.expected); |
48 | 142 |
|
49 | 143 | -- Write results and debug info:
|
50 | 144 | .read ./test_reporter.sql
|
0 commit comments