diff tests/mini/dotproduct.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/dotproduct.d@d9d5d59873d8
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/dotproduct.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,36 @@
+extern(C) int printf(char*, ...);
+
+struct vec3
+{
+    float x,y,z;
+
+    float dot(ref vec3 v)
+    {
+        return x*v.x + y*v.y + z*v.z;
+    }
+
+    void print(char[] n)
+    {
+        printf("%.*s = vec3(%.4f, %.4f, %.4f)\n", n.length, n.ptr, x,y,z);
+    }
+}
+
+int main()
+{
+    printf("Dot Product test\n");
+
+    const f = 0.7071067811865474617;
+    vec3 v = vec3(f,f,0);
+    vec3 w = vec3(f,0,f);
+
+    v.print("v");
+    w.print("w");
+
+    auto dp = v.dot(w);
+    printf("v ยท w = %f\n", dp);
+    assert(dp > 0.4999 && dp < 0.5001);
+
+    printf("  SUCCESS\n");
+    return 0;
+}
+