pow, even, odd, min, max

This commit is contained in:
2026-08-31 09:01:02 -05:00
parent dfcaf14404
commit 14b78847f9
3 changed files with 153 additions and 0 deletions

View File

@@ -1435,6 +1435,121 @@ arithmetic = testGroup "Arithmetic Tests"
let input = "equal? (add (mul 3 7) 4) 25"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= trueT
, testCase "pow 2 0 = 1" $ do
let input = "pow 2 0"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 1
, testCase "pow 2 3 = 8" $ do
let input = "pow 2 3"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 8
, testCase "pow 3 2 = 9" $ do
let input = "pow 3 2"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 9
, testCase "pow 0 0 = 1" $ do
let input = "pow 0 0"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 1
, testCase "pow 0 5 = 0" $ do
let input = "pow 0 5"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 0
, testCase "pow 1 10 = 1" $ do
let input = "pow 1 10"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 1
, testCase "pow 5 1 = 5" $ do
let input = "pow 5 1"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 5
, testCase "min 3 7 = 3" $ do
let input = "min 3 7"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 3
, testCase "min 7 3 = 3" $ do
let input = "min 7 3"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 3
, testCase "min 5 5 = 5" $ do
let input = "min 5 5"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 5
, testCase "min 0 5 = 0" $ do
let input = "min 0 5"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 0
, testCase "max 3 7 = 7" $ do
let input = "max 3 7"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 7
, testCase "max 7 3 = 7" $ do
let input = "max 7 3"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 7
, testCase "max 5 5 = 5" $ do
let input = "max 5 5"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 5
, testCase "max 0 5 = 5" $ do
let input = "max 0 5"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= ofNumber 5
, testCase "even? 0 = true" $ do
let input = "even? 0"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= trueT
, testCase "even? 1 = false" $ do
let input = "even? 1"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= falseT
, testCase "even? 2 = true" $ do
let input = "even? 2"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= trueT
, testCase "even? 7 = false" $ do
let input = "even? 7"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= falseT
, testCase "odd? 0 = false" $ do
let input = "odd? 0"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= falseT
, testCase "odd? 1 = true" $ do
let input = "odd? 1"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= trueT
, testCase "odd? 2 = false" $ do
let input = "odd? 2"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= falseT
, testCase "odd? 7 = true" $ do
let input = "odd? 7"
env = evalTricu allTestLibsEnv (parseTricu input)
result env @?= trueT
]
fileEval :: TestTree