comparison operators + some optimizations

This commit is contained in:
sergeych committed 2025-05-19 11:17:53 +04:00
1 parent 07a4c4c8d0
commit 95e68d6e2a
7 files changed
+187 -36

No files matched your search

@@ -197,5 +197,36 @@ class ScriptTest {
assertEquals(24, eval("(2 + 3) * 5 -1").toInt())
}
@Test
fun testEqNeq() = runTest {
assertEquals(ObjBool(true), eval("val x = 2; x == 2"))
assertEquals(ObjBool(false), eval("val x = 3; x == 2"))
assertEquals(ObjBool(true), eval("val x = 3; x != 2"))
assertEquals(ObjBool(false), eval("val x = 3; x != 3"))
assertTrue { eval("1 == 1").toBool() }
assertTrue { eval("true == true").toBool() }
assertTrue { eval("true != false").toBool() }
assertFalse { eval("true == false").toBool() }
assertFalse { eval("false != false").toBool() }
assertTrue { eval("2 == 2 && 3 != 4").toBool() }
}
@Test
fun testGtLt() = runTest {
assertTrue { eval("3 > 2").toBool() }
assertFalse { eval("3 > 3").toBool() }
assertTrue { eval("3 >= 2").toBool() }
assertFalse { eval("3 >= 4").toBool() }
assertFalse { eval("3 < 2").toBool() }
assertFalse { eval("3 <= 2").toBool() }
assertTrue { eval("3 <= 3").toBool()}
assertTrue { eval("3 <= 4").toBool()}
assertTrue { eval("3 < 4").toBool()}
assertFalse { eval("4 < 3").toBool()}
assertFalse { eval("4 <= 3").toBool()}
}
}