mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
** is tested ok
This commit is contained in:
parent
b93bdc7d59
commit
27b42d7822
@ -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);
|
||||
|
12
src/PikaVM.c
12
src/PikaVM.c
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user