summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Test.hs8
1 files changed, 7 insertions, 1 deletions
diff --git a/test/Test.hs b/test/Test.hs
index 6741e70..d758d2b 100644
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -82,7 +82,7 @@ makePGN event site date round white black result moves =
-- From Chess.hs, with adaptations
pieceCoords :: Maybe Color -> Maybe PieceType -> Board -> [((Int,Int),Piece)]
-pieceCoords clr piece brd = [(i,pc) | (i,Just pc) <- (assocs $ board brd), match pc]
+pieceCoords clr piece brd = [(i,pc) | (i,Just pc) <- assocs $ board brd, match pc]
where
match :: Piece -> Bool
match (Piece clr' piece') =
@@ -94,6 +94,12 @@ prop_only_2_kings = atAnyState (\b ->
length (pieceCoords (Just Black) (Just King) b) == 1 &&
length (pieceCoords (Just White) (Just King) b) == 1)
+prop_no_pawns_on_1_and_8 :: PGN -> Bool
+prop_no_pawns_on_1_and_8 = atAnyState $ all notOnAorH . pieceCoords Nothing (Just Pawn)
+ where
+ notOnAorH :: ((Int,Int),a) -> Bool
+ notOnAorH ((_,r),_) = r /= 0 && r /= 7
+
prop_number_of_pieces :: PGN -> Bool
prop_number_of_pieces = atAnyTwoStates (\b1 b2 ->
length (pieceCoords Nothing Nothing b1) == length (pieceCoords Nothing Nothing b2)