Better formatting for distance tests
Signed-off-by: Alexander Borsuk <me@alex.bio>
This commit is contained in:
parent
be616d4995
commit
eacaec0cf9
1 changed files with 131 additions and 133 deletions
|
@ -105,8 +105,6 @@ UNIT_TEST(Distance_IsHighUnits)
|
|||
|
||||
UNIT_TEST(Distance_To)
|
||||
{
|
||||
using Units = Distance::Units;
|
||||
|
||||
struct TestData
|
||||
{
|
||||
double initialDistance;
|
||||
|
@ -116,47 +114,48 @@ UNIT_TEST(Distance_To)
|
|||
Distance::Units newUnits;
|
||||
};
|
||||
|
||||
using enum Distance::Units;
|
||||
// clang-format off
|
||||
TestData constexpr testData[] = {
|
||||
{0.1, Units::Meters, Units::Feet, 0, Units::Feet},
|
||||
{0.3, Units::Meters, Units::Feet, 1, Units::Feet},
|
||||
{0.3048, Units::Meters, Units::Feet, 1, Units::Feet},
|
||||
{0.4573, Units::Meters, Units::Feet, 2, Units::Feet},
|
||||
{0.9, Units::Meters, Units::Feet, 3, Units::Feet},
|
||||
{3, Units::Meters, Units::Feet, 10, Units::Feet},
|
||||
{30.17, Units::Meters, Units::Feet, 99, Units::Feet},
|
||||
{30.33, Units::Meters, Units::Feet, 100, Units::Feet},
|
||||
{30.49, Units::Meters, Units::Feet, 100, Units::Feet},
|
||||
{33.5, Units::Meters, Units::Feet, 110, Units::Feet},
|
||||
{302, Units::Meters, Units::Feet, 990, Units::Feet},
|
||||
{304.7, Units::Meters, Units::Feet, 0.2, Units::Miles},
|
||||
{304.8, Units::Meters, Units::Feet, 0.2, Units::Miles},
|
||||
{402.3, Units::Meters, Units::Feet, 0.2, Units::Miles},
|
||||
{402.4, Units::Meters, Units::Feet, 0.3, Units::Miles},
|
||||
{482.8, Units::Meters, Units::Feet, 0.3, Units::Miles},
|
||||
{1609.3, Units::Meters, Units::Feet, 1.0, Units::Miles},
|
||||
{1610, Units::Meters, Units::Feet, 1.0, Units::Miles},
|
||||
{1770, Units::Meters, Units::Feet, 1.1, Units::Miles},
|
||||
{15933, Units::Meters, Units::Feet, 9.9, Units::Miles},
|
||||
{16093, Units::Meters, Units::Feet, 10, Units::Miles},
|
||||
{16093.5, Units::Meters, Units::Feet, 10, Units::Miles},
|
||||
{16898.464, Units::Meters, Units::Feet, 11, Units::Miles},
|
||||
{16898.113, Units::Meters, Units::Kilometers, 17, Units::Kilometers},
|
||||
{302, Units::Meters, Units::Miles, 990, Units::Feet},
|
||||
{994, Units::Meters, Units::Kilometers, 990, Units::Meters},
|
||||
{995, Units::Meters, Units::Kilometers, 1.0, Units::Kilometers},
|
||||
{0.1, Units::Kilometers, Units::Meters, 100, Units::Meters},
|
||||
{0.3, Units::Kilometers, Units::Kilometers, 300, Units::Meters},
|
||||
{12, Units::Kilometers, Units::Feet, 7.5, Units::Miles},
|
||||
{0.1, Units::Kilometers, Units::Feet, 330, Units::Feet},
|
||||
{110, Units::Feet, Units::Meters, 34, Units::Meters},
|
||||
{1100, Units::Feet, Units::Kilometers, 340, Units::Meters},
|
||||
{1100, Units::Feet, Units::Meters, 340, Units::Meters},
|
||||
{1100, Units::Feet, Units::Miles, 0.2, Units::Miles},
|
||||
{0.2, Units::Miles, Units::Meters, 320, Units::Meters},
|
||||
{11, Units::Miles, Units::Meters, 18, Units::Kilometers},
|
||||
{11, Units::Miles, Units::Kilometers, 18, Units::Kilometers},
|
||||
{0.1, Units::Miles, Units::Feet, 530, Units::Feet},
|
||||
{0.1, Meters, Feet, 0, Feet},
|
||||
{0.3, Meters, Feet, 1, Feet},
|
||||
{0.3048, Meters, Feet, 1, Feet},
|
||||
{0.4573, Meters, Feet, 2, Feet},
|
||||
{0.9, Meters, Feet, 3, Feet},
|
||||
{3, Meters, Feet, 10, Feet},
|
||||
{30.17, Meters, Feet, 99, Feet},
|
||||
{30.33, Meters, Feet, 100, Feet},
|
||||
{30.49, Meters, Feet, 100, Feet},
|
||||
{33.5, Meters, Feet, 110, Feet},
|
||||
{302, Meters, Feet, 990, Feet},
|
||||
{304.7, Meters, Feet, 0.2, Miles},
|
||||
{304.8, Meters, Feet, 0.2, Miles},
|
||||
{402.3, Meters, Feet, 0.2, Miles},
|
||||
{402.4, Meters, Feet, 0.3, Miles},
|
||||
{482.8, Meters, Feet, 0.3, Miles},
|
||||
{1609.3, Meters, Feet, 1.0, Miles},
|
||||
{1610, Meters, Feet, 1.0, Miles},
|
||||
{1770, Meters, Feet, 1.1, Miles},
|
||||
{15933, Meters, Feet, 9.9, Miles},
|
||||
{16093, Meters, Feet, 10, Miles},
|
||||
{16093.5, Meters, Feet, 10, Miles},
|
||||
{16898.464, Meters, Feet, 11, Miles},
|
||||
{16898.113, Meters, Kilometers, 17, Kilometers},
|
||||
{302, Meters, Miles, 990, Feet},
|
||||
{994, Meters, Kilometers, 990, Meters},
|
||||
{995, Meters, Kilometers, 1.0, Kilometers},
|
||||
{0.1, Kilometers, Meters, 100, Meters},
|
||||
{0.3, Kilometers, Kilometers, 300, Meters},
|
||||
{12, Kilometers, Feet, 7.5, Miles},
|
||||
{0.1, Kilometers, Feet, 330, Feet},
|
||||
{110, Feet, Meters, 34, Meters},
|
||||
{1100, Feet, Kilometers, 340, Meters},
|
||||
{1100, Feet, Meters, 340, Meters},
|
||||
{1100, Feet, Miles, 0.2, Miles},
|
||||
{0.2, Miles, Meters, 320, Meters},
|
||||
{11, Miles, Meters, 18, Kilometers},
|
||||
{11, Miles, Kilometers, 18, Kilometers},
|
||||
{0.1, Miles, Feet, 530, Feet},
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
|
@ -231,126 +230,125 @@ UNIT_TEST(Distance_GetUnitsString)
|
|||
|
||||
UNIT_TEST(Distance_FormattedDistance)
|
||||
{
|
||||
using Units = Distance::Units;
|
||||
|
||||
struct TestData
|
||||
{
|
||||
Distance distance;
|
||||
double formattedDistance;
|
||||
Units formattedUnits;
|
||||
Distance::Units formattedUnits;
|
||||
std::string formattedDistanceString;
|
||||
std::string formattedString;
|
||||
};
|
||||
|
||||
using enum Distance::Units;
|
||||
// clang-format off
|
||||
TestData const testData[] = {
|
||||
// From Meters to Meters
|
||||
{Distance(0, Units::Meters), 0, Units::Meters, "0", MakeDistanceStr("0", "m")},
|
||||
{Distance(0.3, Units::Meters), 0, Units::Meters, "0", MakeDistanceStr("0", "m")},
|
||||
{Distance(0.9, Units::Meters), 1, Units::Meters, "1", MakeDistanceStr("1", "m")},
|
||||
{Distance(1, Units::Meters), 1, Units::Meters, "1", MakeDistanceStr("1", "m")},
|
||||
{Distance(1.234, Units::Meters), 1, Units::Meters, "1", MakeDistanceStr("1", "m")},
|
||||
{Distance(9.99, Units::Meters), 10, Units::Meters, "10", MakeDistanceStr("10", "m")},
|
||||
{Distance(10.01, Units::Meters), 10, Units::Meters, "10", MakeDistanceStr("10", "m")},
|
||||
{Distance(10.4, Units::Meters), 10, Units::Meters, "10", MakeDistanceStr("10", "m")},
|
||||
{Distance(10.5, Units::Meters), 11, Units::Meters, "11", MakeDistanceStr("11", "m")},
|
||||
{Distance(10.51, Units::Meters), 11, Units::Meters, "11", MakeDistanceStr("11", "m")},
|
||||
{Distance(64.2, Units::Meters), 64, Units::Meters, "64", MakeDistanceStr("64", "m")},
|
||||
{Distance(99, Units::Meters), 99, Units::Meters, "99", MakeDistanceStr("99", "m")},
|
||||
{Distance(100, Units::Meters), 100, Units::Meters, "100", MakeDistanceStr("100", "m")},
|
||||
{Distance(101, Units::Meters), 100, Units::Meters, "100", MakeDistanceStr("100", "m")},
|
||||
{Distance(109, Units::Meters), 110, Units::Meters, "110", MakeDistanceStr("110", "m")},
|
||||
{Distance(991, Units::Meters), 990, Units::Meters, "990", MakeDistanceStr("990", "m")},
|
||||
{Distance(0, Meters), 0, Meters, "0", MakeDistanceStr("0", "m")},
|
||||
{Distance(0.3, Meters), 0, Meters, "0", MakeDistanceStr("0", "m")},
|
||||
{Distance(0.9, Meters), 1, Meters, "1", MakeDistanceStr("1", "m")},
|
||||
{Distance(1, Meters), 1, Meters, "1", MakeDistanceStr("1", "m")},
|
||||
{Distance(1.234, Meters), 1, Meters, "1", MakeDistanceStr("1", "m")},
|
||||
{Distance(9.99, Meters), 10, Meters, "10", MakeDistanceStr("10", "m")},
|
||||
{Distance(10.01, Meters), 10, Meters, "10", MakeDistanceStr("10", "m")},
|
||||
{Distance(10.4, Meters), 10, Meters, "10", MakeDistanceStr("10", "m")},
|
||||
{Distance(10.5, Meters), 11, Meters, "11", MakeDistanceStr("11", "m")},
|
||||
{Distance(10.51, Meters), 11, Meters, "11", MakeDistanceStr("11", "m")},
|
||||
{Distance(64.2, Meters), 64, Meters, "64", MakeDistanceStr("64", "m")},
|
||||
{Distance(99, Meters), 99, Meters, "99", MakeDistanceStr("99", "m")},
|
||||
{Distance(100, Meters), 100, Meters, "100", MakeDistanceStr("100", "m")},
|
||||
{Distance(101, Meters), 100, Meters, "100", MakeDistanceStr("100", "m")},
|
||||
{Distance(109, Meters), 110, Meters, "110", MakeDistanceStr("110", "m")},
|
||||
{Distance(991, Meters), 990, Meters, "990", MakeDistanceStr("990", "m")},
|
||||
|
||||
// From Kilometers to Kilometers
|
||||
{Distance(0, Units::Kilometers), 0, Units::Meters, "0", MakeDistanceStr("0", "m")},
|
||||
{Distance(0.3, Units::Kilometers), 300, Units::Meters, "300", MakeDistanceStr("300", "m")},
|
||||
{Distance(1.234, Units::Kilometers), 1.2, Units::Kilometers, "1.2", MakeDistanceStr("1.2", "km")},
|
||||
{Distance(10, Units::Kilometers), 10, Units::Kilometers, "10", MakeDistanceStr("10", "km")},
|
||||
{Distance(11, Units::Kilometers), 11, Units::Kilometers, "11", MakeDistanceStr("11", "km")},
|
||||
{Distance(54, Units::Kilometers), 54, Units::Kilometers, "54", MakeDistanceStr("54", "km")},
|
||||
{Distance(99.99, Units::Kilometers), 100, Units::Kilometers, "100", MakeDistanceStr("100", "km")},
|
||||
{Distance(100.01, Units::Kilometers), 100, Units::Kilometers, "100", MakeDistanceStr("100", "km")},
|
||||
{Distance(115, Units::Kilometers), 115, Units::Kilometers, "115", MakeDistanceStr("115", "km")},
|
||||
{Distance(999, Units::Kilometers), 999, Units::Kilometers, "999", MakeDistanceStr("999", "km")},
|
||||
{Distance(1000, Units::Kilometers), 1000, Units::Kilometers, "1000", MakeDistanceStr("1000", "km")},
|
||||
{Distance(1049.99, Units::Kilometers), 1050, Units::Kilometers, "1050", MakeDistanceStr("1050", "km")},
|
||||
{Distance(1050, Units::Kilometers), 1050, Units::Kilometers, "1050", MakeDistanceStr("1050", "km")},
|
||||
{Distance(1050.01, Units::Kilometers), 1050, Units::Kilometers, "1050", MakeDistanceStr("1050", "km")},
|
||||
{Distance(1234, Units::Kilometers), 1234, Units::Kilometers, "1234", MakeDistanceStr("1234", "km")},
|
||||
{Distance(12345, Units::Kilometers), 12345, Units::Kilometers, "12,345", MakeDistanceStr("12,345", "km")},
|
||||
{Distance(0, Kilometers), 0, Meters, "0", MakeDistanceStr("0", "m")},
|
||||
{Distance(0.3, Kilometers), 300, Meters, "300", MakeDistanceStr("300", "m")},
|
||||
{Distance(1.234, Kilometers), 1.2, Kilometers, "1.2", MakeDistanceStr("1.2", "km")},
|
||||
{Distance(10, Kilometers), 10, Kilometers, "10", MakeDistanceStr("10", "km")},
|
||||
{Distance(11, Kilometers), 11, Kilometers, "11", MakeDistanceStr("11", "km")},
|
||||
{Distance(54, Kilometers), 54, Kilometers, "54", MakeDistanceStr("54", "km")},
|
||||
{Distance(99.99, Kilometers), 100, Kilometers, "100", MakeDistanceStr("100", "km")},
|
||||
{Distance(100.01, Kilometers), 100, Kilometers, "100", MakeDistanceStr("100", "km")},
|
||||
{Distance(115, Kilometers), 115, Kilometers, "115", MakeDistanceStr("115", "km")},
|
||||
{Distance(999, Kilometers), 999, Kilometers, "999", MakeDistanceStr("999", "km")},
|
||||
{Distance(1000, Kilometers), 1000, Kilometers, "1000", MakeDistanceStr("1000", "km")},
|
||||
{Distance(1049.99, Kilometers), 1050, Kilometers, "1050", MakeDistanceStr("1050", "km")},
|
||||
{Distance(1050, Kilometers), 1050, Kilometers, "1050", MakeDistanceStr("1050", "km")},
|
||||
{Distance(1050.01, Kilometers), 1050, Kilometers, "1050", MakeDistanceStr("1050", "km")},
|
||||
{Distance(1234, Kilometers), 1234, Kilometers, "1234", MakeDistanceStr("1234", "km")},
|
||||
{Distance(12345, Kilometers), 12345, Kilometers, "12,345", MakeDistanceStr("12,345", "km")},
|
||||
|
||||
// From Feet to Feet
|
||||
{Distance(0, Units::Feet), 0, Units::Feet, "0", MakeDistanceStr("0", "ft")},
|
||||
{Distance(1, Units::Feet), 1, Units::Feet, "1", MakeDistanceStr("1", "ft")},
|
||||
{Distance(9.99, Units::Feet), 10, Units::Feet, "10", MakeDistanceStr("10", "ft")},
|
||||
{Distance(10.01, Units::Feet), 10, Units::Feet, "10", MakeDistanceStr("10", "ft")},
|
||||
{Distance(95, Units::Feet), 95, Units::Feet, "95", MakeDistanceStr("95", "ft")},
|
||||
{Distance(125, Units::Feet), 130, Units::Feet, "130", MakeDistanceStr("130", "ft")},
|
||||
{Distance(991, Units::Feet), 990, Units::Feet, "990", MakeDistanceStr("990", "ft")},
|
||||
{Distance(0, Feet), 0, Feet, "0", MakeDistanceStr("0", "ft")},
|
||||
{Distance(1, Feet), 1, Feet, "1", MakeDistanceStr("1", "ft")},
|
||||
{Distance(9.99, Feet), 10, Feet, "10", MakeDistanceStr("10", "ft")},
|
||||
{Distance(10.01, Feet), 10, Feet, "10", MakeDistanceStr("10", "ft")},
|
||||
{Distance(95, Feet), 95, Feet, "95", MakeDistanceStr("95", "ft")},
|
||||
{Distance(125, Feet), 130, Feet, "130", MakeDistanceStr("130", "ft")},
|
||||
{Distance(991, Feet), 990, Feet, "990", MakeDistanceStr("990", "ft")},
|
||||
|
||||
// From Miles to Miles
|
||||
{Distance(0, Units::Miles), 0, Units::Feet, "0", MakeDistanceStr("0", "ft")},
|
||||
{Distance(0.1, Units::Miles), 530, Units::Feet, "530", MakeDistanceStr("530", "ft")},
|
||||
{Distance(1, Units::Miles), 1.0, Units::Miles, "1.0", MakeDistanceStr("1.0", "mi")},
|
||||
{Distance(1.234, Units::Miles), 1.2, Units::Miles, "1.2", MakeDistanceStr("1.2", "mi")},
|
||||
{Distance(9.99, Units::Miles), 10, Units::Miles, "10", MakeDistanceStr("10", "mi")},
|
||||
{Distance(10.01, Units::Miles), 10, Units::Miles, "10", MakeDistanceStr("10", "mi")},
|
||||
{Distance(11, Units::Miles), 11, Units::Miles, "11", MakeDistanceStr("11", "mi")},
|
||||
{Distance(54, Units::Miles), 54, Units::Miles, "54", MakeDistanceStr("54", "mi")},
|
||||
{Distance(145, Units::Miles), 145, Units::Miles, "145", MakeDistanceStr("145", "mi")},
|
||||
{Distance(999, Units::Miles), 999, Units::Miles, "999", MakeDistanceStr("999", "mi")},
|
||||
{Distance(1149.99, Units::Miles), 1150, Units::Miles, "1150", MakeDistanceStr("1150", "mi")},
|
||||
{Distance(1150, Units::Miles), 1150, Units::Miles, "1150", MakeDistanceStr("1150", "mi")},
|
||||
{Distance(1150.01, Units::Miles), 1150, Units::Miles, "1150", MakeDistanceStr("1150", "mi")},
|
||||
{Distance(12345.0, Units::Miles), 12345, Units::Miles, "12,345", MakeDistanceStr("12,345", "mi")},
|
||||
{Distance(0, Miles), 0, Feet, "0", MakeDistanceStr("0", "ft")},
|
||||
{Distance(0.1, Miles), 530, Feet, "530", MakeDistanceStr("530", "ft")},
|
||||
{Distance(1, Miles), 1.0, Miles, "1.0", MakeDistanceStr("1.0", "mi")},
|
||||
{Distance(1.234, Miles), 1.2, Miles, "1.2", MakeDistanceStr("1.2", "mi")},
|
||||
{Distance(9.99, Miles), 10, Miles, "10", MakeDistanceStr("10", "mi")},
|
||||
{Distance(10.01, Miles), 10, Miles, "10", MakeDistanceStr("10", "mi")},
|
||||
{Distance(11, Miles), 11, Miles, "11", MakeDistanceStr("11", "mi")},
|
||||
{Distance(54, Miles), 54, Miles, "54", MakeDistanceStr("54", "mi")},
|
||||
{Distance(145, Miles), 145, Miles, "145", MakeDistanceStr("145", "mi")},
|
||||
{Distance(999, Miles), 999, Miles, "999", MakeDistanceStr("999", "mi")},
|
||||
{Distance(1149.99, Miles), 1150, Miles, "1150", MakeDistanceStr("1150", "mi")},
|
||||
{Distance(1150, Miles), 1150, Miles, "1150", MakeDistanceStr("1150", "mi")},
|
||||
{Distance(1150.01, Miles), 1150, Miles, "1150", MakeDistanceStr("1150", "mi")},
|
||||
{Distance(12345.0, Miles), 12345, Miles, "12,345", MakeDistanceStr("12,345", "mi")},
|
||||
|
||||
// From Meters to Kilometers
|
||||
{Distance(999, Units::Meters), 1.0, Units::Kilometers, "1.0", MakeDistanceStr("1.0", "km")},
|
||||
{Distance(1000, Units::Meters), 1.0, Units::Kilometers, "1.0", MakeDistanceStr("1.0", "km")},
|
||||
{Distance(1001, Units::Meters), 1.0, Units::Kilometers, "1.0", MakeDistanceStr("1.0", "km")},
|
||||
{Distance(1100, Units::Meters), 1.1, Units::Kilometers, "1.1", MakeDistanceStr("1.1", "km")},
|
||||
{Distance(1140, Units::Meters), 1.1, Units::Kilometers, "1.1", MakeDistanceStr("1.1", "km")},
|
||||
{Distance(1151, Units::Meters), 1.2, Units::Kilometers, "1.2", MakeDistanceStr("1.2", "km")},
|
||||
{Distance(1500, Units::Meters), 1.5, Units::Kilometers, "1.5", MakeDistanceStr("1.5", "km")},
|
||||
{Distance(1549.9, Units::Meters), 1.5, Units::Kilometers, "1.5", MakeDistanceStr("1.5", "km")},
|
||||
{Distance(1550, Units::Meters), 1.6, Units::Kilometers, "1.6", MakeDistanceStr("1.6", "km")},
|
||||
{Distance(1551, Units::Meters), 1.6, Units::Kilometers, "1.6", MakeDistanceStr("1.6", "km")},
|
||||
{Distance(9949, Units::Meters), 9.9, Units::Kilometers, "9.9", MakeDistanceStr("9.9", "km")},
|
||||
{Distance(9992, Units::Meters), 10, Units::Kilometers, "10", MakeDistanceStr("10", "km")},
|
||||
{Distance(10000, Units::Meters), 10, Units::Kilometers, "10", MakeDistanceStr("10", "km")},
|
||||
{Distance(10499.9, Units::Meters), 10, Units::Kilometers, "10", MakeDistanceStr("10", "km")},
|
||||
{Distance(10501, Units::Meters), 11, Units::Kilometers, "11", MakeDistanceStr("11", "km")},
|
||||
{Distance(101'001, Units::Meters), 101, Units::Kilometers, "101", MakeDistanceStr("101", "km")},
|
||||
{Distance(101'999, Units::Meters), 102, Units::Kilometers, "102", MakeDistanceStr("102", "km")},
|
||||
{Distance(287'386, Units::Meters), 287, Units::Kilometers, "287", MakeDistanceStr("287", "km")},
|
||||
{Distance(999, Meters), 1.0, Kilometers, "1.0", MakeDistanceStr("1.0", "km")},
|
||||
{Distance(1000, Meters), 1.0, Kilometers, "1.0", MakeDistanceStr("1.0", "km")},
|
||||
{Distance(1001, Meters), 1.0, Kilometers, "1.0", MakeDistanceStr("1.0", "km")},
|
||||
{Distance(1100, Meters), 1.1, Kilometers, "1.1", MakeDistanceStr("1.1", "km")},
|
||||
{Distance(1140, Meters), 1.1, Kilometers, "1.1", MakeDistanceStr("1.1", "km")},
|
||||
{Distance(1151, Meters), 1.2, Kilometers, "1.2", MakeDistanceStr("1.2", "km")},
|
||||
{Distance(1500, Meters), 1.5, Kilometers, "1.5", MakeDistanceStr("1.5", "km")},
|
||||
{Distance(1549.9, Meters), 1.5, Kilometers, "1.5", MakeDistanceStr("1.5", "km")},
|
||||
{Distance(1550, Meters), 1.6, Kilometers, "1.6", MakeDistanceStr("1.6", "km")},
|
||||
{Distance(1551, Meters), 1.6, Kilometers, "1.6", MakeDistanceStr("1.6", "km")},
|
||||
{Distance(9949, Meters), 9.9, Kilometers, "9.9", MakeDistanceStr("9.9", "km")},
|
||||
{Distance(9992, Meters), 10, Kilometers, "10", MakeDistanceStr("10", "km")},
|
||||
{Distance(10000, Meters), 10, Kilometers, "10", MakeDistanceStr("10", "km")},
|
||||
{Distance(10499.9, Meters), 10, Kilometers, "10", MakeDistanceStr("10", "km")},
|
||||
{Distance(10501, Meters), 11, Kilometers, "11", MakeDistanceStr("11", "km")},
|
||||
{Distance(101'001, Meters), 101, Kilometers, "101", MakeDistanceStr("101", "km")},
|
||||
{Distance(101'999, Meters), 102, Kilometers, "102", MakeDistanceStr("102", "km")},
|
||||
{Distance(287'386, Meters), 287, Kilometers, "287", MakeDistanceStr("287", "km")},
|
||||
|
||||
// From Feet to Miles
|
||||
{Distance(999, Units::Feet), 0.2, Units::Miles, "0.2", MakeDistanceStr("0.2", "mi")},
|
||||
{Distance(1000, Units::Feet), 0.2, Units::Miles, "0.2", MakeDistanceStr("0.2", "mi")},
|
||||
{Distance(1150, Units::Feet), 0.2, Units::Miles, "0.2", MakeDistanceStr("0.2", "mi")},
|
||||
{Distance(5280, Units::Feet), 1.0, Units::Miles, "1.0", MakeDistanceStr("1.0", "mi")},
|
||||
{Distance(7920, Units::Feet), 1.5, Units::Miles, "1.5", MakeDistanceStr("1.5", "mi")},
|
||||
{Distance(10560, Units::Feet), 2.0, Units::Miles, "2.0", MakeDistanceStr("2.0", "mi")},
|
||||
{Distance(100'000, Units::Feet), 19, Units::Miles, "19", MakeDistanceStr("19", "mi")},
|
||||
{Distance(285'120, Units::Feet), 54, Units::Miles, "54", MakeDistanceStr("54", "mi")},
|
||||
{Distance(633'547, Units::Feet), 120, Units::Miles, "120", MakeDistanceStr("120", "mi")},
|
||||
{Distance(633'600, Units::Feet), 120, Units::Miles, "120", MakeDistanceStr("120", "mi")},
|
||||
{Distance(633'653, Units::Feet), 120, Units::Miles, "120", MakeDistanceStr("120", "mi")},
|
||||
{Distance(999'999, Units::Feet), 189, Units::Miles, "189", MakeDistanceStr("189", "mi")},
|
||||
{Distance(999, Feet), 0.2, Miles, "0.2", MakeDistanceStr("0.2", "mi")},
|
||||
{Distance(1000, Feet), 0.2, Miles, "0.2", MakeDistanceStr("0.2", "mi")},
|
||||
{Distance(1150, Feet), 0.2, Miles, "0.2", MakeDistanceStr("0.2", "mi")},
|
||||
{Distance(5280, Feet), 1.0, Miles, "1.0", MakeDistanceStr("1.0", "mi")},
|
||||
{Distance(7920, Feet), 1.5, Miles, "1.5", MakeDistanceStr("1.5", "mi")},
|
||||
{Distance(10560, Feet), 2.0, Miles, "2.0", MakeDistanceStr("2.0", "mi")},
|
||||
{Distance(100'000, Feet), 19, Miles, "19", MakeDistanceStr("19", "mi")},
|
||||
{Distance(285'120, Feet), 54, Miles, "54", MakeDistanceStr("54", "mi")},
|
||||
{Distance(633'547, Feet), 120, Miles, "120", MakeDistanceStr("120", "mi")},
|
||||
{Distance(633'600, Feet), 120, Miles, "120", MakeDistanceStr("120", "mi")},
|
||||
{Distance(633'653, Feet), 120, Miles, "120", MakeDistanceStr("120", "mi")},
|
||||
{Distance(999'999, Feet), 189, Miles, "189", MakeDistanceStr("189", "mi")},
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
for (TestData const & data : testData)
|
||||
for (auto const & [distance, formattedDistance, formattedUnits, formattedDistanceString, formattedString] : testData)
|
||||
{
|
||||
Distance const formatted = data.distance.GetFormattedDistance();
|
||||
Distance const formatted = distance.GetFormattedDistance();
|
||||
// Run two times to verify that nothing breaks after second format
|
||||
for (auto const & d : {formatted, formatted.GetFormattedDistance()})
|
||||
{
|
||||
TEST_ALMOST_EQUAL_ULPS(d.GetDistance(), data.formattedDistance, (data.distance));
|
||||
TEST_EQUAL(d.GetUnits(), data.formattedUnits, (data.distance));
|
||||
TEST_EQUAL(d.GetDistanceString(), data.formattedDistanceString, (data.distance));
|
||||
TEST_EQUAL(d.ToString(), data.formattedString, (data.distance));
|
||||
TEST_ALMOST_EQUAL_ULPS(d.GetDistance(), formattedDistance, (distance));
|
||||
TEST_EQUAL(d.GetUnits(), formattedUnits, (distance));
|
||||
TEST_EQUAL(d.GetDistanceString(), formattedDistanceString, (distance));
|
||||
TEST_EQUAL(d.ToString(), formattedString, (distance));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue