Add some more C4Script tests

epoxy
Günther Brammer 2016-01-24 23:51:38 +01:00
parent 88185a60f9
commit 08f1037866
1 changed files with 43 additions and 0 deletions

View File

@ -129,3 +129,46 @@ TEST_F(AulPredefFunctionTest, Max_Invalid)
EXPECT_THROW(RunExpr(R"(Max("", 1))"), C4AulExecError);
EXPECT_THROW(RunExpr(R"(Max(0, ""))"), C4AulExecError);
}
TEST_F(AulPredefFunctionTest, Abs)
{
EXPECT_EQ(C4VInt(0), RunExpr("Abs()"));
EXPECT_EQ(C4VInt(1), RunExpr("Abs(-1)"));
EXPECT_EQ(C4VInt(1), RunExpr("Abs(1)"));
EXPECT_EQ(C4VINT_MIN, RunExpr("Abs(-2147483648)"));
EXPECT_EQ(C4VINT_MIN, RunExpr("Abs(2147483648)"));
EXPECT_EQ(C4VINT_MAX, RunExpr("Abs(-2147483647)"));
EXPECT_EQ(C4VINT_MAX, RunExpr("Abs(2147483647)"));
}
TEST_F(AulPredefFunctionTest, Trivial)
{
EXPECT_EQ(C4VInt(100), RunExpr("Sin(900,100,10)"));
EXPECT_EQ(C4VInt(0), RunExpr("Cos(900,100,10)"));
EXPECT_EQ(C4VInt(4), RunExpr("Sqrt(16)"));
EXPECT_EQ(C4VInt(141), RunExpr("Distance(0,0,100,100)"));
EXPECT_EQ(C4VInt(13500), RunExpr("Angle(0,0,100,100,100)"));
EXPECT_EQ(C4VInt(90), RunExpr("ArcSin(1,1)"));
EXPECT_EQ(C4VInt(0), RunExpr("ArcCos(1,1)"));
EXPECT_EQ(C4VInt(2), RunExpr("BoundBy(1,2,3)"));
EXPECT_EQ(C4Value(false), RunExpr("Inside(1,2,3)"));
EXPECT_EQ(C4VArray(new C4ValueArray), RunExpr("CreateArray()"));
EXPECT_EQ(C4VPropList(C4PropList::New(0)), RunExpr("CreatePropList()"));
EXPECT_EQ(C4VInt(42), RunExpr("GetProperty(\"a\",{a=42})"));
EXPECT_EQ(C4VInt(42), RunCode("var p = {}; SetProperty(\"a\",42,p); return p.a;"));
EXPECT_EQ(C4Value(), RunCode("var p = {a=42}; ResetProperty(\"a\",p); return p.a;"));
EXPECT_EQ(C4VInt('a'), RunExpr("GetChar(\"a\")"));
EXPECT_EQ(C4VInt(C4V_Int), RunExpr("GetType(42)"));
EXPECT_EQ(C4VInt(0), RunExpr("ModulateColor()"));
EXPECT_EQ(C4VInt(1), RunExpr("WildcardMatch(\"a\",\"*\")"));
EXPECT_EQ(C4VInt(1), RunExpr("GetLength([0])"));
EXPECT_EQ(C4VNull, RunCode("var a=[0]; SetLength(a,0); return a[0];"));
EXPECT_EQ(C4VInt(-1), RunExpr("GetIndexOf([42],{})"));
EXPECT_EQ(C4VInt(0), RunExpr("GetIndexOf([42],42)"));
EXPECT_EQ(C4Value(true), RunExpr("DeepEqual({a=[42]},{a=[42]})"));
EXPECT_EQ(C4Value(false), RunExpr("DeepEqual([1,2,3],[3,2,1])"));
EXPECT_EQ(C4Value(true), RunCode("var a = [3,2,1]; SortArray(a); return DeepEqual([1,2,3], a);"));
EXPECT_EQ(C4Value(true), RunCode("var a = [{a=2},{a=1}]; SortArrayByProperty(a,\"a\"); return DeepEqual([{a=1},{a=2}], a);"));
EXPECT_EQ(C4Value(true), RunCode("var a = [[1,2],[3,1]]; SortArrayByArrayElement(a,1); return DeepEqual([[3,1],[1,2]], a);"));
EXPECT_EQ(C4Value(true), RunExpr("DeepEqual([\"a\",\"b\"], GetProperties({a=1,b=2}))"));
}