diff --git a/tests/test_mathutils.py b/tests/test_mathutils.py index e5b536d..4e8b487 100644 --- a/tests/test_mathutils.py +++ b/tests/test_mathutils.py @@ -1,7 +1,9 @@ from pytest import raises -from boltons.mathutils import ceil, floor +from boltons.mathutils import clamp, ceil, floor +import math +INF, NAN = float('inf'), float('nan') OPTIONS = [1618, 1378, 166, 1521, 2347, 2016, 879, 2123, 269.3, 1230, 66, 425.2, 250, 2399, 2314, 439, @@ -13,6 +15,24 @@ VALID_LOWER = 247 VALID_UPPER = 2314 VALID_BETWEEN = 248.5 +def test_clamp_examples(): + """some examples for clamp()""" + assert 0 == clamp(0, 0, 1) == clamp(-1, 0, 1) + assert 0 == clamp(-1, lower=0) + assert 1 == clamp(1, 0, 1) == clamp(5, 0, 1) + assert 1 == clamp(5, upper=1) + assert 0.5 == clamp(7, upper=0.5) + assert 1 == clamp(7.7, upper=1) + +def test_clamp_transparent(): + """clamp(x) should equal x beacause both limits are omitted""" + assert clamp(0) == 0 + assert clamp(1) == 1 + assert clamp(10**100) == 10**100 + assert clamp(INF) == INF + assert clamp(-INF) == -INF + assert math.isnan(clamp(NAN)) + def test_ceil_basic(): assert ceil(VALID_LOWER, OPTIONS) == VALID_LOWER