arrays started: literals, size, splats, index access RW

This commit is contained in:
sergeych committed 2025-05-30 01:13:40 +04:00
1 parent f881faf89f
commit c18345823b
12 files changed
+361 -137

No files matched your search

+92 -15
View File
@@ -485,7 +485,8 @@ class ScriptTest {
@Test
fun testWhileBlockIsolation3() = runTest {
eval("""
eval(
"""
var outer = 7
var sum = 0
var cnt1 = 0
@@ -504,7 +505,7 @@ class ScriptTest {
}
println("sum "+sum)
""".trimIndent()
)
)
}
@Test
@@ -713,20 +714,96 @@ class ScriptTest {
assertEquals(11, cxt.eval("x").toInt())
}
@Test
fun testValVarConverting() = runTest {
eval(
"""
val x = 5
var y = x
y = 1
assert(x == 5)
""".trimIndent()
)
assertFails {
eval(
"""
val x = 5
fun fna(t) {
t = 11
}
fna(1)
""".trimIndent()
)
}
eval(
"""
var x = 5
val y = x
x = 10
assert(y == 5)
assert(x == 10)
""".trimIndent()
)
}
@Test
fun testListLiteral() = runTest {
eval("""
val list = [1,22,3]
assert(list[0] == 1)
assert(list[1] == 22)
assert(list[2] == 3)
""".trimIndent())
eval("""
val x0 = 100
val list = [x0 + 1, x0 * 10, 3]
assert(list[0] == 101)
assert(list[1] == 1000)
assert(list[2] == 3)
""".trimIndent())
eval("""
val x0 = 100
val list = [x0 + 1, x0 * 10, if(x0 < 100) "low" else "high", 5]
assert(list[0] == 101)
assert(list[1] == 1000)
assert(list[2] == "high")
assert(list[3] == 5)
""".trimIndent())
}
@Test
fun testListLiteralSpread() = runTest {
eval("""
val list1 = [1,22,3]
val list = ["start", ...list1, "end"]
assert(list[0] == "start")
assert(list[1] == 1)
assert(list[2] == 22)
assert(list[3] == 3)
assert(list[4] == "end")
""".trimIndent())
}
@Test
fun testListSize() = runTest {
eval("""
val a = [4,3]
assert(a.size == 2)
""".trimIndent())
}
// @Test
// fun testMultiAssign() = runTest {
// assertEquals(
// 7,
// eval("""
// var x = 10
// var y = 2
// (x = 1) = 5
// println(x)
// println(y)
// x + y
// """.trimIndent()).toInt()
// )
// fun testLambda1() = runTest {
// val l = eval("""
// x = {
// 122
// }
// x
// """.trimIndent())
// println(l)
// }
//
}