diff test/arrays11.d @ 98:6789050b5ad1 trunk

[svn r102] Further delayed emission of function bodies to avoid problems with circular-forward-references. Now uses the DMD _adEq(void[], void[], TypeInfo) runtime function for array equality comparison.
author lindquist
date Wed, 14 Nov 2007 23:39:10 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/arrays11.d	Wed Nov 14 23:39:10 2007 +0100
@@ -0,0 +1,51 @@
+module arrays11;
+
+void ints()
+{
+    int[] a = [1,2,3,4,5,6];
+    {assert(a == a);}
+
+    int[] b = [4,5,6,7,8,9];
+    {assert(a != b);}
+    {assert(a[3..$] == b[0..3]);}
+}
+
+void floats()
+{
+    float[] a = [1.0f, 2.0f, 3.0f, 4.0f];
+    {assert(a == a);}
+
+    float[] b = [2.0f, 3.0f, 5.0f];
+    {assert(a != b);}
+    {assert(a[1..3] == b[0..2]);}
+}
+
+struct S
+{
+    int i;
+    int j;
+
+    int opEquals(S s)
+    {
+        return (i == s.i) && (j == s.j);
+    }
+}
+
+void structs()
+{
+    S[] a = [S(0,0), S(1,0), S(2,0), S(3,0)];
+    {assert(a == a);}
+    S[] b = [S(0,1), S(1,0), S(2,0), S(3,1)];
+    {assert(a != b);}
+    {assert(a[1..3] == b[1..3]);}
+
+    S[2] c = [S(2,0), S(3,1)];
+    {assert(c == b[2..$]);}
+}
+
+void main()
+{
+    ints();
+    floats();
+    structs();
+}