diff tests/mini/staticarrays.d @ 341:1bb99290e03a trunk

[svn r362] Started merging the old 'test' dir as well as the newer 'tangotests' dir into 'tests/mini' and 'tests/minicomplex'.
author lindquist
date Sun, 13 Jul 2008 02:51:19 +0200
parents test/staticarrays.d@385a18242485
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/staticarrays.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,78 @@
+extern(C) int printf(char*, ...);
+
+void numbers()
+{
+    bool[8] bools;
+    char[8] chars;
+    byte[8] bytes;
+    short[8] shorts;
+    int[8] ints;
+    long[8] longs;
+    float[8] floats;
+    double[8] doubles;
+    real[8] reals;
+    {
+        bools[7] = true;
+        floats[7] = 3.14159265;
+        {
+            printf("bools[0] = %d, bools[7] = %d\n", bools[0], bools[7]);
+            printf("floats[0] = %f, floats[7] = %f\n", floats[0], floats[7]);
+        }
+    }
+}
+
+struct S
+{
+    int i = 42;
+    void print()
+    {
+        printf("S.i = %d\n", i);
+    }
+}
+
+class C
+{
+    int i;
+    this()
+    {
+        i = 3;
+    }
+    void print()
+    {
+        printf("C.i = %d\n", i);
+    }
+}
+
+void refs()
+{
+    void*[5] voids;
+    S*[5] structs;
+    C[5] classes;
+    
+    {
+        voids[0] = cast(void*)0xA;
+        printf("void* = %p\n", voids[0]);
+    }
+    {
+        structs[0] = new S;
+        structs[0].print();
+        delete structs[0];
+    }
+    {
+        classes[0] = new C;
+        classes[0].print();
+        delete classes[0];
+    }
+}
+
+void vals()
+{
+    S[5] structs;
+}
+
+void main()
+{
+    numbers();
+    refs();
+    vals();
+}