From badba83d38371726bafba5870d5fb927eb453e41 Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Mon, 30 Oct 2017 17:21:44 +0100 Subject: [PATCH] Implementation of high/low for SomeReal (#6570) --- lib/system.nim | 3 +++ tests/system/tsystem_misc.nim | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 tests/system/tsystem_misc.nim diff --git a/lib/system.nim b/lib/system.nim index eefad5e9c0..7e0ba46581 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -2076,6 +2076,9 @@ proc max*[T](x, y: T): T = if y <= x: x else: y {.pop.} +proc high*(T: typedesc[SomeReal]): T = Inf +proc low*(T: typedesc[SomeReal]): T = NegInf + proc clamp*[T](x, a, b: T): T = ## limits the value ``x`` within the interval [a, b] ## diff --git a/tests/system/tsystem_misc.nim b/tests/system/tsystem_misc.nim new file mode 100644 index 0000000000..66b789ee96 --- /dev/null +++ b/tests/system/tsystem_misc.nim @@ -0,0 +1,18 @@ +discard """ + output:"" +""" + +# check high/low implementations +doAssert high(int) > low(int) +doAssert high(int8) > low(int8) +doAssert high(int16) > low(int16) +doAssert high(int32) > low(int32) +doAssert high(int64) > low(int64) +# doAssert high(uint) > low(uint) # reconsider depending on issue #6620 +doAssert high(uint8) > low(uint8) +doAssert high(uint16) > low(uint16) +doAssert high(uint32) > low(uint32) +# doAssert high(uint64) > low(uint64) # reconsider depending on issue #6620 +doAssert high(float) > low(float) +doAssert high(float32) > low(float32) +doAssert high(float64) > low(float64)