This commit is contained in:
2023-07-10 18:31:16 +06:00
parent 28169450cf
commit 14630e509d
31 changed files with 211 additions and 287 deletions

View File

@@ -28,9 +28,7 @@ void _test_allocator(allocator_ptr al){
void test_allocators(){
kprintf("\e[96m----------[test_allocators]-----------\n");
optime("test CstdAllocator", 10000,
CstdAllocator al;
CstdAllocator_construct(&al);
_test_allocator((allocator_ptr)&al);
_test_allocator(CstdAllocator_instPtr);
);
optime("test LinearAllocator", 10000,
LinearAllocator al;

View File

@@ -2,10 +2,11 @@
#include "../src/Autoarr/Autoarr.h"
#include <vector>
i64 _autoarrVsVector(u16 chunkCount, u16 chunkLength){
u32 count=chunkLength*chunkCount;
kprintf("\e[94mchunk count: %u chunk length: %u count: " IFWIN("%llu", "%lu") "\n", chunkCount, chunkLength, (u64)count);
Autoarr_i64* ar=Autoarr_create(i64, chunkCount, chunkLength);
i64 _autoarrVsVector(u32 count){
kprintf("\e[94mcount: %u\n", count);
Autoarr_i64 _ar;
Autoarr_i64* ar=&_ar;
Autoarr_construct(ar, i64, count, NULL);
std::vector<i64> vec=std::vector<i64>();
optime("Autoarr_add", count,
Autoarr_add(ar, op_i));
@@ -16,19 +17,22 @@ i64 _autoarrVsVector(u16 chunkCount, u16 chunkLength){
t=Autoarr_get(ar, op_i));
optime("vector_get", count,
t=vec[op_i]);
Autoarr_destruct(ar, true);
Autoarr_destruct(ar);
return t;
}
void test_autoarrVsVector(){
optime(__func__, 1,
kprintf("\e[96m-------[test_autoarr_vs_vector]-------\n");
_autoarrVsVector(4, 16);
_autoarrVsVector(16, 64);
_autoarrVsVector(32, 32);
_autoarrVsVector(64, 64);
_autoarrVsVector(32, 1024);
_autoarrVsVector(256, 256);
_autoarrVsVector(512, 4096);
_autoarrVsVector(1);
_autoarrVsVector(4);
_autoarrVsVector(16);
_autoarrVsVector(64);
_autoarrVsVector(256);
_autoarrVsVector(1024);
_autoarrVsVector(4096);
_autoarrVsVector(16384);
_autoarrVsVector(65536);
_autoarrVsVector(524288);
);
}

View File

@@ -1,53 +1,45 @@
#include "tests.h"
#include "../src/Autoarr/Autoarr.h"
#define ARR_SZ 256
static void printautoarr(Autoarr(u16)* ar){
kprintf("\e[94mAutoarr(u16): "
IFWIN("%llu", "%lu")
"\n max_chunks_count: %u\n"
" chunks_count: %u\n"
" max_chunk_length: %u\n"
" chunk_length: %u\n"
" max_length: %u\n"
" length: %u\n",
kprintf("\e[94mAutoarr(u16): %lu\n"
" length: %u",
sizeof(Autoarr(u16)),
ar->max_chunks_count,
ar->chunks_count,
ar->max_chunk_length,
ar->chunk_length,
Autoarr_max_length(ar),
Autoarr_length(ar));
}
static void fillar(Autoarr(u16)* ar){
for (u16 i=0;i<Autoarr_max_length(ar);i++)
for (u16 i=0; ARR_SZ; i++)
Autoarr_add(ar,i);
}
static void resetar(Autoarr(u16)* ar){
for (u16 i=0;i<Autoarr_max_length(ar);i++)
Autoarr_set(ar,i,Autoarr_max_length(ar)-i-1);
for (u16 i=0; ARR_SZ; i++)
Autoarr_set(ar,i,ARR_SZ-i-1);
}
static void printallval(Autoarr(u16)* ar){
kprintf("\e[90m");
for (u16 i=0;i<Autoarr_length(ar);i++)
for (u16 i=0; i<Autoarr_length(ar); i++)
kprintf("%u ",Autoarr_get(ar,i));
kprintf("\n");
}
void test_autoarr(){
optime("test_autoarr",1,
// optime("test_autoarr",1,
kprintf("\e[96m------------[test_autoarr]------------\n");
Autoarr(u16)* ar=Autoarr_create(u16,10,16);
Autoarr(u16) ar;
Autoarr_construct(&ar, u16, ARR_SZ, NULL);
kprintf("\e[92mautoarr created\n");
fillar(ar);
fillar(&ar);
kprintf("\e[92mautoarr filled up\n");
printautoarr(ar);
printallval(ar);
resetar(ar);
printautoarr(&ar);
printallval(&ar);
resetar(&ar);
kprintf("\e[92mautoarr values reset\n");
printallval(ar);
Autoarr_destruct(ar, true);
printallval(&ar);
Autoarr_destruct(&ar);
kprintf("\e[92mautoarr deleted\n");
);
// );
}

View File

@@ -16,7 +16,9 @@ char data[]="iojihi2ojo8la14nhvi3311pi[jiugbja38mo0ih6gfty88tryf-drh0lanvj03";
h=hashf(h, data, sizeof(data)); \
); \
/*kprintf("\e[94mhash of \"\e[90m%s\e[94m\": \e[92m%x\n",data, h);*/ \
Autoarr(hasht)* hashes=Autoarr_create(hasht,1,COLLISION_TESTS); \
Autoarr(hasht) _hashes; \
Autoarr(hasht)* hashes = &_hashes; \
Autoarr_construct(hashes, hasht, COLLISION_TESTS*sizeof(hasht), NULL); \
splitmix64_state rng_state; \
splitmix64_construct(&rng_state, random_seedFromTime()); \
optime("collision test",1, \
@@ -38,7 +40,7 @@ char data[]="iojihi2ojo8la14nhvi3311pi[jiugbja38mo0ih6gfty88tryf-drh0lanvj03";
} \
kprintf("\e[93m%u \e[94mcollisions detected in %u hashes\n", collisions, COLLISION_TESTS); \
); \
Autoarr_destruct(hashes, true); \
Autoarr_destruct(hashes); \
kprintf("\e[96m--------------------------------------\n"); \
}

View File

@@ -2,9 +2,8 @@
#include "../src/Hashtable/Hashtable.h"
void print_hashtable(Hashtable* ht){
kprintf("\e[94mHashtable: "
IFWIN("%llu", "%lu")
"\n hein: %u\n"
kprintf("\e[94mHashtable: %lu\n"
" hein: %u\n"
" height: %u\n"
" rows: %p\n",
sizeof(Hashtable),

View File

@@ -1,13 +1,10 @@
#include "../src/Hashtable/KeyValuePair.h"
EXPORT void CALL test_marshalling(char* text, KVPair** kptr){
CstdAllocator _al;
allocator_ptr al=(allocator_ptr)&_al;
CstdAllocator_construct(&_al);
KVPair* k=allocator_alloc(al, sizeof(KVPair));
KVPair* k=allocator_alloc(CstdAllocator_instPtr, sizeof(KVPair));
k->key="message";
char* tc=cptr_copy(al, text);
Unitype u=UniHeapPtr(char,tc);
char* tc=cptr_copy(CstdAllocator_instPtr, text);
Unitype u=UniHeapPtr(char, tc);
k->value=u;
*kptr=k;
}

View File

@@ -2,9 +2,10 @@
#include "../src/SearchTree/SearchTree.h"
void printstnode(STNode* node){
kprintf("\e[94mSTNode: "
IFWIN("%llu", "%lu")
"\n address: %p\n value: ",sizeof(STNode),node);
kprintf("\e[94mSTNode: %lu\n"
" address: %p\n"
" value: ",
sizeof(STNode), node);
printuni(node->value);
kprintf("\n");
// prints pointers to all existing branches

View File

@@ -3,7 +3,7 @@
void test_type_system(){
for(ktid id=0; id <= ktid_last; id++){
ktDescriptor* type=ktDescriptor_get(id);
kprintf("\e[37m{ id:%u name:%s size:%u freeMembers:%p toString:%p }\n",
type->id, type->name, type->size, type->freeMembers, type->toString);
kprintf("\e[37m{ id:%u name:%s size:%u destruct:%p toString:%p }\n",
type->id, type->name, type->size, type->destruct, type->toString);
}
}

View File

@@ -42,7 +42,7 @@ static inline void test_all(){
);
}
#define PRINT_SIZEOF(T) kprintf("\e[94m" #T " size: \e[96m" IFWIN("%llu", "%lu") "\n", sizeof(T))
#define PRINT_SIZEOF(T) kprintf("\e[94m" #T " size: \e[96m%lu\n", sizeof(T))
#if __cplusplus
}