blob: c6732efc050860d80537d38a2e76a4286ee537ed [file] [log] [blame]
import QtQuick 2.0
import Qt.test 1.0
Item {
MyStringClass {
id: msc
}
function compare(a0, a1) {
var compareOk = a0.length === a1.length;
if (compareOk === true) {
for (var i=0 ; i < a0.length ; ++i) {
if (a0[i] != a1[i]) {
compareOk = false;
break;
}
}
}
return compareOk;
}
function compareStrings(a, b) {
return (a == b) ? 0 : ((a < b) ? 1 : -1);
}
function compareNumbers(a, b) {
return a - b;
}
function createExpected(list, sortFn) {
var expected = []
for (var i=0 ; i < list.length ; ++i)
expected.push(list[i]);
if (sortFn === null)
expected.sort();
else
expected.sort(sortFn);
return expected;
}
function checkResults(expected, actual, sortFn) {
if (sortFn === null)
actual.sort();
else
actual.sort(sortFn);
return compare(expected, actual);
}
function doStringTest(stringList, fn) {
var expected = createExpected(stringList, fn);
var actual = msc.strings(stringList);
var actual2 = msc.stringsVector(stringList);
var actual3 = msc.stringsStdVector(stringList);
return checkResults(expected, actual, fn)
&& checkResults(expected, actual2, fn)
&& checkResults(expected, actual3, fn)
}
function doIntTest(intList, fn) {
var expected = createExpected(intList, fn);
var actual = msc.integers(intList);
return checkResults(expected, actual, fn);
}
function doRealTest(realList, fn) {
var expected = createExpected(realList, fn);
var actual = msc.reals(realList);
return checkResults(expected, actual, fn);
}
function doIntVectorTest(intList, fn) {
var expected = createExpected(intList, fn);
var actual = msc.integerVector(intList);
var actual2 = msc.integerStdVector(intList);
return checkResults(expected, actual, fn)
&& checkResults(expected, actual2, fn)
}
function doRealVectorTest(realList, fn) {
var expected = createExpected(realList, fn);
var actual = msc.realVector(realList);
var actual2 = msc.realStdVector(realList);
return checkResults(expected, actual, fn)
&& checkResults(expected, actual2, fn)
}
function test_qtbug_25269(useCustomCompare) {
return doStringTest( [ "one", "two", "three" ], null );
}
function test_alphabet_insertionSort(useCustomCompare) {
var fn = useCustomCompare ? compareStrings : null;
return doStringTest( [ "z", "y", "M", "a", "c", "B" ], fn );
}
function test_alphabet_quickSort(useCustomCompare) {
var fn = useCustomCompare ? compareStrings : null;
return doStringTest( [ "z", "y", "m", "a", "c", "B", "gG", "u", "bh", "lk", "GW", "Z", "n", "nm", "oi", "njk", "f", "dd", "ooo", "3des", "num123", "ojh", "lkj", "a6^^", "bl!!", "!o" ], fn );
}
function test_numbers_insertionSort(useCustomCompare) {
var fn = useCustomCompare ? compareNumbers : null;
return doIntTest( [ 7, 3, 9, 1, 0, -1, 20, -11 ], fn );
}
function test_numbers_quickSort(useCustomCompare) {
var fn = useCustomCompare ? compareNumbers : null;
return doIntTest( [ 7, 3, 37, 9, 1, 0, -1, 20, -11, -300, -87, 1, 3, -2, 100, 108, 96, 9, 99999, 12, 11, 11, 12, 11, 13, -13, 10, 10, 10, 8, 12 ], fn );
}
function test_reals_insertionSort(useCustomCompare) {
var fn = useCustomCompare ? compareNumbers : null;
return doRealTest( [ -3.4, 1, 10, 4.23, -30.1, 4.24, 4.21, -1, -1 ], fn );
}
function test_reals_quickSort(useCustomCompare) {
var fn = useCustomCompare ? compareNumbers : null;
return doRealTest( [ -3.4, 1, 10, 4.23, -30.1, 4.24, 4.21, -1, -1, 12, -100, 87.4, 101.3, -8.88888, 7.76, 10.10, 1.1, -1.1, -0, 11, 12.8, 0.001, -11, -0.75, 99999.99, 11.12, 32.3, 3.333333, 9.876 ], fn );
}
function test_number_vector_insertionSort(useCustomCompare) {
var fn = useCustomCompare ? compareNumbers : null;
return doIntVectorTest( [ 7, 3, 9, 1, 0, -1, 20, -11 ], fn );
}
function test_number_vector_quickSort(useCustomCompare) {
var fn = useCustomCompare ? compareNumbers : null;
return doIntVectorTest( [ 7, 3, 37, 9, 1, 0, -1, 20, -11, -300, -87, 1, 3, -2, 100, 108, 96, 9, 99999, 12, 11, 11, 12, 11, 13, -13, 10, 10, 10, 8, 12 ], fn );
}
function test_real_vector_insertionSort(useCustomCompare) {
var fn = useCustomCompare ? compareNumbers : null;
return doRealVectorTest( [ -3.4, 1, 10, 4.23, -30.1, 4.24, 4.21, -1, -1 ], fn );
}
function test_real_vector_quickSort(useCustomCompare) {
var fn = useCustomCompare ? compareNumbers : null;
return doRealVectorTest( [ -3.4, 1, 10, 4.23, -30.1, 4.24, 4.21, -1, -1, 12, -100, 87.4, 101.3, -8.88888, 7.76, 10.10, 1.1, -1.1, -0, 11, 12.8, 0.001, -11, -0.75, 99999.99, 11.12, 32.3, 3.333333, 9.876 ], fn );
}
}