From 56ff0b5581f9da0f85ec708e8f72e4a61ce5b276 Mon Sep 17 00:00:00 2001 From: Adrian Molzon Date: Thu, 28 Aug 2025 16:44:14 +0100 Subject: [PATCH 1/3] correct the formatting for positive numbers with negative exponents and add additional test --- bayes_opt/logger.py | 2 +- tests/test_logger.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/bayes_opt/logger.py b/bayes_opt/logger.py index 69f40d19..d34d3681 100644 --- a/bayes_opt/logger.py +++ b/bayes_opt/logger.py @@ -82,7 +82,7 @@ def _format_number(self, x: float) -> str: result = "" width = self._default_cell_size # Keep negative sign, exponent, and as many decimal places as possible - if "-" in s: + if x < 0: result += "-" width -= 1 s = s[1:] diff --git a/tests/test_logger.py b/tests/test_logger.py index 26e642ac..9b18344a 100644 --- a/tests/test_logger.py +++ b/tests/test_logger.py @@ -87,6 +87,10 @@ def test_format_number(): assert len(formatted) == logger._default_cell_size assert formatted == "1.234e+13" + sci_float = 1.11111111e-5 + formatted = logger._format_number(sci_float) + assert formatted == "1.111e-05" + # Test negative scientific notation truncation sci_float = -12345678901234.5678901234 formatted = logger._format_number(sci_float) From 006b979926f9c56d4eff8371e08317ed4f96caa8 Mon Sep 17 00:00:00 2001 From: Adrian Molzon Date: Thu, 28 Aug 2025 17:02:24 +0100 Subject: [PATCH 2/3] add case for negative exponent truncation, add guard for the mantissa --- bayes_opt/logger.py | 3 ++- tests/test_logger.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bayes_opt/logger.py b/bayes_opt/logger.py index d34d3681..32902f2a 100644 --- a/bayes_opt/logger.py +++ b/bayes_opt/logger.py @@ -97,7 +97,8 @@ def _format_number(self, x: float) -> str: if width > 0: result += s[dot_pos : dot_pos + width] else: - result += s[:width] + head = s[:e_pos] if "e" in s else s + result += head[:width] if "e" in s: result += end result = result.ljust(self._default_cell_size) diff --git a/tests/test_logger.py b/tests/test_logger.py index 9b18344a..47bf7bc5 100644 --- a/tests/test_logger.py +++ b/tests/test_logger.py @@ -91,7 +91,10 @@ def test_format_number(): formatted = logger._format_number(sci_float) assert formatted == "1.111e-05" - # Test negative scientific notation truncation + sci_float_neg = -1.11111111e-5 + formatted = logger._format_number(sci_float_neg) + assert formatted == "-1.11e-05" + sci_float = -12345678901234.5678901234 formatted = logger._format_number(sci_float) assert len(formatted) == logger._default_cell_size From 4df7b26ca51c762dea0085738eb4ac655e82d9c8 Mon Sep 17 00:00:00 2001 From: Adrian Molzon Date: Tue, 9 Sep 2025 14:25:36 +0100 Subject: [PATCH 3/3] delete unnecessary else statement --- bayes_opt/logger.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/bayes_opt/logger.py b/bayes_opt/logger.py index 32902f2a..c637771a 100644 --- a/bayes_opt/logger.py +++ b/bayes_opt/logger.py @@ -96,9 +96,6 @@ def _format_number(self, x: float) -> str: width -= dot_pos if width > 0: result += s[dot_pos : dot_pos + width] - else: - head = s[:e_pos] if "e" in s else s - result += head[:width] if "e" in s: result += end result = result.ljust(self._default_cell_size)