mirror of https://gitee.com/bigwinds/arangodb
Added tests for CXX implementation of CONTAINS
This commit is contained in:
parent
ac1cf36daf
commit
76c62c090a
|
@ -1,5 +1,5 @@
|
|||
/*jshint globalstrict:false, strict:false, maxlen: 500 */
|
||||
/*global assertEqual */
|
||||
/*global assertEqual, assertTrue */
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief tests for query language, functions
|
||||
///
|
||||
|
@ -219,16 +219,30 @@ function ahuacatlStringFunctionsTestSuite () {
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testContainsFirst : function () {
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN CONTAINS(\"test\")");
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN CONTAINS(\"test\", \"test\", \"test\", \"test\")");
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, "RETURN CONTAINS()");
|
||||
assertEqual([ -1 ], getQueryResults("RETURN CONTAINS(\"test\", \"test2\", \"test3\")"));
|
||||
assertEqual([ true ], getQueryResults("RETURN CONTAINS(null, null)"));
|
||||
assertEqual([ true ], getQueryResults("RETURN CONTAINS(4, 4)"));
|
||||
assertEqual([ true ], getQueryResults("RETURN CONTAINS({ }, { })"));
|
||||
assertEqual([ false ], getQueryResults("RETURN CONTAINS([ ], [ ])"));
|
||||
assertEqual([ false ], getQueryResults("RETURN CONTAINS(null, \"yes\")"));
|
||||
assertEqual([ false ], getQueryResults("RETURN CONTAINS(3, null)"));
|
||||
var buildQuery = function(nr, input) {
|
||||
switch (nr) {
|
||||
case 0:
|
||||
return `RETURN CONTAINS(${input})`;
|
||||
case 1:
|
||||
return `RETURN NOOPT(CONTAINS(${input}))`;
|
||||
case 2:
|
||||
return `RETURN NOOPT(V8(CONTAINS(${input})))`;
|
||||
default:
|
||||
assertTrue(false, "Undefined state");
|
||||
}
|
||||
};
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "\"test\""));
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, "\"test\", \"test\", \"test\", \"test\""));
|
||||
assertQueryError(errors.ERROR_QUERY_FUNCTION_ARGUMENT_NUMBER_MISMATCH.code, buildQuery(i, ""));
|
||||
assertEqual([ -1 ], getQueryResults(buildQuery(i, "\"test\", \"test2\", \"test3\"")));
|
||||
assertEqual([ true ], getQueryResults(buildQuery(i, "null, null")));
|
||||
assertEqual([ true ], getQueryResults(buildQuery(i, "4, 4")));
|
||||
assertEqual([ true ], getQueryResults(buildQuery(i, "{ }, { }")));
|
||||
assertEqual([ false ], getQueryResults(buildQuery(i, "[ ], [ ]")));
|
||||
assertEqual([ false ], getQueryResults(buildQuery(i, "null, \"yes\"")));
|
||||
assertEqual([ false ], getQueryResults(buildQuery(i, "3, null")));
|
||||
}
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -239,6 +253,12 @@ function ahuacatlStringFunctionsTestSuite () {
|
|||
var expected = [true];
|
||||
var actual = getQueryResults("RETURN CONTAINS(\"test2\", \"test\")");
|
||||
assertEqual(expected, actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(CONTAINS(\"test2\", \"test\"))");
|
||||
assertEqual(expected, actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(V8(CONTAINS(\"test2\", \"test\")))");
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -249,6 +269,12 @@ function ahuacatlStringFunctionsTestSuite () {
|
|||
var expected = [true];
|
||||
var actual = getQueryResults("RETURN CONTAINS(\"xxasdxx\", \"asd\")");
|
||||
assertEqual(expected, actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(CONTAINS(\"xxasdxx\", \"asd\"))");
|
||||
assertEqual(expected, actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(V8(CONTAINS(\"xxasdxx\", \"asd\")))");
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -259,6 +285,12 @@ function ahuacatlStringFunctionsTestSuite () {
|
|||
var expected = [false];
|
||||
var actual = getQueryResults("RETURN CONTAINS(\"test\", \"test2\")");
|
||||
assertEqual(expected, actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(CONTAINS(\"test\", \"test2\"))");
|
||||
assertEqual(expected, actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(V8(CONTAINS(\"test\", \"test2\")))");
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -269,6 +301,12 @@ function ahuacatlStringFunctionsTestSuite () {
|
|||
var expected = [false];
|
||||
var actual = getQueryResults("RETURN CONTAINS(\"test123\", \"\")");
|
||||
assertEqual(expected, actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(CONTAINS(\"test123\", \"\"))");
|
||||
assertEqual(expected, actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(V8(CONTAINS(\"test123\", \"\")))");
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -279,6 +317,12 @@ function ahuacatlStringFunctionsTestSuite () {
|
|||
var expected = [false];
|
||||
var actual = getQueryResults("RETURN CONTAINS(\"\", \"test123\")");
|
||||
assertEqual(expected, actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(CONTAINS(\"\", \"test123\"))");
|
||||
assertEqual(expected, actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(V8(CONTAINS(\"\", \"test123\")))");
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -286,16 +330,30 @@ function ahuacatlStringFunctionsTestSuite () {
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testContainsIndexed : function () {
|
||||
assertEqual([ 0 ], getQueryResults("RETURN CONTAINS(\"test2\", \"test\", true)"));
|
||||
assertEqual([ true ], getQueryResults("RETURN CONTAINS(\"test2\", \"test\", false)"));
|
||||
assertEqual([ 1 ], getQueryResults("RETURN CONTAINS(\"test2\", \"est\", true)"));
|
||||
assertEqual([ true ], getQueryResults("RETURN CONTAINS(\"test2\", \"est\", false)"));
|
||||
assertEqual([ -1 ], getQueryResults("RETURN CONTAINS(\"this is a long test\", \"this is a test\", true)"));
|
||||
assertEqual([ false ], getQueryResults("RETURN CONTAINS(\"this is a long test\", \"this is a test\", false)"));
|
||||
assertEqual([ 18 ], getQueryResults("RETURN CONTAINS(\"this is a test of this test\", \"this test\", true)"));
|
||||
assertEqual([ true ], getQueryResults("RETURN CONTAINS(\"this is a test of this test\", \"this test\", false)"));
|
||||
assertEqual([ -1 ], getQueryResults("RETURN CONTAINS(\"this is a test of this test\", \"This\", true)"));
|
||||
assertEqual([ false ], getQueryResults("RETURN CONTAINS(\"this is a test of this test\", \"This\", false)"));
|
||||
var buildQuery = function(nr, input) {
|
||||
switch (nr) {
|
||||
case 0:
|
||||
return `RETURN CONTAINS(${input})`;
|
||||
case 1:
|
||||
return `RETURN NOOPT(CONTAINS(${input}))`;
|
||||
case 2:
|
||||
return `RETURN NOOPT(V8(CONTAINS(${input})))`;
|
||||
default:
|
||||
assertTrue(false, "Undefined state");
|
||||
}
|
||||
};
|
||||
for (var i = 0; i < 3; ++i) {
|
||||
assertEqual([ 0 ], getQueryResults(buildQuery(i, "\"test2\", \"test\", true")));
|
||||
assertEqual([ true ], getQueryResults(buildQuery(i, "\"test2\", \"test\", false")));
|
||||
assertEqual([ 1 ], getQueryResults(buildQuery(i, "\"test2\", \"est\", true")));
|
||||
assertEqual([ true ], getQueryResults(buildQuery(i, "\"test2\", \"est\", false")));
|
||||
assertEqual([ -1 ], getQueryResults(buildQuery(i, "\"this is a long test\", \"this is a test\", true")));
|
||||
assertEqual([ false ], getQueryResults(buildQuery(i, "\"this is a long test\", \"this is a test\", false")));
|
||||
assertEqual([ 18 ], getQueryResults(buildQuery(i, "\"this is a test of this test\", \"this test\", true")));
|
||||
assertEqual([ true ], getQueryResults(buildQuery(i, "\"this is a test of this test\", \"this test\", false")));
|
||||
assertEqual([ -1 ], getQueryResults(buildQuery(i, "\"this is a test of this test\", \"This\", true")));
|
||||
assertEqual([ false ], getQueryResults(buildQuery(i, "\"this is a test of this test\", \"This\", false")));
|
||||
}
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -315,6 +373,18 @@ function ahuacatlStringFunctionsTestSuite () {
|
|||
|
||||
actual = getQueryResults("RETURN CONTAINS(" + JSON.stringify(value) + ", " + JSON.stringify(value) + ", false)");
|
||||
assertEqual([ true ], actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(CONTAINS(" + JSON.stringify(value) + ", 'foobar', false))");
|
||||
assertEqual([ false ], actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(CONTAINS(" + JSON.stringify(value) + ", " + JSON.stringify(value) + ", false))");
|
||||
assertEqual([ true ], actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(V8(CONTAINS(" + JSON.stringify(value) + ", 'foobar', false)))");
|
||||
assertEqual([ false ], actual);
|
||||
|
||||
actual = getQueryResults("RETURN NOOPT(V8(CONTAINS(" + JSON.stringify(value) + ", " + JSON.stringify(value) + ", false)))");
|
||||
assertEqual([ true ], actual);
|
||||
});
|
||||
},
|
||||
|
||||
|
|
Loading…
Reference in New Issue