ref: 2eefb4d95ab159a313627f14f20e372ca188f1c5
parent: 399b644b26513d89f12bd1a52c6a6e2f30390338
author: Ori Bernstein <[email protected]>
date: Wed Sep 25 13:18:18 EDT 2013
Add a sqrt test to test floating point.
--- /dev/null
+++ b/test/basicfloat.myr
@@ -1,0 +1,10 @@
+use std
+
+const get42 = {
+ -> 42.0
+}
+
+/* basic sanity check on floating point operations. should return 84. */
+const main = {
+ -> (42.0 + get42()) castto(int)
+}
--- a/test/float.myr
+++ /dev/null
@@ -1,10 +1,0 @@
-use std
-
-const get42 = {
- -> 42.0
-}
-
-/* basic sanity check on floating point operations. should return 84. */
-const main = {
- -> (42.0 + get42()) castto(int)
-}
--- /dev/null
+++ b/test/sqrt.myr
@@ -1,0 +1,32 @@
+use std
+
+const abs = {d
+ if d < 0.0
+ -> -d
+ else
+ -> d
+ ;;
+}
+
+const Eps = 0.00001
+const Maxiter = 20
+
+const sqrt = {x : float64
+ var val
+ var iter
+ var i;
+
+ val = 1;
+ for i = 0; i < Maxiter; i++
+ iter = 0.5*(val - x/val)
+ if abs(val - iter) < Eps
+ -> val;
+ val = iter;
+ ;;
+ ;;
+}
+
+const main = {
+ -> sqrt(20.0) castto(int)
+}
+
--- a/test/tests
+++ b/test/tests
@@ -53,7 +53,8 @@
B condifrel E 7
B overlappingif E 2
B fib E 21
-B float E 84
+B basicfloat E 84
+B sqrt E 4
B log-and E 0
B log-or E 1
B str E 102