Add a test
This commit is contained in:
parent
e2a4a43acc
commit
0c9c1c013e
1 changed files with 37 additions and 0 deletions
37
tests/float/tfloatrange.nim
Normal file
37
tests/float/tfloatrange.nim
Normal file
|
|
@ -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"
|
||||||
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue