Autuarr
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
);
|
||||
// );
|
||||
}
|
||||
|
||||
@@ -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"); \
|
||||
}
|
||||
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user