]> git.draconx.ca Git - rrace.git/blobdiff - tests/game.at
Improve exposure mask calculation.
[rrace.git] / tests / game.at
index c90ff8737262b057edb154403c12c94b69a052e2..4d367afd9a1e3f4ced0cb0f650fb52a97681158b 100644 (file)
@@ -1,3 +1,54 @@
+# Copyright © 2022 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 <https://www.gnu.org/licenses/>.
+
+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(
@@ -540,3 +591,41 @@ AT_CHECK([boardmove m4_do(
 ]])
 
 AT_CLEANUP
+
+AT_SETUP([xoshiro256** sanity])
+
+AT_CHECK([rng-test >out
+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 <boards.dat >result.dat && cat result.dat], [0], [expout])
+
+AT_CLEANUP