-added Vector test -added HashMap test -added EntityMeta test -added default hashing function to hashmap
79 lines
1.7 KiB
D
79 lines
1.7 KiB
D
module tests.vector;
|
|
|
|
import bubel.ecs.simple_vector;
|
|
import bubel.ecs.vector;
|
|
|
|
version(GNU)
|
|
{
|
|
pragma(inline, true) T[n] staticArray(T, size_t n)(auto ref T[n] a)
|
|
{
|
|
return a;
|
|
}
|
|
}
|
|
else import std.array : staticArray;
|
|
|
|
@("simple-vector")
|
|
unittest
|
|
{
|
|
SimpleVector vector;
|
|
vector.add(cast(ubyte[]) "a");
|
|
vector.add(cast(ubyte[]) "bsdf");
|
|
assert(vector[0 .. 5] == cast(ubyte[]) "absdf");
|
|
assert(vector[4] == 'f');
|
|
assert(vector[] == cast(ubyte[]) "absdf");
|
|
assert(vector[$ - 1] == 'f');
|
|
|
|
vector.clear();
|
|
assert(vector.length == 0);
|
|
|
|
ubyte[1025] array;
|
|
foreach(i;0..cast(uint)array.length)array[i] = cast(ubyte)i;
|
|
vector.add(array);
|
|
assert(vector.length == 1025);
|
|
assert(vector[] == array[]);
|
|
|
|
SimpleVector vector2;
|
|
vector2.clear();
|
|
vector2.add(array[0..1023]);
|
|
vector2.add('a');
|
|
vector2.add('b');
|
|
assert(vector2.length == 1025);
|
|
assert(vector2[0..1023] == array[0..1023]);
|
|
assert(vector2[1023] == 'a');
|
|
assert(vector2[1024] == 'b');
|
|
}
|
|
|
|
@("Vector")
|
|
unittest
|
|
{
|
|
struct G
|
|
{
|
|
int a;
|
|
}
|
|
|
|
Vector!G vector;
|
|
assert(vector.empty());
|
|
vector.add(G(1));
|
|
assert(!vector.empty());
|
|
vector.clear();
|
|
assert(vector.empty());
|
|
vector.add(G(1));
|
|
assert(!vector.empty());
|
|
vector.reset();
|
|
assert(vector.empty());
|
|
|
|
vector.add(G(1));
|
|
vector.add([G(2),G(5)].staticArray);
|
|
assert(vector.length == 3);
|
|
assert(vector.capacity == 1);
|
|
|
|
Vector!G vector2;
|
|
vector2.add([G(1),G(2),G(5)].staticArray);
|
|
assert(vector == vector2);
|
|
vector2.remove(1);
|
|
assert(vector != vector2);
|
|
assert(vector2.length == 2);
|
|
assert(vector2[1] == G(5));
|
|
vector2.add(G(2),1);
|
|
assert(vector == vector2);
|
|
}
|