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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
module Thue.Test (
parserTests,
extractInfixTests,
tests
) where
import Test.HUnit
import Text.Parsec.Error
import Thue.Parser
import Thue.Interpreter
instance Eq Text.Parsec.Error.ParseError
parser0 = TestCase (assertEqual ""
(Right (ThueProgram [ThueRule "a" "b"] "a"))
(parseThue "a::=b\n::=\na"))
parser1 = TestCase (assertEqual ""
(Right (ThueProgram [] "b"))
(parseThue "::=\nb"))
extractInfix0 = TestCase (assertEqual ""
Nothing
(extractInfix [1,2] [3,4,5]))
extractInfix1 = TestCase (assertEqual ""
(Just ([1,2],[5,6]))
(extractInfix [3,4] [1,2,3,4,5,6]))
extractInfix2 = TestCase (assertEqual ""
(Just ([],[3,4]))
(extractInfix [0,1,2] [0,1,2,3,4]))
extractInfix3 = TestCase (assertEqual ""
(Just ([1],[]))
(extractInfix [2,3] [1,2,3]))
extractInfix4 = TestCase (assertEqual ""
(Just ([],[1]))
(extractInfix [] [1]))
extractInfix5 = TestCase (assertEqual ""
(Just ("before","after"))
(extractInfix "middle" "beforemiddleafter"))
parserTests :: Test
parserTests = TestList [parser0, parser1]
extractInfixTests :: Test
extractInfixTests = TestList [extractInfix0, extractInfix1, extractInfix2, extractInfix3, extractInfix4, extractInfix5]
tests :: Test
tests = case (parserTests, extractInfixTests) of
(TestList a, TestList b) -> TestList (a ++ b)
|