]> git.draconx.ca Git - rrace.git/blob - tests/game.at
610b066817f0b0170cef98f7f8a21c9e6f9ad2a3
[rrace.git] / tests / game.at
1 # Copyright © 2022-2023 Nick Bowler
2 #
3 # This program is free software: you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation, either version 3 of the License, or
6 # (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
15
16 AT_SETUP([board bitmap functions])
17
18 AT_CHECK([boardbit], [0],
19 [[left(0)     left(1)     left(2)     left(3)     left(4)
20  @....       @@...       @@@..       @@@@.       @@@@@
21  @....       @@...       @@@..       @@@@.       @@@@@
22  @....       @@...       @@@..       @@@@.       @@@@@
23  @....       @@...       @@@..       @@@@.       @@@@@
24  @....       @@...       @@@..       @@@@.       @@@@@
25
26 right(0)    right(1)    right(2)    right(3)    right(4)
27  @@@@@       .@@@@       ..@@@       ...@@       ....@
28  @@@@@       .@@@@       ..@@@       ...@@       ....@
29  @@@@@       .@@@@       ..@@@       ...@@       ....@
30  @@@@@       .@@@@       ..@@@       ...@@       ....@
31  @@@@@       .@@@@       ..@@@       ...@@       ....@
32
33 above(0)    above(1)    above(2)    above(3)    above(4)
34  @@@@@       @@@@@       @@@@@       @@@@@       @@@@@
35  .....       @@@@@       @@@@@       @@@@@       @@@@@
36  .....       .....       @@@@@       @@@@@       @@@@@
37  .....       .....       .....       @@@@@       @@@@@
38  .....       .....       .....       .....       @@@@@
39
40 below(0)    below(1)    below(2)    below(3)    below(4)
41  @@@@@       .....       .....       .....       .....
42  @@@@@       @@@@@       .....       .....       .....
43  @@@@@       @@@@@       @@@@@       .....       .....
44  @@@@@       @@@@@       @@@@@       @@@@@       .....
45  @@@@@       @@@@@       @@@@@       @@@@@       @@@@@
46 ]])
47
48 AT_CLEANUP
49
50 TEST_TAP_SIMPLE([board_rect], [boardrect], [], [board])
51
52 AT_SETUP([game_do_move zigzag])
53
54 AT_CHECK([boardmove m4_do(
55   [0010203040],
56   [4131211101],
57   [0212223242],
58   [4333231303],
59   [0414243444])], [0],
60 [[.@@@@
61 @@@@@
62 @@@@@
63 @@@@@
64 @@@@@
65
66 @.@@@
67 @@@@@
68 @@@@@
69 @@@@@
70 @@@@@
71
72 @@.@@
73 @@@@@
74 @@@@@
75 @@@@@
76 @@@@@
77
78 @@@.@
79 @@@@@
80 @@@@@
81 @@@@@
82 @@@@@
83
84 @@@@.
85 @@@@@
86 @@@@@
87 @@@@@
88 @@@@@
89
90 @@@@@
91 @@@@.
92 @@@@@
93 @@@@@
94 @@@@@
95
96 @@@@@
97 @@@.@
98 @@@@@
99 @@@@@
100 @@@@@
101
102 @@@@@
103 @@.@@
104 @@@@@
105 @@@@@
106 @@@@@
107
108 @@@@@
109 @.@@@
110 @@@@@
111 @@@@@
112 @@@@@
113
114 @@@@@
115 .@@@@
116 @@@@@
117 @@@@@
118 @@@@@
119
120 @@@@@
121 @@@@@
122 .@@@@
123 @@@@@
124 @@@@@
125
126 @@@@@
127 @@@@@
128 @.@@@
129 @@@@@
130 @@@@@
131
132 @@@@@
133 @@@@@
134 @@.@@
135 @@@@@
136 @@@@@
137
138 @@@@@
139 @@@@@
140 @@@.@
141 @@@@@
142 @@@@@
143
144 @@@@@
145 @@@@@
146 @@@@.
147 @@@@@
148 @@@@@
149
150 @@@@@
151 @@@@@
152 @@@@@
153 @@@@.
154 @@@@@
155
156 @@@@@
157 @@@@@
158 @@@@@
159 @@@.@
160 @@@@@
161
162 @@@@@
163 @@@@@
164 @@@@@
165 @@.@@
166 @@@@@
167
168 @@@@@
169 @@@@@
170 @@@@@
171 @.@@@
172 @@@@@
173
174 @@@@@
175 @@@@@
176 @@@@@
177 .@@@@
178 @@@@@
179
180 @@@@@
181 @@@@@
182 @@@@@
183 @@@@@
184 .@@@@
185
186 @@@@@
187 @@@@@
188 @@@@@
189 @@@@@
190 @.@@@
191
192 @@@@@
193 @@@@@
194 @@@@@
195 @@@@@
196 @@.@@
197
198 @@@@@
199 @@@@@
200 @@@@@
201 @@@@@
202 @@@.@
203
204 @@@@@
205 @@@@@
206 @@@@@
207 @@@@@
208 @@@@.
209 ]])
210
211 AT_CLEANUP
212
213 AT_SETUP([game_do_move vertical])
214
215 AT_CHECK([boardmove m4_do(
216   [020103000402],
217   [121311141012],
218   [222123202422],
219   [323331343032],
220   [424143404442])], [0],
221 [[@@@@@
222 @@@@@
223 .@@@@
224 @@@@@
225 @@@@@
226
227 @@@@@
228 .@@@@
229 @@@@@
230 @@@@@
231 @@@@@
232
233 @@@@@
234 @@@@@
235 @@@@@
236 .@@@@
237 @@@@@
238
239 .@@@@
240 @@@@@
241 @@@@@
242 @@@@@
243 @@@@@
244
245 @@@@@
246 @@@@@
247 @@@@@
248 @@@@@
249 .@@@@
250
251 @@@@@
252 @@@@@
253 .@@@@
254 @@@@@
255 @@@@@
256
257 @@@@@
258 @@@@@
259 @.@@@
260 @@@@@
261 @@@@@
262
263 @@@@@
264 @@@@@
265 @@@@@
266 @.@@@
267 @@@@@
268
269 @@@@@
270 @.@@@
271 @@@@@
272 @@@@@
273 @@@@@
274
275 @@@@@
276 @@@@@
277 @@@@@
278 @@@@@
279 @.@@@
280
281 @.@@@
282 @@@@@
283 @@@@@
284 @@@@@
285 @@@@@
286
287 @@@@@
288 @@@@@
289 @.@@@
290 @@@@@
291 @@@@@
292
293 @@@@@
294 @@@@@
295 @@.@@
296 @@@@@
297 @@@@@
298
299 @@@@@
300 @@.@@
301 @@@@@
302 @@@@@
303 @@@@@
304
305 @@@@@
306 @@@@@
307 @@@@@
308 @@.@@
309 @@@@@
310
311 @@.@@
312 @@@@@
313 @@@@@
314 @@@@@
315 @@@@@
316
317 @@@@@
318 @@@@@
319 @@@@@
320 @@@@@
321 @@.@@
322
323 @@@@@
324 @@@@@
325 @@.@@
326 @@@@@
327 @@@@@
328
329 @@@@@
330 @@@@@
331 @@@.@
332 @@@@@
333 @@@@@
334
335 @@@@@
336 @@@@@
337 @@@@@
338 @@@.@
339 @@@@@
340
341 @@@@@
342 @@@.@
343 @@@@@
344 @@@@@
345 @@@@@
346
347 @@@@@
348 @@@@@
349 @@@@@
350 @@@@@
351 @@@.@
352
353 @@@.@
354 @@@@@
355 @@@@@
356 @@@@@
357 @@@@@
358
359 @@@@@
360 @@@@@
361 @@@.@
362 @@@@@
363 @@@@@
364
365 @@@@@
366 @@@@@
367 @@@@.
368 @@@@@
369 @@@@@
370
371 @@@@@
372 @@@@.
373 @@@@@
374 @@@@@
375 @@@@@
376
377 @@@@@
378 @@@@@
379 @@@@@
380 @@@@.
381 @@@@@
382
383 @@@@.
384 @@@@@
385 @@@@@
386 @@@@@
387 @@@@@
388
389 @@@@@
390 @@@@@
391 @@@@@
392 @@@@@
393 @@@@.
394
395 @@@@@
396 @@@@@
397 @@@@.
398 @@@@@
399 @@@@@
400 ]])
401
402 AT_CLEANUP
403
404 AT_SETUP([game_do_move horizontal])
405
406 AT_CHECK([boardmove m4_do(
407   [203010400020],
408   [211131014121],
409   [223212420222],
410   [231333034323],
411   [243414440424])], [0],
412 [[@@.@@
413 @@@@@
414 @@@@@
415 @@@@@
416 @@@@@
417
418 @@@.@
419 @@@@@
420 @@@@@
421 @@@@@
422 @@@@@
423
424 @.@@@
425 @@@@@
426 @@@@@
427 @@@@@
428 @@@@@
429
430 @@@@.
431 @@@@@
432 @@@@@
433 @@@@@
434 @@@@@
435
436 .@@@@
437 @@@@@
438 @@@@@
439 @@@@@
440 @@@@@
441
442 @@.@@
443 @@@@@
444 @@@@@
445 @@@@@
446 @@@@@
447
448 @@@@@
449 @@.@@
450 @@@@@
451 @@@@@
452 @@@@@
453
454 @@@@@
455 @.@@@
456 @@@@@
457 @@@@@
458 @@@@@
459
460 @@@@@
461 @@@.@
462 @@@@@
463 @@@@@
464 @@@@@
465
466 @@@@@
467 .@@@@
468 @@@@@
469 @@@@@
470 @@@@@
471
472 @@@@@
473 @@@@.
474 @@@@@
475 @@@@@
476 @@@@@
477
478 @@@@@
479 @@.@@
480 @@@@@
481 @@@@@
482 @@@@@
483
484 @@@@@
485 @@@@@
486 @@.@@
487 @@@@@
488 @@@@@
489
490 @@@@@
491 @@@@@
492 @@@.@
493 @@@@@
494 @@@@@
495
496 @@@@@
497 @@@@@
498 @.@@@
499 @@@@@
500 @@@@@
501
502 @@@@@
503 @@@@@
504 @@@@.
505 @@@@@
506 @@@@@
507
508 @@@@@
509 @@@@@
510 .@@@@
511 @@@@@
512 @@@@@
513
514 @@@@@
515 @@@@@
516 @@.@@
517 @@@@@
518 @@@@@
519
520 @@@@@
521 @@@@@
522 @@@@@
523 @@.@@
524 @@@@@
525
526 @@@@@
527 @@@@@
528 @@@@@
529 @.@@@
530 @@@@@
531
532 @@@@@
533 @@@@@
534 @@@@@
535 @@@.@
536 @@@@@
537
538 @@@@@
539 @@@@@
540 @@@@@
541 .@@@@
542 @@@@@
543
544 @@@@@
545 @@@@@
546 @@@@@
547 @@@@.
548 @@@@@
549
550 @@@@@
551 @@@@@
552 @@@@@
553 @@.@@
554 @@@@@
555
556 @@@@@
557 @@@@@
558 @@@@@
559 @@@@@
560 @@.@@
561
562 @@@@@
563 @@@@@
564 @@@@@
565 @@@@@
566 @@@.@
567
568 @@@@@
569 @@@@@
570 @@@@@
571 @@@@@
572 @.@@@
573
574 @@@@@
575 @@@@@
576 @@@@@
577 @@@@@
578 @@@@.
579
580 @@@@@
581 @@@@@
582 @@@@@
583 @@@@@
584 .@@@@
585
586 @@@@@
587 @@@@@
588 @@@@@
589 @@@@@
590 @@.@@
591 ]])
592
593 AT_CLEANUP
594
595 AT_SETUP([xoshiro256** sanity])
596
597 AT_CHECK([rng-test >out
598 grep -v '^ok' out], [0], [1..200
599 ])
600
601 AT_CLEANUP
602
603 AT_SETUP([game_check_goal])
604
605 AT_DATA([boards.dat],
606 [[0 0 0 0 0 0
607 1f8c63f 1f8c63f 1f8c63f 0000 0000 0000
608 1f8c63f 1f8c63f 1f8c63f ffff 0000 0000
609 1f8c63f 1f8c63f 1f8c63f 0000 ffff 0000
610 1f8c63f 1f8c63f 1f8c63f 0000 0000 ffff
611 00739c0 1f8c63f 1f8c63f ffff 0000 0000
612 1f8c63f 00739c0 1f8c63f 0000 ffff 0000
613 1f8c63f 1f8c63f 00739c0 0000 0000 ffff
614 0000000 0000000 0000000 0001 0020 0400
615 ]])
616
617 AT_DATA([expout],
618 [[00000
619 00000
620 739c0
621 739c0
622 739c0
623 00000
624 00000
625 00000
626 10840
627 ]])
628
629 AT_CHECK([checkgoal <boards.dat >result.dat && cat result.dat], [0], [expout])
630
631 AT_CLEANUP
632
633 AT_SETUP([game_overlay_goal])
634
635 AT_DATA([boards.dat], [dnl
636 0 0 0  0  0  0
637 0 0 0 -1  0  0
638 0 0 0  0 -1  0
639 0 0 0  0  0 -1
640 1ffffff 1ffffff 1ffffff 0 0 0
641 ])
642
643 AT_DATA([expout], [dnl
644 0000000 0000000 0000000
645 00739c0 0000000 0000000
646 0000000 00739c0 0000000
647 0000000 0000000 00739c0
648 1f8c63f 1f8c63f 1f8c63f
649 ])
650
651 AT_CHECK([overlaygoal <boards.dat >result.dat && cat result.dat],
652   [0], [expout])
653
654 AT_CLEANUP