summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--lib/system.nim3
-rw-r--r--tests/system/tsystem_misc.nim18
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/system.nim b/lib/system.nim
index eefad5e9c..7e0ba4658 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 000000000..66b789ee9
--- /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)