From 39748553d288885e392989dfb239ff77f3889606 Mon Sep 17 00:00:00 2001 From: Michael Hackstein Date: Tue, 3 Nov 2015 13:09:27 +0100 Subject: [PATCH] Added tests for CXX implementation of SHIFT and UNSHIFT --- js/server/tests/aql-functions-list.js | 93 +++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/js/server/tests/aql-functions-list.js b/js/server/tests/aql-functions-list.js index 53ebe3d1a8..04dec08a20 100644 --- a/js/server/tests/aql-functions-list.js +++ b/js/server/tests/aql-functions-list.js @@ -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)))"); }, ////////////////////////////////////////////////////////////////////////////////