** is tested ok

This commit is contained in:
lyon 2021-11-28 01:29:47 +08:00
parent b93bdc7d59
commit 27b42d7822
2 changed files with 30 additions and 0 deletions

View File

@ -123,6 +123,24 @@ TEST(pikaMain, a_signed) {
/* assert */
EXPECT_EQ(-1, a);
/* deinit */
obj_deinit(pikaMain);
EXPECT_EQ(pikaMemNow(), 0);
}
TEST(pikaMain, a_mm) {
/* init */
pikaMemInfo.heapUsedMax = 0;
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
/* run */
obj_runDirect(pikaMain, (char*)"a = -1.1 ** 3\n");
/* collect */
float a = obj_getFloat(pikaMain, (char*)"a");
/* assert */
EXPECT_FLOAT_EQ(-1.331, a);
/* deinit */
obj_deinit(pikaMain);
EXPECT_EQ(pikaMemNow(), 0);

View File

@ -256,6 +256,18 @@ Arg* pikaVM_runInstruct(PikaObj* self,
outArg, "", (num1_f - num2_f) * (num1_f - num2_f) < 0.000001);
goto OPT_exit;
}
if (strEqu("%", data)) {
outArg = arg_setInt(outArg, "", num1_i % num2_i);
goto OPT_exit;
}
if (strEqu("**", data)) {
float res = 1;
for (int i = 0; i < num2_i; i++) {
res = res * num1_f;
}
outArg = arg_setFloat(outArg, "", res);
goto OPT_exit;
}
OPT_exit:
arg_deinit(arg1);
arg_deinit(arg2);