def test_human_float(): items = [ # (expected, value, significant, truncate_small, significant_zeros, reference_value) # significant ("1", 1.2345, 1), ("1.2", 1.2345, 2), ("1.23", 1.2345, 3), ("100", 123.45, 1), ("120", 123.45, 2), ("123", 123.45, 3), ("123.5", 123.45, 4), ("0.001", 0.0012346, 1), ("0.001235", 0.0012346, 4), # significant zeros ("0.001", 0.001, 1, None, True), ("0.0010", 0.001, 2, None, True), ("0.00100", 0.001, 3, None, True), ("1", 1, 1, None, True), ("1.0", 1, 2, None, True), ("1.00", 1, 3, None, True), # truncate small ("0", 0.001, 2, 0), ("0", 0.001, 2, 1), ("0.001", 0.001, 2, 2), ] for item in items: expected = item[0] got = util.human_float(*item[1:]) assert got == expected, item