Rename SList front property into insertFront

This commit is contained in:
Eugen Wissner 2016-12-02 10:50:54 +01:00
parent dd3becf6b7
commit 7c36dbb8f0
2 changed files with 49 additions and 82 deletions

View File

@ -55,10 +55,9 @@ class SList(T)
unittest unittest
{ {
auto l = make!(SList!int)(theAllocator); auto l = make!(SList!int)(theAllocator);
int[2] values = [8, 5];
l.front = values[0]; l.insertFront(8);
l.front = values[1]; l.insertFront(5);
l.clear(); l.clear();
assert(l.empty); assert(l.empty);
@ -84,7 +83,7 @@ class SList(T)
* Params: * Params:
* x = New element. * x = New element.
*/ */
@property void front(T x) void insertFront(T x)
{ {
Entry* temp = make!Entry(allocator); Entry* temp = make!Entry(allocator);
@ -93,47 +92,18 @@ class SList(T)
first.next = temp; first.next = temp;
} }
/// /// Ditto.
unittest alias insert = insertFront;
{
auto l = make!(SList!int)(theAllocator);
int[2] values = [8, 9];
l.front = values[0];
assert(l.front == values[0]);
l.front = values[1];
assert(l.front == values[1]);
dispose(theAllocator, l);
}
/**
* Inserts a new element at the beginning.
*
* Params:
* x = New element.
*
* Returns: $(D_KEYWORD this).
*/
typeof(this) opOpAssign(string Op)(ref T x)
if (Op == "~")
{
front = x;
return this;
}
/// ///
unittest unittest
{ {
auto l = make!(SList!int)(theAllocator); auto l = make!(SList!int)(theAllocator);
int value = 5;
assert(l.empty); l.insertFront(8);
assert(l.front == 8);
l ~= value; l.insertFront(9);
assert(l.front == 9);
assert(l.front == value);
assert(!l.empty);
dispose(theAllocator, l); dispose(theAllocator, l);
} }
@ -164,20 +134,19 @@ class SList(T)
dispose(allocator, first.next); dispose(allocator, first.next);
first.next = n; first.next = n;
return content; return content;
} }
/// ///
unittest unittest
{ {
auto l = make!(SList!int)(theAllocator); auto l = make!(SList!int)(theAllocator);
int[2] values = [8, 9];
l.front = values[0]; l.insertFront(8);
l.front = values[1]; l.insertFront(9);
assert(l.front == values[1]); assert(l.front == 9);
l.popFront(); l.popFront();
assert(l.front == values[0]); assert(l.front == 8);
dispose(theAllocator, l); dispose(theAllocator, l);
} }
@ -211,11 +180,10 @@ class SList(T)
unittest unittest
{ {
auto l = make!(SList!int)(theAllocator); auto l = make!(SList!int)(theAllocator);
int[3] values = [8, 5, 4];
l.front = values[0]; l.insertFront(8);
l.front = values[1]; l.insertFront(5);
l.front = values[2]; l.insertFront(4);
assert(l.removeFront(0) == 0); assert(l.removeFront(0) == 0);
assert(l.removeFront(2) == 2); assert(l.removeFront(2) == 2);
assert(l.removeFront(3) == 1); assert(l.removeFront(3) == 1);
@ -247,25 +215,6 @@ class SList(T)
return result; return result;
} }
///
unittest
{
auto l = make!(SList!int)(theAllocator);
int[3] values = [5, 4, 9];
l.front = values[0];
l.front = values[1];
l.front = values[2];
foreach (i, e; l)
{
assert(i != 0 || e == values[2]);
assert(i != 1 || e == values[1]);
assert(i != 2 || e == values[0]);
}
dispose(theAllocator, l);
}
/// Ditto. /// Ditto.
int opApply(scope int delegate(ref T) dg) int opApply(scope int delegate(ref T) dg)
{ {
@ -287,20 +236,16 @@ class SList(T)
unittest unittest
{ {
auto l = make!(SList!int)(theAllocator); auto l = make!(SList!int)(theAllocator);
int[3] values = [5, 4, 9];
size_t i;
l.front = values[0]; l.insertFront(5);
l.front = values[1]; l.insertFront(4);
l.front = values[2]; l.insertFront(9);
foreach (e; l) foreach (i, e; l)
{ {
assert(i != 0 || e == values[2]); assert(i != 0 || e == 9);
assert(i != 1 || e == values[1]); assert(i != 1 || e == 4);
assert(i != 2 || e == values[0]); assert(i != 2 || e == 5);
++i;
} }
dispose(theAllocator, l); dispose(theAllocator, l);
} }
@ -325,6 +270,26 @@ class SList(T)
/// ///
unittest unittest
{
auto l = make!(SList!int)(theAllocator);
size_t i;
l.insertFront(5);
l.insertFront(4);
l.insertFront(9);
foreach (e; l)
{
assert(i != 0 || e == 9);
assert(i != 1 || e == 4);
assert(i != 2 || e == 5);
++i;
}
assert(i == 3);
dispose(theAllocator, l);
}
private unittest
{ {
interface Stuff interface Stuff
{ {

View File

@ -43,7 +43,7 @@ class Vector(T)
private alias ElementType = typeof(data[0].vector[0]); private alias ElementType = typeof(data[0].vector[0]);
private this(V data, in size_t a, in size_t b) protected this(V data, in size_t a, in size_t b)
{ {
this.data = data; this.data = data;
start = a; start = a;
@ -709,9 +709,11 @@ class Vector(T)
theAllocator.dispose(v1); theAllocator.dispose(v1);
} }
private T[] vector; /// Internal representation.
protected T[] vector;
private IAllocator allocator; /// The allocator.
protected IAllocator allocator;
} }
/// ///