#include using namespace std; template void print(const T& v, const string& label) { cout << setw(20) << label + ": "; for (auto& i: v) { cout << i << " "; } cout << endl; } int main() { tuple, vector, vector > > > testCases = { // numElements, // numTests rotationSteps array expectedOutput // -------- ----------- ----- -------------- 1, { { {5,2}, {1,2,3,4,5}, {4,5,1,2,3} } }, }; cout << setw(20) << "numTests: " << get<0>(testCases) << endl; cout << "==================\n"; for (auto& tc: get<1>(testCases)) { int numElements = get<0>(tc)[0]; int rotationSteps = get<0>(tc)[1]; cout << setw(20) << "numElements: " << numElements<< endl; cout << setw(20) << "rotationSteps: " << rotationSteps << endl; print(get<1>(tc), "input"); print(get<2>(tc), "expected"); deque dq; for (auto& i: get<1>(tc)) dq.push_back(i); // print(dq, "in"); for (int i = 0; i < rotationSteps; i++) { dq.push_front(dq.back()); dq.pop_back(); } print(dq, "actual"); cout << setw(20) << "------------\n"; } }