|
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 |
| - number, expected) |
7 |
| - VALUES |
8 |
| - ('1 is I', '19828a3a-fbf7-4661-8ddd-cbaeee0e2178', 1, 'I'), |
9 |
| - ('2 is II', 'f088f064-2d35-4476-9a41-f576da3f7b03', 2, 'II'), |
10 |
| - ('3 is III', 'b374a79c-3bea-43e6-8db8-1286f79c7106', 3, 'III'), |
11 |
| - ('4 is IV', '05a0a1d4-a140-4db1-82e8-fcc21fdb49bb', 4, 'IV'), |
12 |
| - ('5 is V', '57c0f9ad-5024-46ab-975d-de18c430b290', 5, 'V'), |
13 |
| - ('6 is VI', '20a2b47f-e57f-4797-a541-0b3825d7f249', 6, 'VI'), |
14 |
| - ('9 is IX', 'ff3fb08c-4917-4aab-9f4e-d663491d083d', 9, 'IX'), |
15 |
| - ('16 is XVI', '6d1d82d5-bf3e-48af-9139-87d7165ed509', 16, 'XVI'), |
16 |
| - ('27 is XXVII', '2bda64ca-7d28-4c56-b08d-16ce65716cf6', 27, 'XXVII'), |
17 |
| - ('48 is XLVIII', 'a1f812ef-84da-4e02-b4f0-89c907d0962c', 48, 'XLVIII'), |
18 |
| - ('49 is XLIX', '607ead62-23d6-4c11-a396-ef821e2e5f75', 49, 'XLIX'), |
19 |
| - ('59 is LIX', 'd5b283d4-455d-4e68-aacf-add6c4b51915', 59, 'LIX'), |
20 |
| - ('66 is LXVI', '4465ffd5-34dc-44f3-ada5-56f5007b6dad', 66, 'LXVI'), |
21 |
| - ('93 is XCIII', '46b46e5b-24da-4180-bfe2-2ef30b39d0d0', 93, 'XCIII'), |
22 |
| - ('141 is CXLI', '30494be1-9afb-4f84-9d71-db9df18b55e3', 141, 'CXLI'), |
23 |
| - ('163 is CLXIII', '267f0207-3c55-459a-b81d-67cec7a46ed9', 163, 'CLXIII'), |
24 |
| - ('166 is CLXVI', '902ad132-0b4d-40e3-8597-ba5ed611dd8d', 166, 'CLXVI'), |
25 |
| - ('402 is CDII', 'cdb06885-4485-4d71-8bfb-c9d0f496b404', 402, 'CDII'), |
26 |
| - ('575 is DLXXV', '6b71841d-13b2-46b4-ba97-dec28133ea80', 575, 'DLXXV'), |
27 |
| - ('666 is DCLXVI', 'dacb84b9-ea1c-4a61-acbb-ce6b36674906', 666, 'DCLXVI'), |
28 |
| - ('911 is CMXI', '432de891-7fd6-4748-a7f6-156082eeca2f', 911, 'CMXI'), |
29 |
| - ('1024 is MXXIV', 'e6de6d24-f668-41c0-88d7-889c0254d173', 1024, 'MXXIV'), |
30 |
| - ('1666 is MDCLXVI', 'efbe1d6a-9f98-4eb5-82bc-72753e3ac328', 1666, 'MDCLXVI'), |
31 |
| - ('3000 is MMM', 'bb550038-d4eb-4be2-a9ce-f21961ac3bc6', 3000, 'MMM'), |
32 |
| - ('3001 is MMMI', '3bc4b41c-c2e6-49d9-9142-420691504336', 3001, 'MMMI'), |
33 |
| - ('3888 is MMMDCCCLXXXVIII', '2f89cad7-73f6-4d1b-857b-0ef531f68b7e', 3888, 'MMMDCCCLXXXVIII'), |
34 |
| - ('3999 is MMMCMXCIX', '4e18e96b-5fbb-43df-a91b-9cb511fe0856', 3999, 'MMMCMXCIX'); |
| 4 | +INSERT INTO |
| 5 | + tests (name, uuid, number, expected) |
| 6 | +VALUES |
| 7 | + ( |
| 8 | + '1 is I', |
| 9 | + '19828a3a-fbf7-4661-8ddd-cbaeee0e2178', |
| 10 | + 1, |
| 11 | + 'I' |
| 12 | + ), |
| 13 | + ( |
| 14 | + '2 is II', |
| 15 | + 'f088f064-2d35-4476-9a41-f576da3f7b03', |
| 16 | + 2, |
| 17 | + 'II' |
| 18 | + ), |
| 19 | + ( |
| 20 | + '3 is III', |
| 21 | + 'b374a79c-3bea-43e6-8db8-1286f79c7106', |
| 22 | + 3, |
| 23 | + 'III' |
| 24 | + ), |
| 25 | + ( |
| 26 | + '4 is IV', |
| 27 | + '05a0a1d4-a140-4db1-82e8-fcc21fdb49bb', |
| 28 | + 4, |
| 29 | + 'IV' |
| 30 | + ), |
| 31 | + ( |
| 32 | + '5 is V', |
| 33 | + '57c0f9ad-5024-46ab-975d-de18c430b290', |
| 34 | + 5, |
| 35 | + 'V' |
| 36 | + ), |
| 37 | + ( |
| 38 | + '6 is VI', |
| 39 | + '20a2b47f-e57f-4797-a541-0b3825d7f249', |
| 40 | + 6, |
| 41 | + 'VI' |
| 42 | + ), |
| 43 | + ( |
| 44 | + '9 is IX', |
| 45 | + 'ff3fb08c-4917-4aab-9f4e-d663491d083d', |
| 46 | + 9, |
| 47 | + 'IX' |
| 48 | + ), |
| 49 | + ( |
| 50 | + '16 is XVI', |
| 51 | + '6d1d82d5-bf3e-48af-9139-87d7165ed509', |
| 52 | + 16, |
| 53 | + 'XVI' |
| 54 | + ), |
| 55 | + ( |
| 56 | + '27 is XXVII', |
| 57 | + '2bda64ca-7d28-4c56-b08d-16ce65716cf6', |
| 58 | + 27, |
| 59 | + 'XXVII' |
| 60 | + ), |
| 61 | + ( |
| 62 | + '48 is XLVIII', |
| 63 | + 'a1f812ef-84da-4e02-b4f0-89c907d0962c', |
| 64 | + 48, |
| 65 | + 'XLVIII' |
| 66 | + ), |
| 67 | + ( |
| 68 | + '49 is XLIX', |
| 69 | + '607ead62-23d6-4c11-a396-ef821e2e5f75', |
| 70 | + 49, |
| 71 | + 'XLIX' |
| 72 | + ), |
| 73 | + ( |
| 74 | + '59 is LIX', |
| 75 | + 'd5b283d4-455d-4e68-aacf-add6c4b51915', |
| 76 | + 59, |
| 77 | + 'LIX' |
| 78 | + ), |
| 79 | + ( |
| 80 | + '66 is LXVI', |
| 81 | + '4465ffd5-34dc-44f3-ada5-56f5007b6dad', |
| 82 | + 66, |
| 83 | + 'LXVI' |
| 84 | + ), |
| 85 | + ( |
| 86 | + '93 is XCIII', |
| 87 | + '46b46e5b-24da-4180-bfe2-2ef30b39d0d0', |
| 88 | + 93, |
| 89 | + 'XCIII' |
| 90 | + ), |
| 91 | + ( |
| 92 | + '141 is CXLI', |
| 93 | + '30494be1-9afb-4f84-9d71-db9df18b55e3', |
| 94 | + 141, |
| 95 | + 'CXLI' |
| 96 | + ), |
| 97 | + ( |
| 98 | + '163 is CLXIII', |
| 99 | + '267f0207-3c55-459a-b81d-67cec7a46ed9', |
| 100 | + 163, |
| 101 | + 'CLXIII' |
| 102 | + ), |
| 103 | + ( |
| 104 | + '166 is CLXVI', |
| 105 | + '902ad132-0b4d-40e3-8597-ba5ed611dd8d', |
| 106 | + 166, |
| 107 | + 'CLXVI' |
| 108 | + ), |
| 109 | + ( |
| 110 | + '402 is CDII', |
| 111 | + 'cdb06885-4485-4d71-8bfb-c9d0f496b404', |
| 112 | + 402, |
| 113 | + 'CDII' |
| 114 | + ), |
| 115 | + ( |
| 116 | + '575 is DLXXV', |
| 117 | + '6b71841d-13b2-46b4-ba97-dec28133ea80', |
| 118 | + 575, |
| 119 | + 'DLXXV' |
| 120 | + ), |
| 121 | + ( |
| 122 | + '666 is DCLXVI', |
| 123 | + 'dacb84b9-ea1c-4a61-acbb-ce6b36674906', |
| 124 | + 666, |
| 125 | + 'DCLXVI' |
| 126 | + ), |
| 127 | + ( |
| 128 | + '911 is CMXI', |
| 129 | + '432de891-7fd6-4748-a7f6-156082eeca2f', |
| 130 | + 911, |
| 131 | + 'CMXI' |
| 132 | + ), |
| 133 | + ( |
| 134 | + '1024 is MXXIV', |
| 135 | + 'e6de6d24-f668-41c0-88d7-889c0254d173', |
| 136 | + 1024, |
| 137 | + 'MXXIV' |
| 138 | + ), |
| 139 | + ( |
| 140 | + '1666 is MDCLXVI', |
| 141 | + 'efbe1d6a-9f98-4eb5-82bc-72753e3ac328', |
| 142 | + 1666, |
| 143 | + 'MDCLXVI' |
| 144 | + ), |
| 145 | + ( |
| 146 | + '3000 is MMM', |
| 147 | + 'bb550038-d4eb-4be2-a9ce-f21961ac3bc6', |
| 148 | + 3000, |
| 149 | + 'MMM' |
| 150 | + ), |
| 151 | + ( |
| 152 | + '3001 is MMMI', |
| 153 | + '3bc4b41c-c2e6-49d9-9142-420691504336', |
| 154 | + 3001, |
| 155 | + 'MMMI' |
| 156 | + ), |
| 157 | + ( |
| 158 | + '3888 is MMMDCCCLXXXVIII', |
| 159 | + '2f89cad7-73f6-4d1b-857b-0ef531f68b7e', |
| 160 | + 3888, |
| 161 | + 'MMMDCCCLXXXVIII' |
| 162 | + ), |
| 163 | + ( |
| 164 | + '3999 is MMMCMXCIX', |
| 165 | + '4e18e96b-5fbb-43df-a91b-9cb511fe0856', |
| 166 | + 3999, |
| 167 | + 'MMMCMXCIX' |
| 168 | + ); |
35 | 169 |
|
36 | 170 | -- Comparison of user input and the tests updates the status for each test:
|
37 | 171 | UPDATE tests
|
38 |
| -SET status = 'pass' |
39 |
| -FROM (SELECT number, result FROM "roman-numerals") AS actual |
40 |
| -WHERE (actual.number, actual.result) = (tests.number, tests.expected); |
| 172 | +SET |
| 173 | + status = 'pass' |
| 174 | +FROM |
| 175 | + ( |
| 176 | + SELECT |
| 177 | + number, |
| 178 | + result |
| 179 | + FROM |
| 180 | + "roman-numerals" |
| 181 | + ) AS actual |
| 182 | +WHERE |
| 183 | + (actual.number, actual.result) = (tests.number, tests.expected); |
41 | 184 |
|
42 | 185 | -- Write results and debug info:
|
43 | 186 | .read ./test_reporter.sql
|
44 |
| - |
|
0 commit comments