packages feed

language-puppet-0.4.0: test/expr.hs

module Main where

import Puppet.DSL.Parser
import Puppet.DSL.Types
import Text.Parsec

testcases =
    [ ("5 + 3 * 2", PlusOperation (Value $ Integer 5) (MultiplyOperation (Value $ Integer 3) (Value $ Integer 2)) )
    , ("5+2 == 7", EqualOperation ( PlusOperation (Value $ Integer 5) (Value $ Integer 2) ) (Value $ Integer 7) )
    ]

main :: IO ()
main = do
    let testres = map (\(t,v) -> (runParser exprparser () "test" t, v)) testcases
        badstuff = filter (\(Right r,t) -> r /= t) testres
    if (null badstuff)
        then return ()
        else do
            print badstuff
            error "fail"