| 159 | |
| 160 | template <class TRange> |
| 161 | static void TestIteratorDifferenceImpl(TRange range, int a, int b, TMaybe<int> step) { |
| 162 | auto fmtCase = [&]() -> TString { return TStringBuilder() << "xrange(" << a << ", " << b << (step ? ", " + ToString(*step) : TString{}) << ")"; }; |
| 163 | auto begin = std::begin(range); |
| 164 | auto end = std::end(range); |
| 165 | auto distance = end - begin; |
| 166 | UNIT_ASSERT_VALUES_EQUAL_C(range.size(), distance, fmtCase()); |
| 167 | UNIT_ASSERT_EQUAL_C(end, begin + distance, fmtCase()); |
| 168 | } |
| 169 | |
| 170 | Y_UNIT_TEST(IteratorDifference) { |
| 171 | for (int a = -20; a <= 20; ++a) { |
no test coverage detected