SunSpider 1.0: 3d-morph: use epsilon to check result
[WebKit-https.git] / PerformanceTests / SunSpider / tests / sunspider-1.0 / 3d-morph.js
index d4238c080b7616b69745551ad8d8416449d0512f..961b8f680b5d52789a66d36b42c64e165c0344d7 100644 (file)
@@ -52,3 +52,12 @@ testOutput = 0;
 for (var i = 0; i < nx; i++)
     testOutput += a[3*(i*nx+i)+1];
 a = null;
+
+// This has to be an approximate test since ECMAscript doesn't formally specify
+// what sin() returns. Even if it did specify something like for example what Java 7
+// says - that sin() has to return a value within 1 ulp of exact - then we still
+// would not be able to do an exact test here since that would allow for just enough
+// low-bit slop to create possibly big errors due to testOutput being a sum.
+var epsilon = 1e-13;
+if (Math.abs(testOutput) >= epsilon)
+    throw "Error: bad test output: expected magnitude below " + epsilon + " but got " + testOutput;