From a5845d69b6f7d36d933bf0cf6afcd61eb066ecc7 Mon Sep 17 00:00:00 2001 From: Yuri Tatishchev Date: Sun, 15 Mar 2026 02:11:19 -0700 Subject: [PATCH] hw3: tests --- hw3/output.txt | 20 ++++++++++++++++++++ hw3/test.hs | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 hw3/output.txt diff --git a/hw3/output.txt b/hw3/output.txt new file mode 100644 index 0000000..c9f19d7 --- /dev/null +++ b/hw3/output.txt @@ -0,0 +1,20 @@ +***Testing abs.imp +Sequence (Assign "X" (Op Minus (Val (IntVal 0)) (Val (IntVal 3)))) (If (Op Lt (Var "X") (Val (IntVal 0))) (Assign "X" (Op Minus (Val (IntVal 0)) (Var "X"))) (Val (BoolVal False))) +"fromList [(\"X\",IntVal 3)]" + +***Testing fact.imp +Sequence (Assign "N" (Val (IntVal 2))) (Sequence (Assign "F" (Val (IntVal 1))) (While (Op Gt (Var "N") (Val (IntVal 0))) (Sequence (Assign "X" (Var "N")) (Sequence (Assign "Z" (Var "F")) (Sequence (While (Op Gt (Var "X") (Val (IntVal 1))) (Sequence (Assign "F" (Op Plus (Var "Z") (Var "F"))) (Assign "X" (Op Minus (Var "X") (Val (IntVal 1)))))) (Assign "N" (Op Minus (Var "N") (Val (IntVal 1))))))))) +"fromList [(\"F\",IntVal 2),(\"N\",IntVal 0),(\"X\",IntVal 1),(\"Z\",IntVal 2)]" + +***Testing times.imp +Sequence (Assign "X" (Val (IntVal 10))) (Sequence (Assign "Y" (Val (IntVal 3))) (Sequence (Assign "Z" (Val (IntVal 0))) (While (Op Gt (Var "X") (Val (IntVal 0))) (Sequence (Assign "Z" (Op Plus (Var "Z") (Var "Y"))) (Assign "X" (Op Minus (Var "X") (Val (IntVal 1)))))))) +"fromList [(\"X\",IntVal 0),(\"Y\",IntVal 3),(\"Z\",IntVal 30)]" + +***Testing test.imp +Sequence (Assign "X" (Op Plus (Op Minus (Op Plus (Val (IntVal 1)) (Val (IntVal 2))) (Val (IntVal 3))) (Op Plus (Val (IntVal 1)) (Val (IntVal 3))))) (Sequence (Assign "Y" (Val (IntVal 0))) (While (Op Gt (Var "X") (Val (IntVal 0))) (Sequence (Assign "Y" (Op Plus (Var "Y") (Var "X"))) (Assign "X" (Op Minus (Var "X") (Val (IntVal 1))))))) +"fromList [(\"X\",IntVal 0),(\"Y\",IntVal 10)]" + +***Testing error.imp +Sequence (Assign "x" (Op Plus (Val (IntVal 7)) (Val (IntVal 3)))) (If (Var "x") (Val (BoolVal True)) (Val (BoolVal False))) +"Non-boolean value 'IntVal 10' used as conditional" + diff --git a/hw3/test.hs b/hw3/test.hs index 9ec9e46..55564a6 100644 --- a/hw3/test.hs +++ b/hw3/test.hs @@ -2,7 +2,7 @@ import WhileInterp test f = do putStrLn $ "***Testing " ++ f - --showParsedExp f + showParsedExp f runFile f putStrLn ""