]> git.draconx.ca Git - rrace.git/blob - tests/game.at
76c802a5beb9072783c092cf1cc604f38d266eb6
[rrace.git] / tests / game.at
1 # Copyright © 2022 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 AT_SETUP([game_do_move zigzag])
51
52 AT_CHECK([boardmove m4_do(
53   [0010203040],
54   [4131211101],
55   [0212223242],
56   [4333231303],
57   [0414243444])], [0],
58 [[.@@@@
59 @@@@@
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 AT_CLEANUP
210
211 AT_SETUP([game_do_move vertical])
212
213 AT_CHECK([boardmove m4_do(
214   [020103000402],
215   [121311141012],
216   [222123202422],
217   [323331343032],
218   [424143404442])], [0],
219 [[@@@@@
220 @@@@@
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 AT_CLEANUP
401
402 AT_SETUP([game_do_move horizontal])
403
404 AT_CHECK([boardmove m4_do(
405   [203010400020],
406   [211131014121],
407   [223212420222],
408   [231333034323],
409   [243414440424])], [0],
410 [[@@.@@
411 @@@@@
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 AT_CLEANUP
592
593 AT_SETUP([xoshiro256** sanity])
594
595 AT_CHECK([rng-test >out
596 grep -v '^ok' out], [0], [1..200
597 ])
598
599 AT_CLEANUP
600
601 AT_SETUP([game_check_goal])
602
603 AT_DATA([boards.dat],
604 [[0 0 0 0 0 0
605 1f8c63f 1f8c63f 1f8c63f 0000 0000 0000
606 1f8c63f 1f8c63f 1f8c63f ffff 0000 0000
607 1f8c63f 1f8c63f 1f8c63f 0000 ffff 0000
608 1f8c63f 1f8c63f 1f8c63f 0000 0000 ffff
609 00739c0 1f8c63f 1f8c63f ffff 0000 0000
610 1f8c63f 00739c0 1f8c63f 0000 ffff 0000
611 1f8c63f 1f8c63f 00739c0 0000 0000 ffff
612 0000000 0000000 0000000 0001 0020 0400
613 ]])
614
615 AT_DATA([expout],
616 [[00000
617 00000
618 739c0
619 739c0
620 739c0
621 00000
622 00000
623 00000
624 10840
625 ]])
626
627 AT_CHECK([checkgoal <boards.dat >result.dat && cat result.dat], [0], [expout])
628
629 AT_CLEANUP