| 24 | |
| 25 | template <class T1, class T2> |
| 26 | inline void Cmp(const T1& t1, const T2& t2) { |
| 27 | try { |
| 28 | UNIT_ASSERT_EQUAL(t1.size(), t2.size()); |
| 29 | } catch (...) { |
| 30 | Print(t1); |
| 31 | Cerr << "---------------" << Endl; |
| 32 | Print(t2); |
| 33 | |
| 34 | throw; |
| 35 | } |
| 36 | |
| 37 | auto i = t1.begin(); |
| 38 | auto j = t2.begin(); |
| 39 | |
| 40 | for (; i != t1.end() && j != t2.end(); ++i, ++j) { |
| 41 | try { |
| 42 | UNIT_ASSERT_EQUAL(*i, *j); |
| 43 | } catch (...) { |
| 44 | Cerr << "(" << *i << ")->(" << *j << ")" << Endl; |
| 45 | |
| 46 | throw; |
| 47 | } |
| 48 | } |
| 49 | } |
| 50 | |
| 51 | template <class T> |
| 52 | inline void Print(const T& t) { |