summary refs log tree commit diff stats
path: root/tests/float
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-01-13 02:10:03 +0100
committerAraq <rumpf_a@web.de>2014-01-13 02:10:03 +0100
commit20b5f31c03fb556ec0aa2428a40adbac004d8987 (patch)
tree58086941e7d6bb8f480ca1173a95722ada9435b2 /tests/float
parent51ee524109cf7e3e86c676bc1676063a01bfd979 (diff)
downloadNim-20b5f31c03fb556ec0aa2428a40adbac004d8987.tar.gz
new tester; all tests categorized
Diffstat (limited to 'tests/float')
-rw-r--r--tests/float/tfloat1.nim15
-rw-r--r--tests/float/tfloat2.nim15
-rw-r--r--tests/float/tfloat3.nim24
3 files changed, 54 insertions, 0 deletions
diff --git a/tests/float/tfloat1.nim b/tests/float/tfloat1.nim
new file mode 100644
index 000000000..f290fdb57
--- /dev/null
+++ b/tests/float/tfloat1.nim
@@ -0,0 +1,15 @@
+discard """
+  file: "tfloat1.nim"
+  outputsub: "Error: unhandled exception: FPU operation caused an overflow [EFloatOverflow]"
+  exitcode: "1"
+"""
+# Test new floating point exceptions
+
+{.floatChecks: on.}
+
+var x = 0.8
+var y = 0.0
+
+echo x / y #OUT Error: unhandled exception: FPU operation caused an overflow [EFloatOverflow]
+
+
diff --git a/tests/float/tfloat2.nim b/tests/float/tfloat2.nim
new file mode 100644
index 000000000..51883674f
--- /dev/null
+++ b/tests/float/tfloat2.nim
@@ -0,0 +1,15 @@
+discard """
+  file: "tfloat2.nim"
+  outputsub: "Error: unhandled exception: FPU operation caused a NaN result [EFloatInvalidOp]"
+  exitcode: "1"
+"""
+# Test new floating point exceptions
+
+{.floatChecks: on.}
+
+var x = 0.0
+var y = 0.0
+
+echo x / y #OUT Error: unhandled exception: FPU operation caused a NaN result [EFloatInvalidOp]
+
+
diff --git a/tests/float/tfloat3.nim b/tests/float/tfloat3.nim
new file mode 100644
index 000000000..4382dd3ed
--- /dev/null
+++ b/tests/float/tfloat3.nim
@@ -0,0 +1,24 @@
+discard """
+  file: "tfloat3.nim"
+  output: "Nimrod    3.4368930843, 0.3299290698 C double: 3.4368930843, 0.3299290698"
+"""
+
+import math, strutils
+
+{.emit: """
+void printFloats(void) {
+    double y = 1.234567890123456789;
+    
+    printf("C double: %.10f, %.10f ", exp(y), cos(y));
+}
+""".}
+
+proc c_printf(frmt: CString) {.importc: "printf", header: "<stdio.h>", varargs.}
+proc printFloats {.importc, nodecl.}
+
+var x: float = 1.234567890123456789
+c_printf("Nimrod    %.10f, %.10f ", exp(x), cos(x))
+printFloats()
+
+
+