Aul tests: Test nested loops, loop control statements

liquid_container
Nicolas Hake 2016-04-23 17:12:36 +02:00
parent d21f75829d
commit 79b6d993df
1 changed files with 28 additions and 0 deletions

View File

@ -107,6 +107,34 @@ TEST_F(AulTest, Loops)
EXPECT_EQ(C4Value(), RunCode("var a = [], sum; for(var i in a) sum += i; return sum;"));
EXPECT_EQ(C4VInt(1), RunCode("var a = [1], sum; for(var i in a) sum += i; return sum;"));
EXPECT_EQ(C4VInt(6), RunCode("var a = [1,2,3], sum; for(var i in a) sum += i; return sum;"));
EXPECT_EQ(C4VInt(-6), RunCode(R"(
var a = [-3, -2, -1, 0, 1, 2, 3], b;
for (var i in a) {
if (i > 0) break;
b += i;
}
return b;
)"));
EXPECT_EQ(C4VInt(0), RunCode(R"(
var a = [-3, -2, -1, 0, 1, 2, 3], b;
for (var i in a) {
if (i < -1) continue;
if (i > 1) break;
b += i;
}
return b;
)"));
// Test nested loops
EXPECT_EQ(C4VInt(-6), RunCode(R"(
var a = [[-3, -2], [-1, 0], [1, 2, 3]], b;
for (var i in a) {
for (var j in i) {
if (j > 0) break;
b += j;
}
}
return b;
)"));
}
TEST_F(AulTest, Locals)