core: all int is now num

This commit is contained in:
starnakin 2023-06-18 20:03:27 +02:00
parent 1b878db8fe
commit 85a5b567b2
8 changed files with 31 additions and 27 deletions

View File

@ -1,13 +1,10 @@
atoi(str) aton(str)
{ {
local i = 0; local i = 0;
local sign = 0;
local out = 0; local out = 0;
loop { loop {
if ([str + i] == '-') if ([str + i] != '+')
sign = sign == 0;
else if ([str + i] != '+')
break; break;
i++; i++;
} }
@ -17,7 +14,5 @@ atoi(str)
out = out * 10 + [str + i] - '0'; out = out * 10 + [str + i] - '0';
i++; i++;
} }
if (sign)
return (0 - out);
return out; return out;
} }

9
tests/aton.🗿 Normal file
View File

@ -0,0 +1,9 @@
main()
{
name = "aton";
test_num(aton("33"), 33, "");
test_num(aton(""), 0, "");
test_num(aton("40"), 40, "");
test_num(aton("1"), 1, "");
}

View File

@ -7,13 +7,13 @@ main()
name = "galloc"; name = "galloc";
ptr1 = galloc(1); ptr1 = galloc(1);
test_int(ptr1, heap + LOCATION_DATA, ""); test_num(ptr1, heap + LOCATION_DATA, "");
free(ptr1); free(ptr1);
ptr1 = galloc(1); ptr1 = galloc(1);
test_int(ptr1, heap + LOCATION_DATA, "alloc after free"); test_num(ptr1, heap + LOCATION_DATA, "alloc after free");
free(ptr1); free(ptr1);
ptr2 = galloc(0x9000); ptr2 = galloc(0x9000);
test_int(ptr2, 0, "alloc too big"); test_num(ptr2, 0, "alloc too big");
} }

View File

@ -2,7 +2,7 @@ main()
{ {
name = "strchri"; name = "strchri";
test_int(strchri("bozoman", 'm'), 4, ""); test_num(strchri("bozoman", 'm'), 4, "");
test_int(strchri("bozoman", 'v'), 0 - 1, ""); test_num(strchri("bozoman", 'v'), 0 - 1, "");
test_int(strchri("", 'v'), 0 - 1, ""); test_num(strchri("", 'v'), 0 - 1, "");
} }

View File

@ -2,8 +2,8 @@ main()
{ {
name = "strcmp"; name = "strcmp";
test_int(strcmp("test", "test"), 0, "same chars"); test_num(strcmp("test", "test"), 0, "same chars");
test_int(strcmp("s", "b"), 17, ""); test_num(strcmp("s", "b"), 17, "");
test_int(strcmp("", ""), 0, "empty strings"); test_num(strcmp("", ""), 0, "empty strings");
test_int(strcmp("", "a"), 65439, ""); test_num(strcmp("", "a"), 65439, "");
} }

View File

@ -2,6 +2,6 @@ main()
{ {
name = "strlen"; name = "strlen";
test_int(strlen("bozoman du 36"), 13, ""); test_num(strlen("bozoman du 36"), 13, "");
test_int(strlen(""), 0, "Empty string"); test_num(strlen(""), 0, "Empty string");
} }

View File

@ -2,11 +2,11 @@ main()
{ {
name = "strncmp"; name = "strncmp";
test_int(strncmp("test", "test", 4), 0, "same chars"); test_num(strncmp("test", "test", 4), 0, "same chars");
test_int(strncmp("s", "b", 4), 17, ""); test_num(strncmp("s", "b", 4), 17, "");
test_int(strncmp("", "", 4), 0, "empty strings"); test_num(strncmp("", "", 4), 0, "empty strings");
test_int(strncmp("", "a", 0), 0, ""); test_num(strncmp("", "a", 0), 0, "");
test_int(strncmp("ab", "ac", 1), 0, ""); test_num(strncmp("ab", "ac", 1), 0, "");
test_int(strncmp("aq", "a", 1), 0, ""); test_num(strncmp("aq", "a", 1), 0, "");
test_int(strncmp("aq", "a", 2), 113, ""); test_num(strncmp("aq", "a", 2), 113, "");
} }

View File

@ -22,7 +22,7 @@ test_str(value, reach_value, description)
wrt '\n'; wrt '\n';
} }
test_int(value, reach_value, description) test_num(value, reach_value, description)
{ {
putstr(name); putstr(name);
if (value != reach_value) if (value != reach_value)