-removed some unittest and unused code

This commit is contained in:
Mergul 2018-11-07 19:53:33 +01:00
parent 204ce9dc79
commit dec0582398
3 changed files with 3 additions and 306 deletions

View file

@ -239,162 +239,4 @@ public:
export bool opEquals()(auto ref const Vector!(T) r) const {
return used == r.used && array.ptr[0 .. used] == r.array.ptr[0 .. r.used];
}
export size_t toHash() const nothrow @trusted {
return hashOf(cast(Unqual!(T)[]) array.ptr[0 .. used]);
}
import std.format : FormatSpec, formatValue;
/**
* Preety print
*/
export void toString(scope void delegate(const(char)[]) sink, FormatSpec!char fmt) {
static if (__traits(compiles, formatValue(sink, array[0 .. used], fmt))) {
formatValue(sink, array[0 .. used], fmt);
}
}
}
// Helper to avoid GC
private T[n] s(T, size_t n)(auto ref T[n] array) pure nothrow @nogc @safe {
return array;
}
@nogc nothrow unittest {
Vector!int vec;
assert(vec.empty);
vec.add(0);
vec.add(1);
vec.add(2);
vec.add(3);
vec.add(4);
vec.add(5);
assert(vec.length == 6);
assert(vec[3] == 3);
assert(vec[5] == 5);
assert(vec[] == [0, 1, 2, 3, 4, 5].s);
assert(!vec.empty);
vec.remove(3);
assert(vec.length == 5);
assert(vec[] == [0, 1, 2, 5, 4].s); //unstable remove
}
@nogc nothrow unittest {
Vector!int vec;
assert(vec.empty);
vec ~= [0, 1, 2, 3, 4, 5].s;
assert(vec[] == [0, 1, 2, 3, 4, 5].s);
assert(vec.length == 6);
vec ~= 6;
assert(vec[] == [0, 1, 2, 3, 4, 5, 6].s);
}
@nogc nothrow unittest {
Vector!int vec;
vec ~= [0, 1, 2, 3, 4, 5].s;
vec[3] = 33;
assert(vec[3] == 33);
}
@nogc nothrow unittest {
Vector!char vec;
vec ~= "abcd";
assert(vec[] == cast(char[]) "abcd");
}
@nogc nothrow unittest {
Vector!int vec;
vec ~= [0, 1, 2, 3, 4, 5].s;
vec.length = 2;
assert(vec[] == [0, 1].s);
}
///////////////////////////////////////////
enum string checkVectorAllocations = `
//assert(gVectorsCreated==gVectorsDestroyed);
gVectorsCreated=gVectorsDestroyed=0;
scope(exit){if(gVectorsCreated!=gVectorsDestroyed){
import std.stdio : writefln;
writefln("created==destroyed %s==%s", gVectorsCreated, gVectorsDestroyed);
assert(gVectorsCreated==gVectorsDestroyed, "Vector memory leak");
}}
`;
unittest {
mixin(checkVectorAllocations);
Vector!int vecA = Vector!int([0, 1, 2, 3, 4, 5].s);
assert(vecA[] == [0, 1, 2, 3, 4, 5].s);
Vector!int vecB;
vecB = vecA;
assert(vecB[] == [0, 1, 2, 3, 4, 5].s);
assert(vecB.array.ptr != vecA.array.ptr);
assert(vecB.used == vecA.used);
Vector!int vecC = vecA;
assert(vecC[] == [0, 1, 2, 3, 4, 5].s);
assert(vecC.array.ptr != vecA.array.ptr);
assert(vecC.used == vecA.used);
Vector!int vecD = vecA.init;
}
unittest {
static int numInit = 0;
static int numDestroy = 0;
scope (exit) {
assert(numInit == numDestroy);
}
static struct CheckDestructor {
int num = 1;
this(this) {
numInit++;
}
this(int n) {
num = n;
numInit++;
}
~this() {
numDestroy++;
}
}
CheckDestructor[2] arr = [CheckDestructor(1), CheckDestructor(1)];
Vector!CheckDestructor vec;
vec ~= CheckDestructor(1);
vec ~= arr;
vec.remove(1);
}
unittest {
assert(gVectorsCreated == gVectorsDestroyed);
gVectorsCreated = 0;
gVectorsDestroyed = 0;
scope (exit) {
assert(gVectorsCreated == gVectorsDestroyed);
}
string strA = "aaa bbb";
string strB = "ccc";
Vector!(Vector!char) vecA = Vector!(Vector!char)(Vector!char(cast(char[]) strA));
assert(vecA[0] == Vector!char(cast(char[]) strA));
Vector!(Vector!char) vecB;
vecB = vecA;
assert(vecB[0] == Vector!char(cast(char[]) strA));
assert(vecA.array.ptr != vecB.array.ptr);
assert(vecB.used == vecA.used);
assert(vecB[0].array.ptr != vecA[0].array.ptr);
assert(vecB[0].used == vecA[0].used);
}
unittest {
static struct Test {
int num;
@disable this(this);
}
Vector!Test test;
}
}