mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
Merge branch 'dev'
This commit is contained in:
commit
7482f84da2
@ -50,7 +50,10 @@ class String(TinyObj):
|
||||
# support str()
|
||||
def __str__(self) -> str: ...
|
||||
|
||||
def startwith(self,prefix:str)->int:...
|
||||
|
||||
def endwith(self,suffix:str)->int:...
|
||||
|
||||
class ByteArray(List):
|
||||
# convert a string to ByteArray
|
||||
def fromString(self, s: str): ...
|
||||
|
@ -62,3 +62,29 @@ void PikaStdData_String___set__(PikaObj* self, Arg* __key, Arg* __val) {
|
||||
char* PikaStdData_String___str__(PikaObj* self) {
|
||||
return obj_getStr(self, "str");
|
||||
}
|
||||
|
||||
int PikaStdData_String_startwith(PikaObj *self, char* prefix){
|
||||
char *str = obj_getStr(self,"str");
|
||||
char *p = prefix;
|
||||
int i=0;
|
||||
while(*p!='\0'){
|
||||
if(*p!=str[i])
|
||||
return 0;
|
||||
p++;
|
||||
i++;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
int PikaStdData_String_endwith(PikaObj *self, char* suffix){
|
||||
char *str = obj_getStr(self,"str");
|
||||
int len1=strlen(str);
|
||||
int len2=strlen(suffix);
|
||||
while(len2>=1){
|
||||
if(suffix[len2-1]!=str[len1-1])
|
||||
return 0;
|
||||
len2--;
|
||||
len1--;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
@ -50,7 +50,10 @@ class String(TinyObj):
|
||||
# support str()
|
||||
def __str__(self) -> str: ...
|
||||
|
||||
def startwith(self,prefix:str)->int:...
|
||||
|
||||
def endwith(self,suffix:str)->int:...
|
||||
|
||||
class ByteArray(List):
|
||||
# convert a string to ByteArray
|
||||
def fromString(self, s: str): ...
|
||||
|
@ -62,3 +62,29 @@ void PikaStdData_String___set__(PikaObj* self, Arg* __key, Arg* __val) {
|
||||
char* PikaStdData_String___str__(PikaObj* self) {
|
||||
return obj_getStr(self, "str");
|
||||
}
|
||||
|
||||
int PikaStdData_String_startwith(PikaObj *self, char* prefix){
|
||||
char *str = obj_getStr(self,"str");
|
||||
char *p = prefix;
|
||||
int i=0;
|
||||
while(*p!='\0'){
|
||||
if(*p!=str[i])
|
||||
return 0;
|
||||
p++;
|
||||
i++;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
int PikaStdData_String_endwith(PikaObj *self, char* suffix){
|
||||
char *str = obj_getStr(self,"str");
|
||||
int len1=strlen(str);
|
||||
int len2=strlen(suffix);
|
||||
while(len2>=1){
|
||||
if(suffix[len2-1]!=str[len1-1])
|
||||
return 0;
|
||||
len2--;
|
||||
len1--;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
@ -2196,4 +2196,50 @@ TEST(pikaMain, module_1_module2_test) {
|
||||
EXPECT_STREQ(log_buff[1], "BEGIN\r\n");
|
||||
obj_deinit(self);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(pikaMain, string_startwith) {
|
||||
/* init */
|
||||
pikaMemInfo.heapUsedMax = 0;
|
||||
PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
|
||||
/* run */
|
||||
obj_run(pikaMain,
|
||||
"a = PikaStdData.String('test')\n"
|
||||
"res1 = a.startwith('te')\n"
|
||||
"res2 = a.startwith('st')\n"
|
||||
);
|
||||
/* collect */
|
||||
int res1 = obj_getInt(pikaMain, "res1");
|
||||
int res2 = obj_getInt(pikaMain, "res2");
|
||||
|
||||
/* assert */
|
||||
EXPECT_EQ(res1, 1);
|
||||
EXPECT_EQ(res2, 0);
|
||||
|
||||
/* deinit */
|
||||
obj_deinit(pikaMain);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
|
||||
TEST(pikaMain, string_endwith) {
|
||||
/* init */
|
||||
pikaMemInfo.heapUsedMax = 0;
|
||||
PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
|
||||
/* run */
|
||||
obj_run(pikaMain,
|
||||
"a = PikaStdData.String('test')\n"
|
||||
"res1 = a.endwith('te')\n"
|
||||
"res2 = a.endwith('st')\n"
|
||||
);
|
||||
/* collect */
|
||||
int res1 = obj_getInt(pikaMain, "res1");
|
||||
int res2 = obj_getInt(pikaMain, "res2");
|
||||
|
||||
/* assert */
|
||||
EXPECT_EQ(res1, 0);
|
||||
EXPECT_EQ(res2, 1);
|
||||
|
||||
/* deinit */
|
||||
obj_deinit(pikaMain);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user