Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 33 additions & 2 deletions test/TinyRAM/Spec/EndToEndSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ spec = describe "TinyRAM end to end" $ do
andTestCase
andTestNegativeCase
--andFlagTestCase bugged reported
andPreFlagTestCase
cjmpTestCase
jmpTestExampleNonTermCase
negativeTestCase
Expand All @@ -47,6 +48,8 @@ spec = describe "TinyRAM end to end" $ do
addTestNegativeTestCase
subTestCase
--notTestCase --negative answer bugged
--notPreFlagTestCase
notFlagTestCase
mullTestCase
umulhTestCase
smulhTestCase
Expand Down Expand Up @@ -194,6 +197,20 @@ andTestCase =
-- answer <- execute program (InputTape []) (InputTape [])
-- answer `shouldBe` Right 0

andPreFlagTestCase :: Spec
andPreFlagTestCase =
it "answers 0" $ do
let program =
construct
[ Mov (reg' 0) (imm 0),
Cmov (reg' 0) (imm 1),
Mov (reg' 2) (imm 58),
And (reg' 3) (reg' 2) (imm 15),
Answer (reg 0)
]
answer <- execute program (InputTape []) (InputTape [])
answer `shouldBe` Right 0

--; TinyRAM V=1.000 W=16 K=16
--mov r2, 58
--and r1, r2, -15
Expand Down Expand Up @@ -779,22 +796,36 @@ subTestCase =

-- notTestCase :: Spec
-- notTestCase =
-- it "answers -11" $ do
-- it "answers 65524" $ do
-- let program =
-- construct
-- [ Mov (reg' 1) (imm 11),
-- Not (reg' 0) (reg 1),
-- Answer (reg 0)
-- ]
-- answer <- execute program (InputTape []) (InputTape [])
-- answer `shouldBe` Right (Word (word16ToInteger (negate 11)))
-- answer `shouldBe` Right 65524

--mullTestCase
--; TinyRAM V=1.000 W=16 K=16
--mov r2, 5
--mull r1, r2, 2
--answer r1

notFlagTestCase :: Spec
notFlagTestCase =
it "answers 65524" $ do
let program =
construct
[ Mov (reg' 1) (imm 11),
Not (reg' 0) (reg 1),
Cmov (reg' 0) (imm 1),
Answer (reg 0)
]
answer <- execute program (InputTape []) (InputTape [])
answer `shouldBe` Right 65524


mullTestCase :: Spec
mullTestCase =
it "answers 10" $ do
Expand Down