X-Git-Url: https://git.draconx.ca/gitweb/rrace.git/blobdiff_plain/30f49b9152dcf5ce7baefa9287b0ec627155fba9..a70b0ef8bf7cb26cc779e9b2da480295f5ebf2bd:/tests/game.at?ds=inline
diff --git a/tests/game.at b/tests/game.at
index 9cfc7af..610b066 100644
--- a/tests/game.at
+++ b/tests/game.at
@@ -1,3 +1,54 @@
+# Copyright © 2022-2023 Nick Bowler
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+AT_SETUP([board bitmap functions])
+
+AT_CHECK([boardbit], [0],
+[[left(0) left(1) left(2) left(3) left(4)
+ @.... @@... @@@.. @@@@. @@@@@
+ @.... @@... @@@.. @@@@. @@@@@
+ @.... @@... @@@.. @@@@. @@@@@
+ @.... @@... @@@.. @@@@. @@@@@
+ @.... @@... @@@.. @@@@. @@@@@
+
+right(0) right(1) right(2) right(3) right(4)
+ @@@@@ .@@@@ ..@@@ ...@@ ....@
+ @@@@@ .@@@@ ..@@@ ...@@ ....@
+ @@@@@ .@@@@ ..@@@ ...@@ ....@
+ @@@@@ .@@@@ ..@@@ ...@@ ....@
+ @@@@@ .@@@@ ..@@@ ...@@ ....@
+
+above(0) above(1) above(2) above(3) above(4)
+ @@@@@ @@@@@ @@@@@ @@@@@ @@@@@
+ ..... @@@@@ @@@@@ @@@@@ @@@@@
+ ..... ..... @@@@@ @@@@@ @@@@@
+ ..... ..... ..... @@@@@ @@@@@
+ ..... ..... ..... ..... @@@@@
+
+below(0) below(1) below(2) below(3) below(4)
+ @@@@@ ..... ..... ..... .....
+ @@@@@ @@@@@ ..... ..... .....
+ @@@@@ @@@@@ @@@@@ ..... .....
+ @@@@@ @@@@@ @@@@@ @@@@@ .....
+ @@@@@ @@@@@ @@@@@ @@@@@ @@@@@
+]])
+
+AT_CLEANUP
+
+TEST_TAP_SIMPLE([board_rect], [boardrect], [], [board])
+
AT_SETUP([game_do_move zigzag])
AT_CHECK([boardmove m4_do(
@@ -548,3 +599,56 @@ grep -v '^ok' out], [0], [1..200
])
AT_CLEANUP
+
+AT_SETUP([game_check_goal])
+
+AT_DATA([boards.dat],
+[[0 0 0 0 0 0
+1f8c63f 1f8c63f 1f8c63f 0000 0000 0000
+1f8c63f 1f8c63f 1f8c63f ffff 0000 0000
+1f8c63f 1f8c63f 1f8c63f 0000 ffff 0000
+1f8c63f 1f8c63f 1f8c63f 0000 0000 ffff
+00739c0 1f8c63f 1f8c63f ffff 0000 0000
+1f8c63f 00739c0 1f8c63f 0000 ffff 0000
+1f8c63f 1f8c63f 00739c0 0000 0000 ffff
+0000000 0000000 0000000 0001 0020 0400
+]])
+
+AT_DATA([expout],
+[[00000
+00000
+739c0
+739c0
+739c0
+00000
+00000
+00000
+10840
+]])
+
+AT_CHECK([checkgoal result.dat && cat result.dat], [0], [expout])
+
+AT_CLEANUP
+
+AT_SETUP([game_overlay_goal])
+
+AT_DATA([boards.dat], [dnl
+0 0 0 0 0 0
+0 0 0 -1 0 0
+0 0 0 0 -1 0
+0 0 0 0 0 -1
+1ffffff 1ffffff 1ffffff 0 0 0
+])
+
+AT_DATA([expout], [dnl
+0000000 0000000 0000000
+00739c0 0000000 0000000
+0000000 00739c0 0000000
+0000000 0000000 00739c0
+1f8c63f 1f8c63f 1f8c63f
+])
+
+AT_CHECK([overlaygoal result.dat && cat result.dat],
+ [0], [expout])
+
+AT_CLEANUP