diff options
author | Araq <rumpf_a@web.de> | 2014-01-13 02:10:03 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-01-13 02:10:03 +0100 |
commit | 20b5f31c03fb556ec0aa2428a40adbac004d8987 (patch) | |
tree | 58086941e7d6bb8f480ca1173a95722ada9435b2 /tests/float | |
parent | 51ee524109cf7e3e86c676bc1676063a01bfd979 (diff) | |
download | Nim-20b5f31c03fb556ec0aa2428a40adbac004d8987.tar.gz |
new tester; all tests categorized
Diffstat (limited to 'tests/float')
-rw-r--r-- | tests/float/tfloat1.nim | 15 | ||||
-rw-r--r-- | tests/float/tfloat2.nim | 15 | ||||
-rw-r--r-- | tests/float/tfloat3.nim | 24 |
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() + + + |