summaryrefslogtreecommitdiff
path: root/test.hs
blob: 7b81228a79be0898b7244d996db6ead2b0dfd3f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

import Test.HUnit
import Text.Parsec.Error
import Thue.Parser
import Fractran.Parser




instance Eq Text.Parsec.Error.ParseError



fractranParser0 = TestCase (assertEqual ""
	                                    (Right (FractranProgram [] 2))
	                                    (parseFractran "2"))

fractranParser1 = TestCase (assertEqual ""
	                                    (Right (FractranProgram [] 2))
	                                    (parseFractran "2\n"))

fractranParser2 = TestCase (assertEqual ""
	                                    (Right (FractranProgram [] 2))
	                                    (parseFractran "\n2"))

fractranParser3 = TestCase (assertEqual ""
	                                    (Right (FractranProgram [(1,2)] 2))
	                                    (parseFractran "2 1/2"))

fractranParser4 = TestCase (assertEqual ""
	                                    (Right (FractranProgram [(2,3)] 3))
	                                    (parseFractran "3\n \n2/3\n"))



thueParser0 = TestCase (assertEqual ""
	                                (Right (ThueProgram [ThueRule "a" "b"] "a"))
	                                (parseThue "a::=b\n::=\na"))



main = do
	putStrLn "Fractran Parser"
	runTestTT $ TestList [fractranParser0, fractranParser1, fractranParser2, fractranParser3, fractranParser4]

	putStrLn "\nThue Parser"
	runTestTT $ TestList [thueParser0]