diff -r 000000000000 -r e4d67989cc36 stdcpp/tsrc/Stdcpp_test/stlport/auto/stlport_prevprm/src/prevprm1.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stdcpp/tsrc/Stdcpp_test/stlport/auto/stlport_prevprm/src/prevprm1.cpp Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,122 @@ + +// STLport regression testsuite component. +// To compile as a separate example, please #define MAIN. +#include + +#include +#include +#include +#include +// #include +#include + +#ifdef MAIN +#define prevprm1_test main +#endif + +#if !defined (STLPORT) || defined(__STL_USE_NAMESPACES) +using namespace std; +#endif +int prevprm1_test(int, char**) +{ + int failures=0; + cout<<"Results of prevprm1_test:"< v1(3); + iota(v1.begin(), v1.end(), 0); + + ostream_iterator iter(cout, " "); + copy(v1.begin(), v1.end(), iter); + cout << endl; + + if(0!=v1[0]) + failures++; + else if(1 !=v1[1]) + failures++; + else if(2!=v1[2]) + failures++; + + + for(int i = 0; i < 9; i++) + { + prev_permutation(v1.begin(), v1.end()); + copy(v1.begin(), v1.end(), iter); + switch(i) + { + case 0: if(2 !=v1[0]) + failures++; + else if(1 !=v1[1]) + failures++; + else if(0 !=v1[2]) + failures++; + break; + case 1: if(2 !=v1[0]) + failures++; + else if(0 !=v1[1]) + failures++; + else if(1 !=v1[2]) + failures++; + break; + case 2: if(1 !=v1[0]) + failures++; + else if(2 !=v1[1]) + failures++; + else if(0 !=v1[2]) + failures++; + break; + case 3: if(1 !=v1[0]) + failures++; + else if(0 !=v1[1]) + failures++; + else if(2 !=v1[2]) + failures++; + break; + case 4: if(0 !=v1[0]) + failures++; + else if(2 !=v1[1]) + failures++; + else if(1 !=v1[2]) + failures++; + break; + + case 5: if(0 !=v1[0]) + failures++; + else if(1 !=v1[1]) + failures++; + else if(2 !=v1[2]) + failures++; + break; + + case 6: if(2 !=v1[0]) + failures++; + else if(1 !=v1[1]) + failures++; + else if(0 !=v1[2]) + failures++; + break; + + case 7: if(2 !=v1[0]) + failures++; + else if(0 !=v1[1]) + failures++; + else if(1 !=v1[2]) + failures++; + break; + + case 8: if(1 !=v1[0]) + failures++; + else if(2 !=v1[1]) + failures++; + else if(0 !=v1[2]) + failures++; + break; + + } + cout << endl; + } + + if(failures) + return 1; + else + return 0; +} +