mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
test slice for str
This commit is contained in:
parent
c0581b4408
commit
a41d206509
@ -354,5 +354,17 @@ Arg* PikaStdLib_SysObj___slice__(PikaObj* self,
|
||||
return PikaStdLib_SysObj___get__(self, start, obj);
|
||||
}
|
||||
|
||||
if (ARG_TYPE_STRING == arg_getType(obj)) {
|
||||
Arg* sliced_arg = arg_setStr(NULL, "", "");
|
||||
for (int i = start_i; i < end_i; i++) {
|
||||
Arg* i_arg = arg_setInt(NULL, "", i);
|
||||
Arg* item_arg = PikaStdLib_SysObj___get__(self, i_arg, obj);
|
||||
sliced_arg = arg_strAppend(sliced_arg, arg_getStr(item_arg));
|
||||
arg_deinit(item_arg);
|
||||
arg_deinit(i_arg);
|
||||
}
|
||||
return sliced_arg;
|
||||
}
|
||||
|
||||
return arg_setNull(NULL);
|
||||
}
|
||||
|
@ -354,5 +354,17 @@ Arg* PikaStdLib_SysObj___slice__(PikaObj* self,
|
||||
return PikaStdLib_SysObj___get__(self, start, obj);
|
||||
}
|
||||
|
||||
if (ARG_TYPE_STRING == arg_getType(obj)) {
|
||||
Arg* sliced_arg = arg_setStr(NULL, "", "");
|
||||
for (int i = start_i; i < end_i; i++) {
|
||||
Arg* i_arg = arg_setInt(NULL, "", i);
|
||||
Arg* item_arg = PikaStdLib_SysObj___get__(self, i_arg, obj);
|
||||
sliced_arg = arg_strAppend(sliced_arg, arg_getStr(item_arg));
|
||||
arg_deinit(item_arg);
|
||||
arg_deinit(i_arg);
|
||||
}
|
||||
return sliced_arg;
|
||||
}
|
||||
|
||||
return arg_setNull(NULL);
|
||||
}
|
||||
|
@ -1942,3 +1942,20 @@ TEST(pikaMain, neg_index) {
|
||||
obj_deinit(self);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
|
||||
TEST(pikaMain, slice1) {
|
||||
/* init */
|
||||
pikaMemInfo.heapUsedMax = 0;
|
||||
/* run */
|
||||
PikaObj* self = newRootObj("pikaMain", New_PikaMain);
|
||||
__platform_printf("BEGIN\r\n");
|
||||
obj_run(self,
|
||||
"'test'[1:3]\n"
|
||||
);
|
||||
/* assert */
|
||||
EXPECT_STREQ(log_buff[0], "es\r\n");
|
||||
EXPECT_STREQ(log_buff[1], "BEGIN\r\n");
|
||||
/* deinit */
|
||||
obj_deinit(self);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user