def test_is_in_range(): # value, min, max and whether the value should match withing the range test_data = [ ("0", None, None, True), ("0", "0", None, True), ("0", None, "10.32", True), ("0", "0", "10.32", True), ("32.00", None, None, True), ("32.00", "0", None, True), ("32.00", None, "64", True), ("32.00", "0", "31.9999", False), ("32.00", "0", "32", True), ("32.00", "0", "64", True), ("32.00", "31.999", None, True), ("32.00", "31.999", "32.000", True), ("32.00", "31.999", "32.0001", True), ("32.00", "32.00", "32.00", True), ("32.00", "32.00", "66", False), ("32.00", "32.00", None, False), ("43.00", "32.00", "100.00", True), ("11.00", "32.00", "100.00", False), ("121.00", "32.00", "100.00", False), ] for value, min, max, result in test_data: assert _is_in_range( decimal.Decimal(value), decimal.Decimal(min) if min else None, decimal.Decimal(max) if max else None) == result # Any range with None value should be False assert not _is_in_range( None, decimal.Decimal(min) if min else None, decimal.Decimal(max) if max else None) # In case when both limits is given range shouldn't work in reverse order. if min and max and min != max: assert not _is_in_range( decimal.Decimal(value), decimal.Decimal(max) if max else None, decimal.Decimal(min) if min else None)
def test_is_in_range(): # value, min, max and whether the value should match withing the range test_data = [ ("0", None, None, True), ("0", "0", None, True), ("0", None, "10.32", True), ("0", "0", "10.32", True), ("32.00", None, None, True), ("32.00", "0", None, True), ("32.00", None, "64", True), ("32.00", "0", "31.9999", False), ("32.00", "0", "32", True), ("32.00", "0", "64", True), ("32.00", "31.999", None, True), ("32.00", "31.999", "32.000", True), ("32.00", "31.999", "32.0001", True), ("32.00", "32.00", "32.00", True), ("32.00", "32.00", "66", False), ("32.00", "32.00", None, False), ("43.00", "32.00", "100.00", True), ("11.00", "32.00", "100.00", False), ("121.00", "32.00", "100.00", False), ] for value, min, max, result in test_data: assert _is_in_range( decimal.Decimal(value), decimal.Decimal(min) if min else None, decimal.Decimal(max) if max else None) == result # Any range with None value should be False assert not _is_in_range( None, decimal.Decimal(min) if min else None, decimal.Decimal(max) if max else None) # In case when both limits is given range shouldn't work in reverse order. if min and max and min != max: assert not _is_in_range( decimal.Decimal(value), decimal.Decimal(max) if max else None, decimal.Decimal(min) if min else None)