30 QLocale locale(QLocale::C);
31 locale.setNumberOptions(QLocale::RejectGroupSeparator);
33 QDoubleValidator validator;
34 validator.setLocale(locale);
35 validator.setNotation(QDoubleValidator::ScientificNotation);
37 auto to_value = [&validator](QString text) {
39 std::numeric_limits<double>::max(), 0.1);
43 EXPECT_EQ(0.1, to_value(QString(
"abcd")));
44 EXPECT_EQ(0.1, to_value(QString(
"1,2")));
45 EXPECT_EQ(0.1, to_value(QString(
"100,000,000.2")));
46 EXPECT_EQ(0.1, to_value(QString(
"100.000.000.2")));
47 EXPECT_EQ(0.1, to_value(QString(
"1e+2345")));
48 EXPECT_EQ(0.1, to_value(QString(
"-1e+2345")));
49 EXPECT_EQ(0.1, to_value(QString(
"1e-2345")));
50 EXPECT_EQ(0.1, to_value(QString(
"-1e-2345")));
51 EXPECT_EQ(0.1, to_value(QString(
"--0.1")));
52 EXPECT_EQ(0.1, to_value(QString(
"-.e-12")));
53 EXPECT_EQ(0.1, to_value(QString()));
55 auto to_value_2 = [&validator](QString text) {
60 EXPECT_EQ(0.1, to_value_2(QString(
"-0.2")));
61 EXPECT_EQ(0.1, to_value_2(QString(
"-0.1e+1")));
62 EXPECT_EQ(0.1, to_value_2(QString(
"1e+8")));
65 EXPECT_EQ(-0.0999, to_value_2(QString(
"-0.0999")));
66 EXPECT_EQ(-1e-13, to_value_2(QString(
"-.1e-12")));
67 EXPECT_EQ(0.0, to_value_2(QString(
"0")));
68 EXPECT_EQ(0.123, to_value_2(QString(
"0.123")));
69 EXPECT_EQ(1e+6, to_value_2(QString(
"1e+6")));
70 EXPECT_EQ(1.1e+6, to_value_2(QString(
"1.1e+6")));
71 EXPECT_EQ(0.012, to_value_2(QString(
"0.012")));
79 EXPECT_EQ(std::string(
"-123.45"), to_string(-123.45).toStdString());
80 EXPECT_EQ(std::string(
"-100"), to_string(-99.9999).toStdString());
81 EXPECT_EQ(std::string(
"-99.999"), to_string(-99.9994).toStdString());
82 EXPECT_EQ(std::string(
"-10.123"), to_string(-10.12345).toStdString());
83 EXPECT_EQ(std::string(
"-1"), to_string(-1.).toStdString());
84 EXPECT_EQ(std::string(
"-0.1"), to_string(-0.1).toStdString());
85 EXPECT_EQ(std::string(
"-0.1"), to_string(-0.1).toStdString());
86 EXPECT_EQ(std::string(
"-9.99e-2"), to_string(-9.99e-2).toStdString());
87 EXPECT_EQ(std::string(
"-1.266e-12"), to_string(-1.26555e-12).toStdString());
88 EXPECT_EQ(std::string(
"0"), to_string(-0.0).toStdString());
89 EXPECT_EQ(std::string(
"0"), to_string(0.0).toStdString());
90 EXPECT_EQ(std::string(
"1e-12"), to_string(1.e-12).toStdString());
91 EXPECT_EQ(std::string(
"1.23e-12"), to_string(1.23e-12).toStdString());
92 EXPECT_EQ(std::string(
"1e-2"), to_string(1.e-2).toStdString());
93 EXPECT_EQ(std::string(
"1.5e-2"), to_string(1.5e-2).toStdString());
94 EXPECT_EQ(std::string(
"1.523e-2"), to_string(1.5234e-2).toStdString());
95 EXPECT_EQ(std::string(
"9.99e-2"), to_string(9.99e-2).toStdString());
96 EXPECT_EQ(std::string(
"1e-1"), to_string(9.9999e-2).toStdString());
97 EXPECT_EQ(std::string(
"0.1"), to_string(0.1).toStdString());
98 EXPECT_EQ(std::string(
"1"), to_string(1.).toStdString());
99 EXPECT_EQ(std::string(
"1.1"), to_string(1.1).toStdString());
100 EXPECT_EQ(std::string(
"1.123"), to_string(1.12345).toStdString());
101 EXPECT_EQ(std::string(
"10.123"), to_string(10.12345).toStdString());
102 EXPECT_EQ(std::string(
"99.9"), to_string(99.9).toStdString());
103 EXPECT_EQ(std::string(
"99.999"), to_string(99.9994).toStdString());
104 EXPECT_EQ(std::string(
"100"), to_string(99.9999).toStdString());
105 EXPECT_EQ(std::string(
"123.45"), to_string(123.45).toStdString());
106 EXPECT_EQ(std::string(
"1e+4"), to_string(1.e+4).toStdString());
107 EXPECT_EQ(std::string(
"1.265e+12"), to_string(1.265e+12).toStdString());
108 EXPECT_EQ(std::string(
"1.266e+12"), to_string(1.26555e+12).toStdString());
111 EXPECT_EQ(std::string(
"1.23e-12"), to_string(1.23e-12).toStdString());
112 EXPECT_EQ(std::string(
"1.52346e-2"), to_string(1.523456e-2).toStdString());
113 EXPECT_EQ(std::string(
"1e-1"), to_string(9.999999e-2).toStdString());
114 EXPECT_EQ(std::string(
"1.12346"), to_string(1.123455).toStdString());
115 EXPECT_EQ(std::string(
"10.12346"), to_string(10.123456).toStdString());
116 EXPECT_EQ(std::string(
"99.9"), to_string(99.9).toStdString());
117 EXPECT_EQ(std::string(
"100"), to_string(99.999999).toStdString());
118 EXPECT_EQ(std::string(
"123.45"), to_string(123.45).toStdString());
119 EXPECT_EQ(std::string(
"1.26556e+12"), to_string(1.265556e+12).toStdString());
125 EXPECT_DOUBLE_EQ(1.232e-12, round_3(1.2323e-12));
126 EXPECT_DOUBLE_EQ(0.123, round_3(0.1232));
127 EXPECT_DOUBLE_EQ(1.002e+2, round_3(100.2));
static double toDouble(QString text, const QDoubleValidator &validator, double min, double max, double default_value)
static double round(double val, int decimals)
static QString toString(double val, int decimal_points)
~ScientificSpinBoxTest() override
materialitems.h Collection of materials to populate MaterialModel.
std::string toString(PyObject *obj)
Converts PyObject into string, if possible, or throws exception.
TEST_F(ScientificSpinBoxTest, testValueFromText)