| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/strings/string_number_conversions.h" | 5 #include "base/strings/string_number_conversions.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 #include <limits.h> | 8 #include <limits.h> |
| 9 #include <stddef.h> | 9 #include <stddef.h> |
| 10 #include <stdint.h> | 10 #include <stdint.h> |
| (...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 738 | 738 |
| 739 // Test different forms of representation. | 739 // Test different forms of representation. |
| 740 {"2.99792458e8", 299792458.0, true}, | 740 {"2.99792458e8", 299792458.0, true}, |
| 741 {"149597870.691E+3", 149597870691.0, true}, | 741 {"149597870.691E+3", 149597870691.0, true}, |
| 742 {"6.", 6.0, true}, | 742 {"6.", 6.0, true}, |
| 743 | 743 |
| 744 // Test around the largest/smallest value that a double can represent. | 744 // Test around the largest/smallest value that a double can represent. |
| 745 {"9e307", 9e307, true}, | 745 {"9e307", 9e307, true}, |
| 746 {"1.7976e308", 1.7976e308, true}, | 746 {"1.7976e308", 1.7976e308, true}, |
| 747 {"1.7977e308", HUGE_VAL, false}, | 747 {"1.7977e308", HUGE_VAL, false}, |
| 748 {"1.797693134862315807e+308", HUGE_VAL, true}, |
| 749 {"1.797693134862315808e+308", HUGE_VAL, false}, |
| 748 {"9e308", HUGE_VAL, false}, | 750 {"9e308", HUGE_VAL, false}, |
| 749 {"9e309", HUGE_VAL, false}, | 751 {"9e309", HUGE_VAL, false}, |
| 750 {"9e999", HUGE_VAL, false}, | 752 {"9e999", HUGE_VAL, false}, |
| 751 {"9e1999", HUGE_VAL, false}, | 753 {"9e1999", HUGE_VAL, false}, |
| 752 {"9e19999", HUGE_VAL, false}, | 754 {"9e19999", HUGE_VAL, false}, |
| 753 {"9e99999999999999999999", HUGE_VAL, false}, | 755 {"9e99999999999999999999", HUGE_VAL, false}, |
| 754 {"-9e307", -9e307, true}, | 756 {"-9e307", -9e307, true}, |
| 755 {"-1.7976e308", -1.7976e308, true}, | 757 {"-1.7976e308", -1.7976e308, true}, |
| 756 {"-1.7977e308", -HUGE_VAL, false}, | 758 {"-1.7977e308", -HUGE_VAL, false}, |
| 759 {"-1.797693134862315807e+308", -HUGE_VAL, true}, |
| 760 {"-1.797693134862315808e+308", -HUGE_VAL, false}, |
| 757 {"-9e308", -HUGE_VAL, false}, | 761 {"-9e308", -HUGE_VAL, false}, |
| 758 {"-9e309", -HUGE_VAL, false}, | 762 {"-9e309", -HUGE_VAL, false}, |
| 759 {"-9e999", -HUGE_VAL, false}, | 763 {"-9e999", -HUGE_VAL, false}, |
| 760 {"-9e1999", -HUGE_VAL, false}, | 764 {"-9e1999", -HUGE_VAL, false}, |
| 761 {"-9e19999", -HUGE_VAL, false}, | 765 {"-9e19999", -HUGE_VAL, false}, |
| 762 {"-9e99999999999999999999", -HUGE_VAL, false}, | 766 {"-9e99999999999999999999", -HUGE_VAL, false}, |
| 763 | 767 |
| 764 // Test more exponents. | 768 // Test more exponents. |
| 765 {"1e-2", 0.01, true}, | 769 {"1e-2", 0.01, true}, |
| 766 {"42 ", 42.0, false}, | 770 {"42 ", 42.0, false}, |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 888 }; | 892 }; |
| 889 | 893 |
| 890 for (const auto& test : cases) { | 894 for (const auto& test : cases) { |
| 891 double output; | 895 double output; |
| 892 EXPECT_TRUE(StringToDouble(test.input, &output)); | 896 EXPECT_TRUE(StringToDouble(test.input, &output)); |
| 893 EXPECT_EQ(bit_cast<uint64_t>(output), test.expected); | 897 EXPECT_EQ(bit_cast<uint64_t>(output), test.expected); |
| 894 } | 898 } |
| 895 } | 899 } |
| 896 | 900 |
| 897 } // namespace base | 901 } // namespace base |
| OLD | NEW |