diff options
Diffstat (limited to 'Examples/test-suite/d/li_std_vector_runme.1.d')
-rw-r--r-- | Examples/test-suite/d/li_std_vector_runme.1.d | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/Examples/test-suite/d/li_std_vector_runme.1.d b/Examples/test-suite/d/li_std_vector_runme.1.d deleted file mode 100644 index 895fb450f..000000000 --- a/Examples/test-suite/d/li_std_vector_runme.1.d +++ /dev/null @@ -1,219 +0,0 @@ -module li_std_vector_runme; - -import tango.core.Exception; -import tango.io.Stdout; -import Integer = tango.text.convert.Integer; -import li_std_vector.li_std_vector; -import li_std_vector.DoubleVector; -import li_std_vector.IntVector; -import li_std_vector.IntPtrVector; -import li_std_vector.IntConstPtrVector; -import li_std_vector.RealVector; -import li_std_vector.Struct; -import li_std_vector.StructVector; -import li_std_vector.StructPtrVector; -import li_std_vector.StructConstPtrVector; - -const size_t SIZE = 20; - -void main() { - // Basic functionality tests. - { - auto vector = new IntVector(); - for (size_t i = 0; i < SIZE; ++i) { - vector ~= i * 10; - } - - if (vector.length != SIZE) { - throw new Exception("length test failed."); - } - - vector[0] = 200; - if (vector[0] != 200) { - throw new Exception("indexing test failed"); - } - vector[0] = 0 * 10; - - try { - vector[vector.length] = 777; - throw new Exception("out of range test failed"); - } catch (NoSuchElementException) { - } - - foreach (i, value; vector) { - if (value != (i * 10)) { - throw new Exception("foreach test failed, i: " ~ Integer.toString(i)); - } - } - - vector.clear(); - if (vector.size != 0) { - throw new Exception("clear test failed"); - } - } - - // Slice tests. - { - auto dVector = new DoubleVector(); - for (size_t i = 0; i < SIZE; ++i) { - dVector ~= i * 10.1f; - } - - double[] dArray = dVector[]; - foreach (i, value; dArray) { - if (dVector[i] != value) { - throw new Exception("slice test 1 failed, i: " ~ Integer.toString(i)); - } - } - - - auto sVector = new StructVector(); - for (size_t i = 0; i < SIZE; i++) { - sVector ~= new Struct(i / 10.0); - } - - Struct[] array = sVector[]; - - for (size_t i = 0; i < SIZE; i++) { - // Make sure that a shallow copy has been made. - void* aPtr = Struct.swigGetCPtr(array[i]); - void* vPtr = Struct.swigGetCPtr(sVector[i]); - if (aPtr != vPtr) { - throw new Exception("slice test 2 failed, i: " ~ - Integer.toString(i)); - } - } - } - - // remove() tests. - { - auto iVector = new IntVector(); - for (int i = 0; i < SIZE; i++) { - iVector ~= i; - } - - iVector.remove(iVector.length - 1); - iVector.remove(SIZE / 2); - iVector.remove(0); - - try { - iVector.remove(iVector.size); - throw new Exception("remove test failed"); - } catch (NoSuchElementException) { - } - } - - // Capacity tests. - { - auto dv = new DoubleVector(10); - if ((dv.capacity != 10) || (dv.length != 0)) { - throw new Exception("constructor setting capacity test failed"); - } - - // TODO: Is this really required (and spec'ed) behavior? - dv.capacity = 20; - if (dv.capacity != 20) { - throw new Exception("capacity test 1 failed"); - } - - dv ~= 1.11; - try { - dv.capacity = dv.length - 1; - throw new Exception("capacity test 2 failed"); - } catch (IllegalArgumentException) { - } - } - - // Test the methods being wrapped. - { - auto iv = new IntVector(); - for (int i=0; i<4; i++) { - iv ~= i; - } - - double x = average(iv); - x += average(new IntVector([1, 2, 3, 4])); - RealVector rv = half(new RealVector([10.0f, 10.5f, 11.0f, 11.5f])); - - auto dv = new DoubleVector(); - for (size_t i = 0; i < SIZE; i++) { - dv ~= i / 2.0; - } - halve_in_place(dv); - - RealVector v0 = vecreal(new RealVector()); - float flo = 123.456f; - v0 ~= flo; - flo = v0[0]; - - IntVector v1 = vecintptr(new IntVector()); - IntPtrVector v2 = vecintptr(new IntPtrVector()); - IntConstPtrVector v3 = vecintconstptr(new IntConstPtrVector()); - - v1 ~= 123; - v2.clear(); - v3.clear(); - - StructVector v4 = vecstruct(new StructVector()); - StructPtrVector v5 = vecstructptr(new StructPtrVector()); - StructConstPtrVector v6 = vecstructconstptr(new StructConstPtrVector()); - - v4 ~= new Struct(123); - v5 ~= new Struct(123); - v6 ~= new Struct(123); - } - - // Test vectors of pointers. - { - auto vector = new StructPtrVector(); - for (size_t i = 0; i < SIZE; i++) { - vector ~= new Struct(i / 10.0); - } - - Struct[] array = vector[]; - - for (size_t i = 0; i < SIZE; i++) { - // Make sure that a shallow copy has been made. - void* aPtr = Struct.swigGetCPtr(array[i]); - void* vPtr = Struct.swigGetCPtr(vector[i]); - if (aPtr != vPtr) { - throw new Exception("StructPtrVector test 1 failed, i: " ~ - Integer.toString(i)); - } - } - } - - // Test vectors of const pointers. - { - auto vector = new StructConstPtrVector(); - for (size_t i = 0; i < SIZE; i++) { - vector ~= new Struct(i / 10.0); - } - - Struct[] array = vector[]; - - for (size_t i = 0; i < SIZE; i++) { - // Make sure that a shallow copy has been made. - void* aPtr = Struct.swigGetCPtr(array[i]); - void* vPtr = Struct.swigGetCPtr(vector[i]); - if (aPtr != vPtr) { - throw new Exception("StructConstPtrVector test 1 failed, i: " ~ - Integer.toString(i)); - } - } - } - - // Test vectors destroyed via dispose(). - { - { - scope vector = new StructVector(); - vector ~= new Struct(0.0); - vector ~= new Struct(11.1); - } - { - scope vector = new DoubleVector(); - vector ~= 0.0; - vector ~= 11.1; - } - } -} |