packages feed

tak-ai-0.1.0.0: src/takkytests.hs

module Main where

import Test.HUnit
import Text.Parsec

import Tak
import TakkyCore

test_eval :: Test
test_eval = TestCase $ assert $ score < 0.0 where
    score = evaluate (read "O") state
    state = GameState board player player Nothing White 3
    board = read $
        "( OOXOX     O     O   COX    CX )\n" ++
        "(     O   OXO    SO     X    XO )\n" ++
        "(   SOX     X    XX    SO    SO )\n" ++
        "(  SOXO     X     X     X     X )\n" ++
        "(     O     X     X     X     X )\n"
    player = Player 1 0

parseMoves :: [String] -> [Play]
parseMoves = map parseMove

parseMove :: String -> Play
parseMove = noParseError . parsePtn

noParseError :: Either ParseError Play -> Play
noParseError (Right play) = play
noParseError (Left err) = error $ show err

tests :: Test
tests = TestList [TestLabel "test_eval" test_eval]

main :: IO Counts
main = do
    runTestTT tests