[Base] fix some unit tests that where dependent on user config

redundant and faulty test `imperial_decimal_1_mm_default_precision` removed, it is already covered by `imperial_decimal_1_mm_precision_2`
This commit is contained in:
Adrian Insaurralde Avalos
2025-10-12 20:17:43 -03:00
committed by Kacper Donat
parent 8275916601
commit 667b841de1
2 changed files with 31 additions and 17 deletions

View File

@@ -74,6 +74,19 @@ protected:
return quantity.getSafeUserString();
}
static std::string setWithDenominator(const std::string& name,
const double value,
const Unit unit,
const int denominator)
{
UnitsApi::setSchema(name);
Quantity quantity {value, unit};
QuantityFormat format = quantity.getFormat();
format.setDenominator(denominator);
quantity.setFormat(format);
return quantity.getSafeUserString();
}
std::unique_ptr<UnitsSchemas> schemas; // NOLINT
};
@@ -190,14 +203,6 @@ TEST_F(SchemaTest, mks_123456000_m_s_precision_6)
EXPECT_EQ(result, expect);
}
TEST_F(SchemaTest, imperial_decimal_1_mm_default_precision)
{
const std::string result = set("ImperialDecimal", Unit::Length, 1.0);
const auto expect {"0.04 in"};
EXPECT_EQ(result, expect);
}
TEST_F(SchemaTest, internal_1_mm_precision_0)
{
const std::string result = setWithPrecision("Internal", 1.0, Unit::Length, 0);
@@ -378,7 +383,7 @@ TEST_F(SchemaTest, imperial_decimal_1_mm_precision_4)
TEST_F(SchemaTest, imperial_safe_user_str_same)
{
constexpr auto val {304.8};
const auto result = set("Imperial", Unit::Length, val);
const auto result = setWithPrecision("Imperial", val, Unit::Length, 2);
const auto expect = Tools::escapeQuotesFromString("1.00'");
EXPECT_EQ(result, expect);
@@ -387,7 +392,7 @@ TEST_F(SchemaTest, imperial_safe_user_str_same)
TEST_F(SchemaTest, imperial_safe_user_str_more)
{
constexpr auto val {310.0};
const auto result = set("Imperial", Unit::Length, val);
const auto result = setWithPrecision("Imperial", val, Unit::Length, 2);
const auto expect = Tools::escapeQuotesFromString("1.02'");
EXPECT_EQ(result, expect);
@@ -396,7 +401,7 @@ TEST_F(SchemaTest, imperial_safe_user_str_more)
TEST_F(SchemaTest, imperial_safe_user_str_less)
{
constexpr auto val {300.0};
const auto result = set("Imperial", Unit::Length, val);
const auto result = setWithPrecision("Imperial", val, Unit::Length, 2);
const auto expect = Tools::escapeQuotesFromString("11.81\"");
EXPECT_EQ(result, expect);
@@ -405,7 +410,7 @@ TEST_F(SchemaTest, imperial_safe_user_str_less)
TEST_F(SchemaTest, imperial_safe_user_str_one_inch)
{
constexpr auto val {25.4};
const auto result = set("Imperial", Unit::Length, val);
const auto result = setWithPrecision("Imperial", val, Unit::Length, 2);
const auto expect = Tools::escapeQuotesFromString("1.00\"");
EXPECT_EQ(result, expect);
@@ -440,7 +445,7 @@ TEST_F(SchemaTest, imperial_building_special_function_zero_length)
TEST_F(SchemaTest, imperial_building_special_function_length_negative_fraction_only)
{
constexpr auto val {(-1.0 / 8.0) * 25.4}; // -1/8 inch in mm
const auto result = set("ImperialBuilding", Unit::Length, val);
const auto result = setWithDenominator("ImperialBuilding", val, Unit::Length, 8);
const auto expect = Tools::escapeQuotesFromString("-1/8\"");
EXPECT_EQ(result, expect);
@@ -458,7 +463,7 @@ TEST_F(SchemaTest, imperial_building_special_function_negative_inches_and_fracti
TEST_F(SchemaTest, imperial_building_special_function_high_precision_rounding)
{
constexpr auto val {25.396}; // Very close to exactly 1 inch
const auto result = set("ImperialBuilding", Unit::Length, val);
const auto result = setWithDenominator("ImperialBuilding", val, Unit::Length, 8);
const auto expect = Tools::escapeQuotesFromString("1\"");
EXPECT_EQ(result, expect);
@@ -478,7 +483,7 @@ TEST_F(SchemaTest, imperial_building_special_function_length)
TEST_F(SchemaTest, imperial_building_special_function_length_neg)
{
constexpr auto val {-360.6};
const auto result = set("ImperialBuilding", Unit::Length, val);
const auto result = setWithDenominator("ImperialBuilding", val, Unit::Length, 8);
const auto expect = Tools::escapeQuotesFromString("-1' 2\" - 1/4\"");
EXPECT_EQ(result, expect);