| 23 | |
| 24 | template <typename... A> |
| 25 | static void TestIter(A&&... args) { |
| 26 | TString s0, s1; |
| 27 | |
| 28 | auto f = [&]() { |
| 29 | auto b = s1.begin(); |
| 30 | auto e = s1.end(); |
| 31 | |
| 32 | Shuffle(b, e, args...); |
| 33 | }; |
| 34 | |
| 35 | s1 = "0"; |
| 36 | f(); |
| 37 | |
| 38 | s1 = "01"; |
| 39 | f(); |
| 40 | |
| 41 | s1 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
| 42 | s0 = s1.copy(); |
| 43 | f(); |
| 44 | |
| 45 | UNIT_ASSERT(s0 != s1); // if shuffle does work, chances it will fail are 1 to 64!. |
| 46 | } |
| 47 | |
| 48 | template <typename... A> |
| 49 | static void TestIterPartial(A&&... args) { |