summary refs log tree commit diff stats
path: root/tests/float
diff options
context:
space:
mode:
authorcooldome <ariabushenko@bk.ru>2018-04-29 22:57:05 +0100
committercooldome <ariabushenko@bk.ru>2018-04-29 22:57:05 +0100
commit0c9c1c013e9060ccafca9ac4c22031e687b6c984 (patch)
tree4d3d6e04ae806e1133977d0e74b0ac1f54d275df /tests/float
parente2a4a43acc98743d0d2d4db1f9478f2582507dcf (diff)
downloadNim-0c9c1c013e9060ccafca9ac4c22031e687b6c984.tar.gz
Add a test
Diffstat (limited to 'tests/float')
-rw-r--r--tests/float/tfloatrange.nim37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/float/tfloatrange.nim b/tests/float/tfloatrange.nim
new file mode 100644
index 000000000..56aaf7450
--- /dev/null
+++ b/tests/float/tfloatrange.nim
@@ -0,0 +1,37 @@
+discard """
+  cmd: "nim c -d:release --rangeChecks:on $file"
+  output: '''StrictPositiveRange
+float
+range fail expected
+'''
+"""
+import math, fenv
+
+type
+  Positive = range[0.0..Inf]
+  StrictPositive = range[minimumPositiveValue(float)..Inf]
+  Negative32 = range[-maximumPositiveValue(float32) .. -1.0'f32]
+
+proc myoverload(x: float) =
+  echo "float"
+
+proc myoverload(x: Positive) =
+  echo "PositiveRange"
+
+proc myoverload(x: StrictPositive) =
+  echo "StrictPositiveRange"
+
+
+let x = 9.0.StrictPositive
+myoverload(x)
+myoverload(9.0)
+
+doAssert(sqrt(x) == 3.0)
+
+var z = -10.0
+try:
+  myoverload(StrictPositive(z))
+except:
+  echo "range fail expected"
+  
+