summaryrefslogtreecommitdiff
path: root/lib/std/test
diff options
context:
space:
mode:
authorS. Gilles <sgilles@math.umd.edu>2019-04-29 08:35:17 -0400
committerS. Gilles <sgilles@math.umd.edu>2019-04-29 18:41:24 -0400
commit2fd5ae3c5599fdd067ed11f3a58fb03da587db28 (patch)
tree4bc2f6127e6962b1e3675784c74e4d3e4d2c6e8d /lib/std/test
parentfd00fa796bd36d2d369ff2ac67ac2a35d981ea6c (diff)
downloadmc-2fd5ae3c5599fdd067ed11f3a58fb03da587db28.tar.gz
Print "NaN" and "Inf" for floating-point NaNs and infinites.
Diffstat (limited to 'lib/std/test')
-rw-r--r--lib/std/test/fltfmt.myr38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/std/test/fltfmt.myr b/lib/std/test/fltfmt.myr
new file mode 100644
index 0000000..349f8bc
--- /dev/null
+++ b/lib/std/test/fltfmt.myr
@@ -0,0 +1,38 @@
+use std
+use testr
+use math
+
+const main = {
+ math.fptrap(false)
+ testr.run([
+ [.name = "put0", .fn = put0],
+ [.name = "putNaN", .fn = putNaN],
+ [.name = "putInf", .fn = putInf],
+ ][:])
+}
+
+const put0 = {c
+ var f : flt32 = 0.0
+ var g : flt64 = 0.0
+ testr.check(c, std.eq(std.fmt("f is {}", f), "f is 0.0"), "0.0 should format to \"0.0\"")
+ testr.check(c, std.eq(std.fmt("g is {}", g), "g is 0.0"), "0.0 should format to \"0.0\"")
+}
+
+const putNaN = {c
+ var f : flt32 = std.flt32nan()
+ var g : flt64 = std.flt64nan()
+ var f2 : flt32 = std.flt32frombits(0x7fc00ab0)
+ var g2 : flt64 = std.flt64frombits(0x7ff800000000abc0)
+ testr.check(c, std.eq(std.fmt("f is {}", f), "f is NaN"), "NaN should format to \"NaN\"")
+ testr.check(c, std.eq(std.fmt("g is {}", g), "g is NaN"), "NaN should format to \"NaN\"")
+ testr.check(c, std.eq(std.fmt("f2 is {}", f2), "f2 is NaN"), "alt NaN should format to \"NaN\"")
+ testr.check(c, std.eq(std.fmt("g2 is {}", g2), "g2 is NaN"), "alt NaN should format to \"NaN\"")
+}
+
+const putInf = {c
+ var f : flt32 = std.flt32inf()
+ var g : flt64 = std.flt64inf()
+ testr.check(c, std.eq(std.fmt("f is {}", f), "f is Inf"), "Inf should format to \"Inf\"")
+ testr.check(c, std.eq(std.fmt("g is {}", g), "g is Inf"), "Inf should format to \"Inf\"")
+}
+