Fixes 15544: Histogram not working for more than 15 units (#15617)

This commit is contained in:
Ayush Shah 2024-03-20 11:35:52 +05:30 committed by GitHub
parent 731813c0e1
commit e06e5c1bdd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 0 deletions

View File

@ -346,6 +346,8 @@ def format_large_string_numbers(number: Union[float, int]) -> str:
units = ["", "K", "M", "B", "T"]
constant_k = 1000.0
magnitude = int(floor(log(abs(number), constant_k)))
if magnitude >= len(units):
return f"{int(number / constant_k**magnitude)}e{magnitude*3}"
return f"{number / constant_k**magnitude:.3f}{units[magnitude]}"

View File

@ -157,6 +157,12 @@ class TestHelpers(TestCase):
assert format_large_string_numbers(1000000) == "1.000M"
assert format_large_string_numbers(1000000000) == "1.000B"
assert format_large_string_numbers(1000000000000) == "1.000T"
assert format_large_string_numbers(10000000000000) == "10.000T"
assert format_large_string_numbers(100000000000000) == "100.000T"
assert format_large_string_numbers(1000000000000000) == "1e15"
assert format_large_string_numbers(10000000000000000) == "10e15"
assert format_large_string_numbers(100000000000000000) == "100e15"
assert format_large_string_numbers(1000000000000000000) == "1e18"
def test_find_suggestion(self):
"""we can get one possible suggestion"""