summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--lib/pure/math.nim2
-rw-r--r--lib/system/comparisons.nim7
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/pure/math.nim b/lib/pure/math.nim
index 95c57730f..4a13eefcb 100644
--- a/lib/pure/math.nim
+++ b/lib/pure/math.nim
@@ -1190,6 +1190,8 @@ func clamp*[T](val: T, bounds: Slice[T]): T {.since: (1, 5), inline.} =
     type A = enum a0, a1, a2, a3, a4, a5
     assert a1.clamp(a2..a4) == a2
     assert clamp((3, 0), (1, 0) .. (2, 9)) == (2, 9)
+    doAssertRaises(AssertionDefect): discard clamp(1, 3..2) # invalid bounds
+  assert bounds.a <= bounds.b, $(bounds.a, bounds.b)
   clamp(val, bounds.a, bounds.b)
 
 func lcm*[T](x: openArray[T]): T {.since: (1, 1).} =
diff --git a/lib/system/comparisons.nim b/lib/system/comparisons.nim
index 6c67ca493..2e5664a95 100644
--- a/lib/system/comparisons.nim
+++ b/lib/system/comparisons.nim
@@ -251,9 +251,12 @@ proc max*[T](x: openArray[T]): T =
 
 proc clamp*[T](x, a, b: T): T =
   ## Limits the value `x` within the interval [a, b].
-  ## This proc is equivalent to but fatser than `max(a, min(b, x))`.
+  ## This proc is equivalent to but faster than `max(a, min(b, x))`.
   ## 
-  ## **Note:** `a <= b` is assumed and will not be checked.
+  ## .. warning:: `a <= b` is assumed and will not be checked (currently).
+  ##
+  ## **See also:**
+  ## `math.clamp` for a version that takes a `Slice[T]` instead.
   runnableExamples:
     assert (1.4).clamp(0.0, 1.0) == 1.0
     assert (0.5).clamp(0.0, 1.0) == 0.5