Added the first group of tests for handling ALTs in the control-flow graph building
This commit is contained in:
parent
5dbf7fea7a
commit
4dbeabb5dc
|
@ -359,8 +359,44 @@ testProcFuncSpec = TestLabel "testProcFuncSpec" $ TestList
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
--TODO test replicated seq/par
|
testAlt :: Test
|
||||||
--TODO test alts
|
testAlt = TestLabel "testAlt" $ TestList
|
||||||
|
[
|
||||||
|
-- ALTs have a control-flow pattern of going through all the specs, scoping them in, then
|
||||||
|
-- branching to a guard, then doing the guard and body, then scoping everything out.
|
||||||
|
|
||||||
|
testGraph "testAlt 0" [(0, m1), (1, sub m1 1), (4,m4), (5,m5)] [0]
|
||||||
|
[(0,4,ESeq), (4,5,ESeq), (5,1,ESeq)]
|
||||||
|
(A.Alt m1 False $ A.Only mU guard45)
|
||||||
|
,testGraph "testAlt 1" [(0, m1), (1, sub m1 1), (4,m4), (5,m5), (6, m6), (7, m7)] [0]
|
||||||
|
[(0,4,ESeq), (0,6,ESeq), (4,5,ESeq), (6,7,ESeq), (5,1,ESeq), (7,1,ESeq)]
|
||||||
|
(A.Alt m1 False $ A.Several mU $ map (A.Only mU) [guard45, guard67])
|
||||||
|
|
||||||
|
,testGraph "testAlt 2" [(0, m1), (1, sub m1 1), (4,m4), (5,m5), (8,m8), (18, sub m8 100)] [0]
|
||||||
|
[(0,8,ESeq), (8,4,ESeq), (4,5,ESeq), (5,18,ESeq), (18,1,ESeq)]
|
||||||
|
(A.Alt m1 False $ spec8 $ A.Only mU guard45)
|
||||||
|
,testGraph "testAlt 3" [(0, m1), (1, sub m1 1), (4,m4), (5,m5), (8,m8), (18, sub m8 100), (9,m9), (19, sub m9 100)] [0]
|
||||||
|
[(0,8,ESeq), (8,9,ESeq), (9,4,ESeq), (4,5,ESeq), (5,19,ESeq), (19,18,ESeq), (18,1,ESeq)]
|
||||||
|
(A.Alt m1 False $ spec8 $ spec9 $ A.Only mU guard45)
|
||||||
|
|
||||||
|
,testGraph "testAlt 4" [(0, m1), (1, sub m1 1), (4,m4), (5,m5), (6, m6), (7, m7), (8,m8), (18, sub m8 100)] [0]
|
||||||
|
[(0,8,ESeq), (8,4,ESeq), (8,6,ESeq), (4,5,ESeq), (6,7,ESeq), (5,18,ESeq), (7,18,ESeq), (18, 1, ESeq)]
|
||||||
|
(A.Alt m1 False $ A.Several mU $ [A.Only mU guard45, spec8 $ A.Only mU guard67])
|
||||||
|
|
||||||
|
,testGraph "testAlt 5" [(0, m1), (1, sub m1 1), (4,m4), (5,m5), (6, m6), (7, m7), (8,m8), (18, sub m8 100), (9,m9), (19, sub m9 100)] [0]
|
||||||
|
[(0,9,ESeq), (9,8,ESeq),(8,4,ESeq), (8,6,ESeq), (4,5,ESeq), (6,7,ESeq), (5,18,ESeq), (7,18,ESeq), (18, 19, ESeq), (19,1,ESeq)]
|
||||||
|
(A.Alt m1 False $ A.Several mU $ [spec9 $ A.Only mU guard45, spec8 $ A.Only mU guard67])
|
||||||
|
|
||||||
|
-- TODO test replicated ALTs
|
||||||
|
-- TODO test specs inside replicated ALTs
|
||||||
|
|
||||||
|
]
|
||||||
|
where
|
||||||
|
guard45 = A.AlternativeSkip m4 (A.True mU) sm5
|
||||||
|
guard67 = A.Alternative m6 (variable "c") (A.InputSimple mU []) sm7
|
||||||
|
|
||||||
|
spec8 = A.Spec mU (A.Specification m8 undefined undefined)
|
||||||
|
spec9 = A.Spec mU (A.Specification m9 undefined undefined)
|
||||||
|
|
||||||
--TODO occam stuff:
|
--TODO occam stuff:
|
||||||
--TODO test input-case statements
|
--TODO test input-case statements
|
||||||
|
@ -758,7 +794,8 @@ testModify =
|
||||||
qcTests :: (Test, [LabelledQuickCheckTest])
|
qcTests :: (Test, [LabelledQuickCheckTest])
|
||||||
qcTests = (TestLabel "FlowGraphTest" $ TestList
|
qcTests = (TestLabel "FlowGraphTest" $ TestList
|
||||||
[
|
[
|
||||||
testCase
|
testAlt
|
||||||
|
,testCase
|
||||||
,testIf
|
,testIf
|
||||||
,testPar
|
,testPar
|
||||||
,testProcFuncSpec
|
,testProcFuncSpec
|
||||||
|
|
Loading…
Reference in New Issue
Block a user