| 65 | } |
| 66 | |
| 67 | UNIT_TEST(MaxspeedConverter_Smoke) |
| 68 | { |
| 69 | auto const & conv = GetMaxspeedConverter(); |
| 70 | |
| 71 | // All maxspeed limits conversion test. |
| 72 | for (size_t i = 0; i < numeric_limits<uint8_t>::max(); ++i) |
| 73 | { |
| 74 | auto const macro = static_cast<SpeedMacro>(i); |
| 75 | auto const speed = conv.MacroToSpeed(macro); |
| 76 | auto const backToMacro = conv.SpeedToMacro(speed); |
| 77 | if (speed.IsValid()) |
| 78 | TEST_EQUAL(backToMacro, macro, (i)); |
| 79 | else |
| 80 | TEST_EQUAL(backToMacro, SpeedMacro::Undefined, (i)); |
| 81 | } |
| 82 | |
| 83 | // Test on conversion some maxspeed value to macro. |
| 84 | TEST_EQUAL(conv.SpeedToMacro(SpeedInUnits(kInvalidSpeed, Units::Metric)), SpeedMacro::Undefined, ()); |
| 85 | TEST_EQUAL(conv.SpeedToMacro(SpeedInUnits(kNoneMaxSpeed, Units::Metric)), SpeedMacro::None, ()); |
| 86 | TEST_EQUAL(conv.SpeedToMacro(SpeedInUnits(kWalkMaxSpeed, Units::Metric)), SpeedMacro::Walk, ()); |
| 87 | TEST_EQUAL(conv.SpeedToMacro(SpeedInUnits(60, Units::Metric)), SpeedMacro::Speed60KmPH, ()); |
| 88 | TEST_EQUAL(conv.SpeedToMacro(SpeedInUnits(90, Units::Metric)), SpeedMacro::Speed90KmPH, ()); |
| 89 | TEST_EQUAL(conv.SpeedToMacro(SpeedInUnits(30, Units::Imperial)), SpeedMacro::Speed30MPH, ()); |
| 90 | TEST_EQUAL(conv.SpeedToMacro(SpeedInUnits(33, Units::Metric)), SpeedMacro::Undefined, ()); |
| 91 | |
| 92 | // Test on conversion some maxspeed to macro to value. |
| 93 | TEST_EQUAL(conv.MacroToSpeed(SpeedMacro::Undefined), SpeedInUnits(kInvalidSpeed, Units::Metric), ()); |
| 94 | TEST_EQUAL(conv.MacroToSpeed(SpeedMacro::None), SpeedInUnits(kNoneMaxSpeed, Units::Metric), ()); |
| 95 | TEST_EQUAL(conv.MacroToSpeed(SpeedMacro::Walk), SpeedInUnits(kWalkMaxSpeed, Units::Metric), ()); |
| 96 | TEST_EQUAL(conv.MacroToSpeed(SpeedMacro::Speed60KmPH), SpeedInUnits(60, Units::Metric), ()); |
| 97 | TEST_EQUAL(conv.MacroToSpeed(SpeedMacro::Speed90KmPH), SpeedInUnits(90, Units::Metric), ()); |
| 98 | TEST_EQUAL(conv.MacroToSpeed(SpeedMacro::Speed30MPH), SpeedInUnits(30, Units::Imperial), ()); |
| 99 | } |
| 100 | |
| 101 | UNIT_TEST(MaxspeedConverter_ClosestValidMacro) |
| 102 | { |
nothing calls this directly
no test coverage detected