1
0
Fork 0

Added tests for CXX implementation of SHIFT and UNSHIFT

This commit is contained in:
Michael Hackstein 2015-11-03 13:09:27 +01:00
parent c430a0ba36
commit 39748553d2
1 changed files with 93 additions and 0 deletions

View File

@ -212,6 +212,12 @@ function ahuacatlListTestSuite () {
data.forEach(function (d) {
var actual = getQueryResults("RETURN UNSHIFT(" + d[1].map(function (v) { return JSON.stringify(v); }).join(", ") + ")");
assertEqual(d[0], actual[0], d);
actual = getQueryResults("RETURN NOOPT(UNSHIFT(" + d[1].map(function (v) { return JSON.stringify(v); }).join(", ") + "))");
assertEqual(d[0], actual[0], d);
actual = getQueryResults("RETURN NOOPT(V8(UNSHIFT(" + d[1].map(function (v) { return JSON.stringify(v); }).join(", ") + ")))");
assertEqual(d[0], actual[0], d);
});
},
@ -224,6 +230,7 @@ function ahuacatlListTestSuite () {
for (var i = 0; i < 2000; i += 2) {
l.push(i);
}
var actual = getQueryResults("RETURN UNSHIFT(" + JSON.stringify(l) + ", 1000, true)");
assertEqual(l, actual[0]);
assertEqual(1000, actual[0].length);
@ -241,6 +248,50 @@ function ahuacatlListTestSuite () {
l.unshift(1001);
assertEqual(l, actual[0]);
assertEqual(1002, actual[0].length);
// Reset to start
l.shift();
l.shift();
actual = getQueryResults("RETURN NOOPT(UNSHIFT(" + JSON.stringify(l) + ", 1000, true))");
assertEqual(l, actual[0]);
assertEqual(1000, actual[0].length);
actual = getQueryResults("RETURN NOOPT(UNSHIFT(" + JSON.stringify(l) + ", 1000, true))");
assertEqual(l, actual[0]);
assertEqual(1000, actual[0].length);
actual = getQueryResults("RETURN NOOPT(UNSHIFT(" + JSON.stringify(l) + ", 1000, false))");
l.unshift(1000);
assertEqual(l, actual[0]);
assertEqual(1001, actual[0].length);
actual = getQueryResults("RETURN NOOPT(UNSHIFT(" + JSON.stringify(l) + ", 1001, true))");
l.unshift(1001);
assertEqual(l, actual[0]);
assertEqual(1002, actual[0].length);
// Reset to start
l.shift();
l.shift();
actual = getQueryResults("RETURN NOOPT(V8(UNSHIFT(" + JSON.stringify(l) + ", 1000, true)))");
assertEqual(l, actual[0]);
assertEqual(1000, actual[0].length);
actual = getQueryResults("RETURN NOOPT(V8(UNSHIFT(" + JSON.stringify(l) + ", 1000, true)))");
assertEqual(l, actual[0]);
assertEqual(1000, actual[0].length);
actual = getQueryResults("RETURN NOOPT(V8(UNSHIFT(" + JSON.stringify(l) + ", 1000, false)))");
l.unshift(1000);
assertEqual(l, actual[0]);
assertEqual(1001, actual[0].length);
actual = getQueryResults("RETURN NOOPT(V8(UNSHIFT(" + JSON.stringify(l) + ", 1001, true)))");
l.unshift(1001);
assertEqual(l, actual[0]);
assertEqual(1002, actual[0].length);
},
////////////////////////////////////////////////////////////////////////////////
@ -251,6 +302,14 @@ function ahuacatlListTestSuite () {
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN UNSHIFT()");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN UNSHIFT([ ])");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN UNSHIFT([ ], 1, 2, 3)");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(UNSHIFT())");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(UNSHIFT([ ]))");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(UNSHIFT([ ], 1, 2, 3))");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(V8(UNSHIFT()))");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(V8(UNSHIFT([ ])))");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(V8(UNSHIFT([ ], 1, 2, 3)))");
},
////////////////////////////////////////////////////////////////////////////////
@ -412,6 +471,12 @@ function ahuacatlListTestSuite () {
data.forEach(function (d) {
var actual = getQueryResults("RETURN SHIFT(" + JSON.stringify(d[1]) + ")");
assertEqual(d[0], actual[0], d);
actual = getQueryResults("RETURN NOOPT(SHIFT(" + JSON.stringify(d[1]) + "))");
assertEqual(d[0], actual[0], d);
actual = getQueryResults("RETURN NOOPT(V8(SHIFT(" + JSON.stringify(d[1]) + ")))");
assertEqual(d[0], actual[0], d);
});
},
@ -433,6 +498,26 @@ function ahuacatlListTestSuite () {
l.shift();
assertEqual(l, actual[0]);
assertEqual(998, actual[0].length);
actual = getQueryResults("RETURN NOOPT(SHIFT(" + JSON.stringify(l) + "))");
l.shift();
assertEqual(l, actual[0]);
assertEqual(999, actual[0].length);
actual = getQueryResults("RETURN NOOPT(SHIFT(" + JSON.stringify(l) + "))");
l.shift();
assertEqual(l, actual[0]);
assertEqual(998, actual[0].length);
actual = getQueryResults("RETURN NOOPT(V8(SHIFT(" + JSON.stringify(l) + ")))");
l.shift();
assertEqual(l, actual[0]);
assertEqual(999, actual[0].length);
actual = getQueryResults("RETURN NOOPT(V8(SHIFT(" + JSON.stringify(l) + ")))");
l.shift();
assertEqual(l, actual[0]);
assertEqual(998, actual[0].length);
},
////////////////////////////////////////////////////////////////////////////////
@ -443,6 +528,14 @@ function ahuacatlListTestSuite () {
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN SHIFT()");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN SHIFT([ ], 1)");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN SHIFT([ ], 1, 2)");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(SHIFT())");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(SHIFT([ ], 1))");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(SHIFT([ ], 1, 2))");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(V8(SHIFT()))");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(V8(SHIFT([ ], 1)))");
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN NOOPT(V8(SHIFT([ ], 1, 2)))");
},
////////////////////////////////////////////////////////////////////////////////