mirror of https://gitee.com/bigwinds/arangodb
added tests
This commit is contained in:
parent
19d7a70d65
commit
663afb0fa1
|
@ -1235,7 +1235,6 @@ function AHUACATL_MERGE () {
|
||||||
var element = arguments[i];
|
var element = arguments[i];
|
||||||
|
|
||||||
if (AHUACATL_TYPEWEIGHT(element) !== AHUACATL_TYPEWEIGHT_DOCUMENT) {
|
if (AHUACATL_TYPEWEIGHT(element) !== AHUACATL_TYPEWEIGHT_DOCUMENT) {
|
||||||
print(element);
|
|
||||||
throw "expecting documents for merge";
|
throw "expecting documents for merge";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1251,6 +1250,32 @@ function AHUACATL_MERGE () {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief create the union (all) of all arguments
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
function AHUACATL_UNION () {
|
||||||
|
var result = [ ];
|
||||||
|
|
||||||
|
for (var i in arguments) {
|
||||||
|
var element = arguments[i];
|
||||||
|
|
||||||
|
if (AHUACATL_TYPEWEIGHT(element) !== AHUACATL_TYPEWEIGHT_LIST) {
|
||||||
|
throw "expecting lists for union";
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var k in element) {
|
||||||
|
if (!element.hasOwnProperty(k)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
result.push(element[k]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @}
|
/// @}
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -1236,7 +1236,6 @@ static string JS_server_ahuacatl =
|
||||||
" var element = arguments[i];\n"
|
" var element = arguments[i];\n"
|
||||||
"\n"
|
"\n"
|
||||||
" if (AHUACATL_TYPEWEIGHT(element) !== AHUACATL_TYPEWEIGHT_DOCUMENT) {\n"
|
" if (AHUACATL_TYPEWEIGHT(element) !== AHUACATL_TYPEWEIGHT_DOCUMENT) {\n"
|
||||||
" print(element);\n"
|
|
||||||
" throw \"expecting documents for merge\";\n"
|
" throw \"expecting documents for merge\";\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -1253,6 +1252,32 @@ static string JS_server_ahuacatl =
|
||||||
"}\n"
|
"}\n"
|
||||||
"\n"
|
"\n"
|
||||||
"////////////////////////////////////////////////////////////////////////////////\n"
|
"////////////////////////////////////////////////////////////////////////////////\n"
|
||||||
|
"/// @brief create the union (all) of all arguments\n"
|
||||||
|
"////////////////////////////////////////////////////////////////////////////////\n"
|
||||||
|
"\n"
|
||||||
|
"function AHUACATL_UNION () {\n"
|
||||||
|
" var result = [ ];\n"
|
||||||
|
"\n"
|
||||||
|
" for (var i in arguments) {\n"
|
||||||
|
" var element = arguments[i];\n"
|
||||||
|
"\n"
|
||||||
|
" if (AHUACATL_TYPEWEIGHT(element) !== AHUACATL_TYPEWEIGHT_LIST) {\n"
|
||||||
|
" throw \"expecting lists for union\";\n"
|
||||||
|
" }\n"
|
||||||
|
"\n"
|
||||||
|
" for (var k in element) {\n"
|
||||||
|
" if (!element.hasOwnProperty(k)) {\n"
|
||||||
|
" continue;\n"
|
||||||
|
" }\n"
|
||||||
|
"\n"
|
||||||
|
" result.push(element[k]);\n"
|
||||||
|
" }\n"
|
||||||
|
" }\n"
|
||||||
|
"\n"
|
||||||
|
" return result; \n"
|
||||||
|
"}\n"
|
||||||
|
"\n"
|
||||||
|
"////////////////////////////////////////////////////////////////////////////////\n"
|
||||||
"/// @}\n"
|
"/// @}\n"
|
||||||
"////////////////////////////////////////////////////////////////////////////////\n"
|
"////////////////////////////////////////////////////////////////////////////////\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
|
@ -161,6 +161,37 @@ function ahuacatlFunctionsTestSuite () {
|
||||||
var actual = getQueryResults("FOR u IN [ { \"id\" : 100, \"name\" : \"John\", \"age\" : 15 }, { \"id\" : 101, \"name\" : \"Corey\", \"age\" : 19 } ] return MERGE(u, { \"id\" : 9 }, { \"name\" : \"foo\", \"id\" : 33 })", false);
|
var actual = getQueryResults("FOR u IN [ { \"id\" : 100, \"name\" : \"John\", \"age\" : 15 }, { \"id\" : 101, \"name\" : \"Corey\", \"age\" : 19 } ] return MERGE(u, { \"id\" : 9 }, { \"name\" : \"foo\", \"id\" : 33 })", false);
|
||||||
assertEqual(expected, actual);
|
assertEqual(expected, actual);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief test union function
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
testUnion1 : function () {
|
||||||
|
var expected = [ [ 1, 2, 3, 1, 2, 3 ], [ 1, 2, 3, 1, 2, 3 ] ];
|
||||||
|
var actual = getQueryResults("FOR u IN [ 1, 2 ] return UNION([ 1, 2, 3 ], [ 1, 2, 3 ])", true);
|
||||||
|
assertEqual(expected, actual);
|
||||||
|
},
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief test union function
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
testUnion2 : function () {
|
||||||
|
var expected = [ [ 1, 2, 3, 3, 2, 1 ], [ 1, 2, 3, 3, 2, 1 ] ];
|
||||||
|
var actual = getQueryResults("FOR u IN [ 1, 2 ] return UNION([ 1, 2, 3 ], [ 3, 2, 1 ])", true);
|
||||||
|
assertEqual(expected, actual);
|
||||||
|
},
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief test union function
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
testUnion3 : function () {
|
||||||
|
var expected = [ "Fred", "John", "John", "Amy" ];
|
||||||
|
var actual = getQueryResults("FOR u IN UNION([ \"Fred\", \"John\" ], [ \"John\", \"Amy\"]) return u", true);
|
||||||
|
assertEqual(expected, actual);
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue