module TInterCode (testModule) where -- imports -- import Test.HUnit import InterfaceDT as IDT import qualified IntermediateCode as InterCode -- exmaple test function -- -- testInterCode01 = "IntermediateCode: " ~: (expected value) @=? (InterCode.process input) -- working "Hello World" program input01 = ISI [("main", [(1,[Start, Constant "Hello World!", Output, Finish],0)])] -- NEGATIVE -- empty path input02 = ISI [] -- points to non-existent path input03 = ISI [("main", [(1,[Start, Finish],99)])] -- wrong starting ID input04 = ISI [("main", [(99,[Start, Finish],0)])] -- empty string as function name input05 = ISI [("", [(1,[Start, Finish],0)])] -- circle: 1 > 2 > 1 input06 = ISI [("main", [(1,[Start, Finish],2)]),("foo", [(2,[Start, Finish],1)])] -- POSITIVE -- empty main function input07 = ISI [("main", [(1,[Start, Finish],0)])] -- outputs output = ISI [] -- incorrect output to produce failures and be able to view the actual output of the module testInterCode01 = "IntermediateCode: " ~: InterCode.process input01 @=? InterCode.process input01 testInterCode02 = "IntermediateCode: " ~: InterCode.process output @=? InterCode.process input02 testInterCode03 = "IntermediateCode: " ~: InterCode.process output @=? InterCode.process input03 testInterCode04 = "IntermediateCode: " ~: InterCode.process output @=? InterCode.process input04 testInterCode05 = "IntermediateCode: " ~: InterCode.process output @=? InterCode.process input05 testInterCode06 = "IntermediateCode: " ~: InterCode.process output @=? InterCode.process input06 testInterCode07 = "IntermediateCode: " ~: InterCode.process output @=? InterCode.process input07 --testModule = [] testModule = [ TestLabel "Hello World" testInterCode01, TestLabel "empty path" testInterCode02 -- TODO: Are these really our responsibility? -- TestLabel "non-existent path" testInterCode03, -- TestLabel "wrong start ID" testInterCode04, -- TestLabel "empty function name" testInterCode05, -- -- TODO: Fix expected results. -- TestLabel "circle" testInterCode06, -- TestLabel "empty main" testInterCode07 ]