From a9c8face7c4880a36bb9d23a2b97013ea535f8ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Murat=20To=C4=9Fun=C3=A7han=20D=C3=BCzg=C3=BCn?= Date: Sun, 4 Jan 2026 22:11:44 +0300 Subject: [PATCH] test(scan): document current exponent parsing behavior --- test/scan-test.cc | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/scan-test.cc b/test/scan-test.cc index d4f9e413..bc295a22 100644 --- a/test/scan-test.cc +++ b/test/scan-test.cc @@ -82,6 +82,36 @@ TEST(scan_test, read_string_view) { EXPECT_EQ(fmt::scan("foo", "{}")->value(), "foo"); } +TEST(scan_test, read_double_exponent_current_behavior) { + // Exponent (e/E) and leading '+' parsing are not supported yet. + { + fmt::string_view input = "1e3"; + double value = 0.0; + auto it = fmt::scan_to(input, "{}", value); + EXPECT_DOUBLE_EQ(value, 1.0); + ASSERT_NE(it, input.end()); + EXPECT_EQ(*it, 'e'); + } + + { + fmt::string_view input = "-2.5e-2"; + double value = 0.0; + auto it = fmt::scan_to(input, "{}", value); + EXPECT_DOUBLE_EQ(value, -2.5); + ASSERT_NE(it, input.end()); + EXPECT_EQ(*it, 'e'); + } + + { + fmt::string_view input = "+1E6"; + double value = 0.0; + auto it = fmt::scan_to(input, "{}", value); + EXPECT_DOUBLE_EQ(value, 0.0); + ASSERT_NE(it, input.end()); + EXPECT_EQ(*it, '+'); + } +} + TEST(scan_test, separator) { int n1 = 0, n2 = 0; fmt::scan_to("10 20", "{} {}", n1, n2);