302 lines
9.8 KiB
C++
302 lines
9.8 KiB
C++
|
#include "qstest.h"
|
||
|
|
||
|
bool qstest::testSortAll(QSInterface* test) {
|
||
|
sorter s;
|
||
|
int temp[20] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9, 53, 24, 64, 75, 132, 74, 24, 64, 745, 21};
|
||
|
int temp1[20] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9, 53, 24, 64, 75, 132, 74, 24, 64, 745, 21};
|
||
|
test->sortAll(temp, 20);
|
||
|
s.sortAll(temp1, 20);
|
||
|
for(unsigned int i = 0; i < 20; i++) {
|
||
|
if(temp[i] != temp1[i])
|
||
|
return false;
|
||
|
}
|
||
|
return true;;
|
||
|
}
|
||
|
|
||
|
bool qstest::testSort(QSInterface* test) {
|
||
|
sorter s;
|
||
|
int temp[20] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9, 53, 24, 64, 75, 132, 74, 24, 64, 745, 21};
|
||
|
int temp1[20] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9, 53, 24, 64, 75, 132, 74, 24, 64, 745, 21};
|
||
|
test->sort(temp, 20, 3, 15);
|
||
|
s.sort(temp1, 20, 3, 15);
|
||
|
for(unsigned int i = 0; i < 20; i++) {
|
||
|
if(temp[i] != temp1[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp2[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int temp3[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->sort(temp2, 10, 0, 9);
|
||
|
s.sort(temp3, 10, 0, 9);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp2[i] != temp3[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp4[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int temp5[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->sort(temp4, 10, -1, 4);
|
||
|
s.sort(temp5, 10, -1, 4);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp4[i] != temp5[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp6[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int temp7[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->sort(temp6, 10, 3, 7);
|
||
|
s.sort(temp7, 10, 3, 7);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp6[i] != temp7[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp8[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int temp9[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->sort(temp8, 10, 3, 10);
|
||
|
s.sort(temp9, 10, 3, 10);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp8[i] != temp9[i])
|
||
|
return false;
|
||
|
}
|
||
|
int tempa[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int tempb[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->sort(tempa, 10, 4, 4);
|
||
|
s.sort(tempb, 10, 4, 4);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(tempa[i] != tempb[i])
|
||
|
return false;
|
||
|
}
|
||
|
int tempc[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int tempd[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->sort(tempc, 10, 4, 2);
|
||
|
s.sort(tempd, 10, 4, 2);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(tempc[i] != tempd[i])
|
||
|
return false;
|
||
|
}
|
||
|
int tempe[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int tempf[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->sort(tempe, 10, 4, -1);
|
||
|
s.sort(tempf, 10, 4, -1);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(tempe[i] != tempf[i])
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
bool qstest::testMedianOfThree(QSInterface* test) {
|
||
|
sorter s;
|
||
|
int what[9] = {5, 5, 5, 5, 1, 5, 5, 5, 5};
|
||
|
int what1[9] = {5, 5, 5, 5, 1, 5, 5, 5, 5};
|
||
|
test->medianOfThree(what, 9, 0, 8);
|
||
|
s.medianOfThree(what1, 9, 0, 8);
|
||
|
for(unsigned int i = 0; i < 9; i++) {
|
||
|
if(what[i] != what1[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int temp1[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->medianOfThree(temp, 10, 0, 9);
|
||
|
s.medianOfThree(temp1, 10, 0, 9);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp[i] != temp1[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp2[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int temp3[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->medianOfThree(temp2, 10, 2, 9);
|
||
|
s.medianOfThree(temp3, 10, 2, 9);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp2[i] != temp3[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp4[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int temp5[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->medianOfThree(temp4, 10, -2, 9);
|
||
|
s.medianOfThree(temp5, 10, -2, 9);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp4[i] != temp5[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp6[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int temp7[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->medianOfThree(temp6, 10, 2, -9);
|
||
|
s.medianOfThree(temp7, 10, 2, -9);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp6[i] != temp7[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp8[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int temp9[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->medianOfThree(temp8, 10, 7, 5);
|
||
|
s.medianOfThree(temp9, 10, 7, 5);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp8[i] != temp9[i])
|
||
|
return false;
|
||
|
}
|
||
|
int tempa[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int tempb[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->medianOfThree(tempa, 10, 7, 10);
|
||
|
s.medianOfThree(tempb, 10, 7, 10);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(tempa[i] != tempb[i])
|
||
|
return false;
|
||
|
}
|
||
|
int tempc[1] = {4};
|
||
|
int tempd[1] = {4};
|
||
|
test->medianOfThree(tempc, 10, 0, 0);
|
||
|
s.medianOfThree(tempd, 10, 0, 0);
|
||
|
for(unsigned int i = 0; i < 1; i++) {
|
||
|
if(tempc[i] != tempd[i])
|
||
|
return false;
|
||
|
}
|
||
|
int tempe[2] = {4, 8};
|
||
|
int tempf[2] = {4, 8};
|
||
|
test->medianOfThree(tempe, 10, 0, 1);
|
||
|
s.medianOfThree(tempf, 10, 0, 1);
|
||
|
for(unsigned int i = 1; i < 2; i++) {
|
||
|
if(tempe[i] != tempf[i])
|
||
|
return false;
|
||
|
}
|
||
|
int tempg[3] = {4, 8, 3};
|
||
|
int temph[3] = {4, 8, 3};
|
||
|
test->medianOfThree(tempg, 10, 0, 2);
|
||
|
s.medianOfThree(temph, 10, 0, 2);
|
||
|
for(unsigned int i = 3; i < 1; i++) {
|
||
|
if(tempg[i] != temph[i])
|
||
|
return false;
|
||
|
}
|
||
|
int tempi[4] = {4, 8, 3, 6};
|
||
|
int tempj[4] = {4, 8, 3, 6};
|
||
|
test->medianOfThree(tempi, 10, 0, 3);
|
||
|
s.medianOfThree(tempj, 10, 0, 3);
|
||
|
for(unsigned int i = 0; i < 4; i++) {
|
||
|
if(tempi[i] != tempj[i])
|
||
|
return false;
|
||
|
}
|
||
|
int tempk[4] = {4, 8, 3, 6};
|
||
|
int templ[4] = {4, 8, 3, 6};
|
||
|
test->medianOfThree(tempk, 10, 0, 5);
|
||
|
s.medianOfThree(templ, 10, 0, 5);
|
||
|
for(unsigned int i = 0; i < 4; i++) {
|
||
|
if(tempk[i] != templ[i])
|
||
|
return false;
|
||
|
}
|
||
|
return true;;
|
||
|
}
|
||
|
|
||
|
bool qstest::testPartition(QSInterface* test) {
|
||
|
sorter s;
|
||
|
// int size[1] = {7};
|
||
|
// int size1[1] = {7};
|
||
|
// if(test->partition(size, 1, 0, 0) != s.partition(size1, 1, 0, 0)) {
|
||
|
// return false;
|
||
|
// }
|
||
|
// for(unsigned int i = 0; i < 1; i++) {
|
||
|
// if(size[i] != size1[i])
|
||
|
// return false;
|
||
|
// }
|
||
|
int size2[2] = {7, 1};
|
||
|
int size3[2] = {7, 1};
|
||
|
if(test->partition(size2, 2, 0, 1) != s.partition(size3, 2, 0, 1)) {
|
||
|
return false;
|
||
|
}
|
||
|
for(unsigned int i = 0; i < 2; i++) {
|
||
|
if(size2[i] != size3[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp[14] = {6, 1, 6, 2, 0, 0, 5, 8, 2, 8, 1, 9, 6, 4};
|
||
|
int temp1[14] = {6, 1, 6, 2, 0, 0, 5, 8, 2, 8, 1, 9, 6, 4};
|
||
|
if(test->partition(temp, 14, 0, 14) != s.partition(temp1, 14, 0, 14)) {
|
||
|
return false;
|
||
|
}
|
||
|
for(unsigned int i = 0; i < 14; i++) {
|
||
|
if(temp[i] != temp1[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp2[20] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9, 53, 24, 64, 75, 132, 74, 24, 64, 745, 21};
|
||
|
int temp3[20] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9, 53, 24, 64, 75, 132, 74, 24, 64, 745, 21};
|
||
|
if(test->partition(temp2, 20, 0, 19) != s.partition(temp3, 20, 0, 19)) {
|
||
|
return false;
|
||
|
}
|
||
|
for(unsigned int i = 0; i < 20; i++) {
|
||
|
if(temp2[i] != temp3[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp4[14] = {6, 1, 6, 2, 0, 0, 5, 8, 2, 8, 1, 9, 6, 4};
|
||
|
int temp5[14] = {6, 1, 6, 2, 0, 0, 5, 8, 2, 8, 1, 9, 6, 4};
|
||
|
if(test->partition(temp4, 14, -1, 13) != s.partition(temp5, 14, -1, 13)) {
|
||
|
return false;
|
||
|
}
|
||
|
for(unsigned int i = 0; i < 14; i++) {
|
||
|
if(temp4[i] != temp5[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp6[14] = {6, 1, 6, 2, 0, 0, 5, 8, 2, 8, 1, 9, 6, 4};
|
||
|
int temp7[14] = {6, 1, 6, 2, 0, 0, 5, 8, 2, 8, 1, 9, 6, 4};
|
||
|
if(test->partition(temp6, 14, 6, 2) != s.partition(temp7, 14, 6, 2)) {
|
||
|
return false;
|
||
|
}
|
||
|
for(unsigned int i = 0; i < 14; i++) {
|
||
|
if(temp6[i] != temp7[i])
|
||
|
return false;
|
||
|
}
|
||
|
int temp8[14] = {6, 1, 6, 2, 0, 0, 5, 8, 2, 8, 1, 9, 6, 4};
|
||
|
int temp9[14] = {6, 1, 6, 2, 0, 0, 5, 8, 2, 8, 1, 9, 6, 4};
|
||
|
if(test->partition(temp8, 14, 6, -2) != s.partition(temp9, 14, 6, -2)) {
|
||
|
return false;
|
||
|
}
|
||
|
for(unsigned int i = 0; i < 14; i++) {
|
||
|
if(temp8[i] != temp9[i])
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
bool qstest::testSwap(QSInterface* test) {
|
||
|
sorter s;
|
||
|
int temp[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
int temp1[10] = {4, 7, 3, 8, 12, -2, 41, 63, 2, 9};
|
||
|
test->swap(temp, 10, 0, 9);
|
||
|
s.swap(temp1, 10, 0, 9);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp[i] != temp1[i])
|
||
|
return false;
|
||
|
}
|
||
|
test->swap(temp, 10, -1, 9);
|
||
|
s.swap(temp1, 10, -1, 9);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp[i] != temp1[i])
|
||
|
return false;
|
||
|
}
|
||
|
test->swap(temp, 10, 3, 6);
|
||
|
s.swap(temp1, 10, 3, 6);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp[i] != temp1[i])
|
||
|
return false;
|
||
|
}
|
||
|
test->swap(temp, 10, 8, 10);
|
||
|
s.swap(temp1, 10, 8, 10);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp[i] != temp1[i])
|
||
|
return false;
|
||
|
}
|
||
|
test->swap(temp, 10, 8, 8);
|
||
|
s.swap(temp1, 10, 8, 8);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp[i] != temp1[i])
|
||
|
return false;
|
||
|
}
|
||
|
test->swap(temp, 10, 8, 2);
|
||
|
s.swap(temp1, 10, 8, 2);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp[i] != temp1[i])
|
||
|
return false;
|
||
|
}
|
||
|
test->swap(temp, 10, 8, -2);
|
||
|
s.swap(temp1, 10, 8, -2);
|
||
|
for(unsigned int i = 0; i < 10; i++) {
|
||
|
if(temp[i] != temp1[i])
|
||
|
return false;
|
||
|
}
|
||
|
return true;;
|
||
|
}
|