- File:
-
- 1 edited
-
tests/list/dlist-insert-remove.cfa (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tests/list/dlist-insert-remove.cfa
rf2d05e9 r4d741e9 1187 1187 //////////////////////////////////////////////////////////// 1188 1188 // 1189 // Section 4f1190 //1191 // Test cases of pop_first, pop_last1192 //1193 // Example of call-side user code1194 //1195 ////////////////////////////////////////////////////////////1196 1197 // These cases assume element removal at first-last is correct1198 1199 void test__pop_first__fred_mine() {1200 1201 fred f1 = {1.7};1202 fred f2 = {2.7};1203 fred f3 = {3.7};1204 1205 dlist(fred_in_mine, fred) flm;1206 insert_last(flm, f1);1207 insert_last(flm, f2);1208 insert_last(flm, f3);1209 1210 dlist(fred_in_yours, fred) fly;1211 insert_last(fly, f1);1212 insert_last(fly, f2);1213 insert_last(fly, f3);1214 1215 printMyFreddies(flm`first, flm`last, 1); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.71216 printYourFreddies(fly`first, fly`last, 1); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.71217 1218 verify(validate(fly));1219 verify(validate(flm));1220 1221 fred & popped = pop_first(flm);1222 1223 verify(validate(fly));1224 verify(validate(flm));1225 1226 printMyFreddies(flm`first, flm`last, 0); // 2.7, 3.7; 2.7; 3.7; 3.7, 2.7 (modified)1227 printYourFreddies(fly`first, fly`last, 0); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.7 (unmodified)1228 1229 // observe f1 is now solo in mine; in yours, it was just traversed1230 printMyFreddies(f1, *0p, 0); // 1.7; 1.7; ;1231 1232 assert( &popped == & f1 );1233 }1234 1235 void test__pop_first__fred_yours() {1236 1237 fred f1 = {1.7};1238 fred f2 = {2.7};1239 fred f3 = {3.7};1240 1241 dlist(fred_in_mine, fred) flm;1242 insert_last(flm, f1);1243 insert_last(flm, f2);1244 insert_last(flm, f3);1245 1246 dlist(fred_in_yours, fred) fly;1247 insert_last(fly, f1);1248 insert_last(fly, f2);1249 insert_last(fly, f3);1250 1251 printMyFreddies(flm`first, flm`last, 1); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.71252 printYourFreddies(fly`first, fly`last, 1); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.71253 1254 verify(validate(fly));1255 verify(validate(flm));1256 1257 fred & popped = pop_first(fly);1258 1259 verify(validate(fly));1260 verify(validate(flm));1261 1262 printMyFreddies(flm`first, flm`last, 0); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.7 (unmodified)1263 printYourFreddies(fly`first, fly`last, 0); // 2.7, 3.7; 2.7; 3.7; 3.7, 2.7 (modified)1264 1265 // observe f1 is now solo in yours; in mine, it was just traversed1266 printYourFreddies(f1, *0p, 0); // 1.7; 1.7; ;1267 1268 assert( &popped == &f1 );1269 }1270 1271 void test__pop_first__maries() {1272 1273 mary m1 = {1.7};1274 mary m2 = {2.7};1275 mary m3 = {3.7};1276 1277 dlist(mary, mary) ml;1278 insert_last(ml, m1);1279 insert_last(ml, m2);1280 insert_last(ml, m3);1281 1282 printMariatheotokos(ml`first, ml`last, 1); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.71283 1284 verify(validate(ml));1285 1286 mary & popped = pop_first(ml);1287 1288 verify(validate(ml));1289 1290 printMariatheotokos(ml`first, ml`last, 0); // 2.7, 3.7; 2.7; 3.7; 3.7, 2.7 (modified)1291 1292 // observe m1 is now solo1293 printMariatheotokos(m1, *0p, 0); // 1.7; 1.7; ;1294 1295 assert( &popped == &m1 );1296 }1297 1298 void test__pop_last__fred_mine() {1299 1300 fred f1 = {1.7};1301 fred f2 = {2.7};1302 fred f3 = {3.7};1303 1304 dlist(fred_in_mine, fred) flm;1305 insert_last(flm, f1);1306 insert_last(flm, f2);1307 insert_last(flm, f3);1308 1309 dlist(fred_in_yours, fred) fly;1310 insert_last(fly, f1);1311 insert_last(fly, f2);1312 insert_last(fly, f3);1313 1314 printMyFreddies(flm`first, flm`last, 1); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.71315 printYourFreddies(fly`first, fly`last, 1); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.71316 1317 verify(validate(fly));1318 verify(validate(flm));1319 1320 fred & popped = pop_last(flm);1321 1322 verify(validate(fly));1323 verify(validate(flm));1324 1325 printMyFreddies(flm`first, flm`last, 0); // 1.7, 2.7; 1.7; 2.7; 2.7, 1.7 (modified)1326 printYourFreddies(fly`first, fly`last, 0); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.7 (unmodified)1327 1328 // observe f3 is now solo in mine; in yours, it was just traversed1329 printMyFreddies(f3, *0p, 0); // 3.7; 3.7; ;1330 1331 assert( &popped == & f3 );1332 }1333 1334 void test__pop_last__fred_yours() {1335 1336 fred f1 = {1.7};1337 fred f2 = {2.7};1338 fred f3 = {3.7};1339 1340 dlist(fred_in_mine, fred) flm;1341 insert_last(flm, f1);1342 insert_last(flm, f2);1343 insert_last(flm, f3);1344 1345 dlist(fred_in_yours, fred) fly;1346 insert_last(fly, f1);1347 insert_last(fly, f2);1348 insert_last(fly, f3);1349 1350 printMyFreddies(flm`first, flm`last, 1); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.71351 printYourFreddies(fly`first, fly`last, 1); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.71352 1353 verify(validate(fly));1354 verify(validate(flm));1355 1356 fred & popped = pop_last(fly);1357 1358 verify(validate(fly));1359 verify(validate(flm));1360 1361 printMyFreddies(flm`first, flm`last, 0); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.7 (unmodified)1362 printYourFreddies(fly`first, fly`last, 0); // 1.7, 2.7; 1.7; 2.7; 2.7, 1.7 (modified)1363 1364 // observe f3 is now solo in yours; in mine, it was just traversed1365 printYourFreddies(f3, *0p, 0); // 3.7; 3.7; ;1366 1367 assert( &popped == & f3 );1368 }1369 1370 void test__pop_last__maries() {1371 1372 mary m1 = {1.7};1373 mary m2 = {2.7};1374 mary m3 = {3.7};1375 1376 dlist(mary, mary) ml;1377 insert_last(ml, m1);1378 insert_last(ml, m2);1379 insert_last(ml, m3);1380 1381 printMariatheotokos(ml`first, ml`last, 1); // 1.7, 2.7, 3.7; 1.7; 3.7; 3.7, 2.7, 1.71382 1383 verify(validate(ml));1384 1385 mary & popped = pop_last(ml);1386 1387 verify(validate(ml));1388 1389 printMariatheotokos(ml`first, ml`last, 0); // 1.7, 1.7; 1.7; 2.7; 2.7, 1.7 (modified)1390 1391 // observe m1 is now solo1392 printMariatheotokos(m3, *0p, 0); // 3.7; 3.7; ;1393 1394 assert( &popped == &m3 );1395 }1396 1397 ////////////////////////////////////////////////////////////1398 //1399 1189 // Section 5 1400 1190 // … … 1632 1422 test__remove_of_sole__mary(); 1633 1423 1634 sout | "";1635 sout | "~~~~~~~~~~ End removal tests on Headed List: First ~~~~~~~~~~";1636 sout | "";1637 1638 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1639 sout | "Test 16-i. Modifying Freds on MINE";1640 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1641 test__pop_first__fred_mine();1642 1643 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1644 sout | "Test 16-ii. Modifying Freds on YOURS";1645 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1646 test__pop_first__fred_yours();1647 1648 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1649 sout | "Test 16-iii. Modifying Maries";1650 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1651 test__pop_first__maries();1652 1653 sout | "";1654 sout | "~~~~~~~~~~ End removal tests on Headed List: Last ~~~~~~~~~~";1655 sout | "";1656 1657 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1658 sout | "Test 17-i. Modifying Freds on MINE";1659 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1660 test__pop_last__fred_mine();1661 1662 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1663 sout | "Test 17-ii. Modifying Freds on YOURS";1664 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1665 test__pop_last__fred_yours();1666 1667 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1668 sout | "Test 17-iii. Modifying Maries";1669 sout | "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";1670 test__pop_last__maries();1671 1672 1424 return 0; 1673 1425 }
Note:
See TracChangeset
for help on using the changeset viewer.