Base: Quantity: return std::string
This commit is contained in:
committed by
Yorik van Havre
parent
9f7218ac75
commit
0b3adee2ab
@@ -44,8 +44,8 @@ protected:
|
||||
}
|
||||
|
||||
Base::Quantity parse_quantity_text_as_quantity(const char* quantity_text) {
|
||||
auto quantity_qstr = QString::fromStdString(std::string(quantity_text));
|
||||
auto quantity_result = Base::Quantity::parse(quantity_qstr);
|
||||
auto quantity_str = std::string(quantity_text);
|
||||
auto quantity_result = Base::Quantity::parse(quantity_str);
|
||||
return quantity_result;
|
||||
}
|
||||
|
||||
@@ -95,8 +95,8 @@ TEST_F(ExpressionParserTest, functionPARSEQUANT)
|
||||
EXPECT_EQ(expression_result, quantity_result) << "mismatch:"
|
||||
" expression_text='" + std::string(expression_text) + "'"
|
||||
" quantity_text='" + std::string(quantity_text) + "'"
|
||||
" expression_representation='" + expression_result.getUserString().toStdString() + "'"
|
||||
" quantity_representation='" + quantity_result.getUserString().toStdString() + "'"
|
||||
" expression_representation='" + expression_result.getUserString() + "'"
|
||||
" quantity_representation='" + quantity_result.getUserString() + "'"
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ TEST_F(PropertyExpressionEngineTest, executeCrossPropertyReference)
|
||||
auto target_value = target_quant.getValue();
|
||||
auto target_unit = target_quant.getUnit().getString();
|
||||
|
||||
auto verify_quant = Base::Quantity::parse(QString::fromStdString(target_text));
|
||||
auto verify_quant = Base::Quantity::parse(target_text);
|
||||
|
||||
EXPECT_EQ(target_quant, verify_quant) << ""
|
||||
"expecting equal: source_text='" + source_text + "' target_text='" + target_text + "'"
|
||||
|
||||
@@ -19,12 +19,10 @@ TEST(BaseQuantity, TestValid)
|
||||
|
||||
TEST(BaseQuantity, TestParse)
|
||||
{
|
||||
Base::Quantity q1 = Base::Quantity::parse(QString::fromLatin1("1,234 kg"));
|
||||
Base::Quantity q1 = Base::Quantity::parse("1,234 kg");
|
||||
|
||||
EXPECT_EQ(q1, Base::Quantity(1.2340, Base::Unit::Mass));
|
||||
EXPECT_THROW(
|
||||
boost::ignore_unused(Base::Quantity::parse(QString::fromLatin1("1,234,500.12 kg"))),
|
||||
Base::ParserError);
|
||||
EXPECT_THROW(boost::ignore_unused(Base::Quantity::parse("1,234,500.12 kg")), Base::ParserError);
|
||||
}
|
||||
|
||||
TEST(BaseQuantity, TestDim)
|
||||
@@ -74,10 +72,10 @@ TEST(BaseQuantity, TestPow3DIV2)
|
||||
|
||||
TEST(BaseQuantity, TestString)
|
||||
{
|
||||
Base::Quantity q1 {2, QString::fromLatin1("kg*m/s^2")};
|
||||
Base::Quantity q1 {2, "kg*m/s^2"};
|
||||
EXPECT_EQ(q1.getUnit(), Base::Unit::Force);
|
||||
|
||||
Base::Quantity q2 {2, QString::fromLatin1("kg*m^2/s^2")};
|
||||
Base::Quantity q2 {2, "kg*m^2/s^2"};
|
||||
EXPECT_EQ(q2.getUnit(), Base::Unit::Work);
|
||||
}
|
||||
|
||||
@@ -91,7 +89,7 @@ TEST(BaseQuantity, TestCopy)
|
||||
TEST(BaseQuantity, TestEqual)
|
||||
{
|
||||
Base::Quantity q1 {1.0, Base::Unit::Force};
|
||||
Base::Quantity q2 {1.0, QString::fromLatin1("kg*mm/s^2")};
|
||||
Base::Quantity q2 {1.0, "kg*mm/s^2"};
|
||||
|
||||
EXPECT_EQ(q1 == q1, true);
|
||||
EXPECT_EQ(q1 == q2, true);
|
||||
@@ -100,7 +98,7 @@ TEST(BaseQuantity, TestEqual)
|
||||
TEST(BaseQuantity, TestNotEqual)
|
||||
{
|
||||
Base::Quantity q1 {1.0, Base::Unit::Force};
|
||||
Base::Quantity q2 {2.0, QString::fromLatin1("kg*m/s^2")};
|
||||
Base::Quantity q2 {2.0, "kg*m/s^2"};
|
||||
Base::Quantity q3 {1.0, Base::Unit::Work};
|
||||
|
||||
EXPECT_EQ(q1 != q2, true);
|
||||
@@ -110,7 +108,7 @@ TEST(BaseQuantity, TestNotEqual)
|
||||
TEST(BaseQuantity, TestLessOrGreater)
|
||||
{
|
||||
Base::Quantity q1 {1.0, Base::Unit::Force};
|
||||
Base::Quantity q2 {2.0, QString::fromLatin1("kg*m/s^2")};
|
||||
Base::Quantity q2 {2.0, "kg*m/s^2"};
|
||||
Base::Quantity q3 {2.0, Base::Unit::Work};
|
||||
|
||||
EXPECT_EQ(q1 < q2, true);
|
||||
@@ -223,9 +221,9 @@ TEST_F(Quantity, TestSafeUserString)
|
||||
format.precision = 1;
|
||||
quantity.setFormat(format);
|
||||
|
||||
QString result = quantity.getSafeUserString();
|
||||
std::string result = quantity.getSafeUserString();
|
||||
|
||||
EXPECT_EQ(result.toStdString(), "1 mm");
|
||||
EXPECT_EQ(result, "1 mm");
|
||||
|
||||
Base::UnitsApi::setSchema(Base::UnitSystem::Imperial1);
|
||||
|
||||
@@ -234,13 +232,13 @@ TEST_F(Quantity, TestSafeUserString)
|
||||
|
||||
result = quantity.getSafeUserString();
|
||||
|
||||
EXPECT_EQ(result.toStdString(), "1.0 \\'");
|
||||
EXPECT_EQ(result, "1.0 \\'");
|
||||
|
||||
quantity = Base::Quantity {25.4, Base::Unit::Length};
|
||||
quantity.setFormat(format);
|
||||
|
||||
result = quantity.getSafeUserString();
|
||||
|
||||
EXPECT_EQ(result.toStdString(), "1.0 \\\"");
|
||||
EXPECT_EQ(result, "1.0 \\\"");
|
||||
}
|
||||
// NOLINTEND
|
||||
|
||||
@@ -32,19 +32,19 @@ private Q_SLOTS:
|
||||
void test_SimpleBaseUnit() // NOLINT
|
||||
{
|
||||
auto result = qsb->valueFromText("1mm");
|
||||
QCOMPARE(result, Base::Quantity(1, QLatin1String("mm")));
|
||||
QCOMPARE(result, Base::Quantity(1, "mm"));
|
||||
}
|
||||
|
||||
void test_UnitInNumerator() // NOLINT
|
||||
{
|
||||
auto result = qsb->valueFromText("1mm/10");
|
||||
QCOMPARE(result, Base::Quantity(0.1, QLatin1String("mm")));
|
||||
QCOMPARE(result, Base::Quantity(0.1, "mm"));
|
||||
}
|
||||
|
||||
void test_UnitInDenominator() // NOLINT
|
||||
{
|
||||
auto result = qsb->valueFromText("1/10mm");
|
||||
QCOMPARE(result, Base::Quantity(0.1, QLatin1String("mm")));
|
||||
QCOMPARE(result, Base::Quantity(0.1, "mm"));
|
||||
}
|
||||
|
||||
void test_KeepFormat() // NOLINT
|
||||
|
||||
@@ -130,7 +130,7 @@ TEST_F(TestMaterialValue, TestQuantityType)
|
||||
EXPECT_EQ(variant.toString().size(), 0);
|
||||
auto quantity = variant.value<Base::Quantity>();
|
||||
EXPECT_FALSE(quantity.isValid());
|
||||
EXPECT_EQ(quantity.getUserString(), QString::fromStdString("nan "));
|
||||
EXPECT_EQ(quantity.getUserString(), "nan ");
|
||||
EXPECT_TRUE(std::isnan(quantity.getValue()));
|
||||
|
||||
// Test a copy
|
||||
@@ -146,7 +146,7 @@ TEST_F(TestMaterialValue, TestQuantityType)
|
||||
EXPECT_EQ(variant.toString().size(), 0);
|
||||
quantity = variant.value<Base::Quantity>();
|
||||
EXPECT_FALSE(quantity.isValid());
|
||||
EXPECT_EQ(quantity.getUserString(), QString::fromStdString("nan "));
|
||||
EXPECT_EQ(quantity.getUserString(), "nan ");
|
||||
EXPECT_TRUE(std::isnan(quantity.getValue()));
|
||||
}
|
||||
|
||||
@@ -246,27 +246,27 @@ TEST_F(TestMaterialValue, TestArray3DType)
|
||||
EXPECT_EQ(mat2.rows(1), 1);
|
||||
EXPECT_EQ(mat2.rows(2), 2);
|
||||
|
||||
quantity = Base::Quantity::parse(QString::fromStdString("32 C"));
|
||||
quantity = Base::Quantity::parse("32 C");
|
||||
mat2.setDepthValue(quantity);
|
||||
EXPECT_FALSE(mat2.getDepthValue(0).isValid());
|
||||
EXPECT_FALSE(mat2.getDepthValue(1).isValid());
|
||||
EXPECT_TRUE(mat2.getDepthValue(2).isValid());
|
||||
EXPECT_EQ(mat2.getDepthValue(2), Base::Quantity::parse(QString::fromStdString("32 C")));
|
||||
EXPECT_EQ(mat2.getDepthValue(2), Base::Quantity::parse("32 C"));
|
||||
|
||||
mat2.setDepthValue(0, Base::Quantity::parse(QString::fromStdString("9.8 m/s/s")));
|
||||
mat2.setDepthValue(0, Base::Quantity::parse("9.8 m/s/s"));
|
||||
EXPECT_TRUE(mat2.getDepthValue(0).isValid());
|
||||
EXPECT_FALSE(mat2.getDepthValue(1).isValid());
|
||||
EXPECT_TRUE(mat2.getDepthValue(2).isValid());
|
||||
EXPECT_EQ(mat2.getDepthValue(0), Base::Quantity::parse(QString::fromStdString("9.8 m/s/s")));
|
||||
EXPECT_EQ(mat2.getDepthValue(2), Base::Quantity::parse(QString::fromStdString("32 C")));
|
||||
EXPECT_EQ(mat2.getDepthValue(0), Base::Quantity::parse("9.8 m/s/s"));
|
||||
EXPECT_EQ(mat2.getDepthValue(2), Base::Quantity::parse("32 C"));
|
||||
|
||||
mat2.setDepthValue(1, Base::Quantity::parse(QString::fromStdString("120 MPa")));
|
||||
mat2.setDepthValue(1, Base::Quantity::parse("120 MPa"));
|
||||
EXPECT_TRUE(mat2.getDepthValue(0).isValid());
|
||||
EXPECT_TRUE(mat2.getDepthValue(1).isValid());
|
||||
EXPECT_TRUE(mat2.getDepthValue(2).isValid());
|
||||
EXPECT_EQ(mat2.getDepthValue(0), Base::Quantity::parse(QString::fromStdString("9.8 m/s/s")));
|
||||
EXPECT_EQ(mat2.getDepthValue(1), Base::Quantity::parse(QString::fromStdString("120 MPa")));
|
||||
EXPECT_EQ(mat2.getDepthValue(2), Base::Quantity::parse(QString::fromStdString("32 C")));
|
||||
EXPECT_EQ(mat2.getDepthValue(0), Base::Quantity::parse("9.8 m/s/s"));
|
||||
EXPECT_EQ(mat2.getDepthValue(1), Base::Quantity::parse("120 MPa"));
|
||||
EXPECT_EQ(mat2.getDepthValue(2), Base::Quantity::parse("32 C"));
|
||||
|
||||
// Rows are currently empty
|
||||
EXPECT_THROW(mat2.getValue(2, 0), Materials::InvalidIndex);
|
||||
@@ -275,12 +275,11 @@ TEST_F(TestMaterialValue, TestArray3DType)
|
||||
EXPECT_FALSE(mat2.getValue(0, 1).isValid());
|
||||
|
||||
// set to a valid quantity
|
||||
mat2.setValue(0, 0, Base::Quantity::parse(QString::fromStdString("120 MPa")));
|
||||
mat2.setValue(0, 0, Base::Quantity::parse("120 MPa"));
|
||||
EXPECT_TRUE(mat2.getValue(0, 0).isValid());
|
||||
mat2.setValue(0, 1, Base::Quantity::parse(QString::fromStdString("9.8 m/s/s")));
|
||||
mat2.setValue(0, 1, Base::Quantity::parse("9.8 m/s/s"));
|
||||
EXPECT_TRUE(mat2.getValue(0, 1).isValid());
|
||||
EXPECT_THROW(mat2.setValue(0, 2, Base::Quantity::parse(QString::fromStdString("32 C"))), Materials::InvalidIndex);
|
||||
|
||||
EXPECT_THROW(mat2.setValue(0, 2, Base::Quantity::parse("32 C")), Materials::InvalidIndex);
|
||||
}
|
||||
|
||||
// clang-format on
|
||||
|
||||
@@ -221,12 +221,11 @@ TEST_F(TestMaterial, TestAddAppearanceModel)
|
||||
EXPECT_EQ(models->size(), 0);
|
||||
}
|
||||
|
||||
QString parseQuantity(const char *string)
|
||||
QString parseQuantity(const std::string& value)
|
||||
{
|
||||
QString value = QString::fromStdString(string);
|
||||
auto quantity = Base::Quantity::parse(value);
|
||||
quantity.setFormat(Materials::MaterialValue::getQuantityFormat());
|
||||
return quantity.getUserString();
|
||||
return QString::fromStdString(quantity.getUserString());
|
||||
}
|
||||
|
||||
TEST_F(TestMaterial, TestCalculiXSteel)
|
||||
@@ -343,12 +342,11 @@ TEST_F(TestMaterial, TestCalculiXSteel)
|
||||
EXPECT_EQ(steel->getAppearanceValue(QString::fromStdString("SpecularColor")), QString::fromStdString("(0.9800, 0.9800, 0.9800, 1.0)"));
|
||||
EXPECT_DOUBLE_EQ(steel->getAppearanceValue(QString::fromStdString("Transparency")).toDouble(), 0.0);
|
||||
|
||||
EXPECT_EQ(steel->getPhysicalQuantity(QString::fromStdString("Density")).getUserString(), parseQuantity("7900.00 kg/m^3"));
|
||||
EXPECT_EQ(steel->getPhysicalQuantity(QString::fromStdString("YoungsModulus")).getUserString(), parseQuantity("210.00 GPa"));
|
||||
EXPECT_EQ(steel->getPhysicalQuantity(QString::fromStdString("SpecificHeat")).getUserString(), parseQuantity("590.00 J/kg/K"));
|
||||
EXPECT_EQ(steel->getPhysicalQuantity(QString::fromStdString("ThermalConductivity")).getUserString(), parseQuantity("43.00 W/m/K"));
|
||||
EXPECT_EQ(steel->getPhysicalQuantity(QString::fromStdString("ThermalExpansionCoefficient")).getUserString(), parseQuantity("12.00 µm/m/K"));
|
||||
|
||||
EXPECT_EQ(steel->getPhysicalQuantity(QString::fromStdString("Density")).getUserString(), parseQuantity("7900.00 kg/m^3").toStdString());
|
||||
EXPECT_EQ(steel->getPhysicalQuantity(QString::fromStdString("YoungsModulus")).getUserString(), parseQuantity("210.00 GPa").toStdString());
|
||||
EXPECT_EQ(steel->getPhysicalQuantity(QString::fromStdString("SpecificHeat")).getUserString(), parseQuantity("590.00 J/kg/K").toStdString());
|
||||
EXPECT_EQ(steel->getPhysicalQuantity(QString::fromStdString("ThermalConductivity")).getUserString(), parseQuantity("43.00 W/m/K").toStdString());
|
||||
EXPECT_EQ(steel->getPhysicalQuantity(QString::fromStdString("ThermalExpansionCoefficient")).getUserString(), parseQuantity("12.00 µm/m/K").toStdString());
|
||||
}
|
||||
|
||||
TEST_F(TestMaterial, TestColumns)
|
||||
|
||||
Reference in New Issue
Block a user