
import Test.QuickCheck.Simple

int1 :: Int
int1 = 1

stringHello :: String
stringHello = "Hello"

prop_int1 :: Bool
prop_int1 = int1 == 1

prop_stringHelloBad :: Bool
prop_stringHelloBad = stringHello == "Hellox"

prop_intComBad :: Int -> Int -> Bool
prop_intComBad i j = i + j == j + i + 1

prop_intCom2Bad :: Int -> Int -> Bool
prop_intCom2Bad i j = i + j == j + i + 2

tests :: [Test]
tests =
  [ boolTest "int1"             prop_int1
  , boolTest' "stringHelloBad"  "Hello =/= Hellox" prop_stringHelloBad
  , eqTest    "stringHelloBad"  stringHello "Hellox"
  , qcTest   "intComBad"        prop_intComBad
  , qcTest   "intCom2Bad"       prop_intCom2Bad
  ]

main :: IO ()
main = defaultMain' True tests
