mirror of https://gitee.com/bigwinds/arangodb
added test cases for ref access
This commit is contained in:
parent
c21659fbac
commit
7d84873f4f
|
@ -77,7 +77,7 @@ function ahuacatlHashTestSuite () {
|
|||
if (hash.count() == 0) {
|
||||
for (var i = 1; i <= 5; ++i) {
|
||||
for (var j = 1; j <= 5; ++j) {
|
||||
hash.save({ "a" : i, "b": j, "c": i });
|
||||
hash.save({ "a" : i, "b": j, "c" : i });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -105,21 +105,43 @@ function ahuacatlHashTestSuite () {
|
|||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test the first hash index field with equality
|
||||
/// @brief test the single field hash index with equality
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testEqSingle2 : function () {
|
||||
var expected = [ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ] ];
|
||||
var actual = getQueryResults("FOR v IN " + hash.name() + " FILTER 1 == v.c SORT v.b RETURN [ v.b ]");
|
||||
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test the first hash index field with equality
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testEqSingle3 : function () {
|
||||
var expected = [ [ 1, 4 ], [ 2, 4 ], [ 3, 4 ], [ 4, 4 ], [ 5, 4 ] ];
|
||||
var actual = getQueryResults("FOR v IN " + hash.name() + " FILTER v.c == 4 SORT v.b RETURN [ v.b, v.c ]");
|
||||
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test the first hash index field with equality
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testEqSingle4 : function () {
|
||||
var expected = [ [ 1, 4 ], [ 2, 4 ], [ 3, 4 ], [ 4, 4 ], [ 5, 4 ] ];
|
||||
var actual = getQueryResults("FOR v IN " + hash.name() + " FILTER 4 == v.c SORT v.b RETURN [ v.b, v.c ]");
|
||||
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test multiple hash fields with multiple operators
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testEqMultiAll : function () {
|
||||
testEqMultiAll1 : function () {
|
||||
for (var i = 1; i <= 5; ++i) {
|
||||
for (var j = 1; j <=5; ++j) {
|
||||
var expected = [ [ i, j ] ];
|
||||
|
@ -128,6 +150,108 @@ function ahuacatlHashTestSuite () {
|
|||
assertEqual(expected, actual);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test multiple hash fields with multiple operators
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testEqMultiAll2 : function () {
|
||||
for (var i = 1; i <= 5; ++i) {
|
||||
for (var j = 1; j <=5; ++j) {
|
||||
var expected = [ [ i, j ] ];
|
||||
var actual = getQueryResults("FOR v IN " + hash.name() + " FILTER @a == v.a && @b == v.b RETURN [ v.a, v.b ]", { "a" : i, "b" : j });
|
||||
|
||||
assertEqual(expected, actual);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test references with constants
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRefConst1 : function () {
|
||||
var expected = [ [ 1, 4 ], [ 2, 4 ], [ 3, 4 ], [ 4, 4 ], [ 5, 4 ] ];
|
||||
var actual = getQueryResults("LET x = 4 FOR v IN " + hash.name() + " FILTER v.c == x SORT v.b RETURN [ v.b, v.c ]");
|
||||
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test references with constants
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRefConst2 : function () {
|
||||
var expected = [ [ 3, 5 ] ];
|
||||
var actual = getQueryResults("LET x = 3 LET y = 5 FOR v IN " + hash.name() + " FILTER v.a == x && v.b == y RETURN [ v.a, v.b ]");
|
||||
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test ref access
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRefSingle1 : function () {
|
||||
for (var i = 1; i <= 5; ++i) {
|
||||
var expected = [ [ i, i ] ];
|
||||
var actual = getQueryResults("FOR v1 IN " + hash.name() + " FOR v2 IN " + hash.name() + " FILTER v1.c == @c && v1.b == 1 && v2.c == v1.c && v2.b == 1 RETURN [ v1.c, v2.c ]", { "c" : i });
|
||||
|
||||
assertEqual(expected, actual);
|
||||
}
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test ref access
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRefSingle2 : function () {
|
||||
for (var i = 1; i <= 5; ++i) {
|
||||
var expected = [ [ i, i ] ];
|
||||
var actual = getQueryResults("FOR v1 IN " + hash.name() + " FOR v2 IN " + hash.name() + " FILTER v1.c == @c && v1.b == 1 && v2.c == v1.c && v2.b == v1.b RETURN [ v1.c, v2.c ]", { "c" : i });
|
||||
|
||||
assertEqual(expected, actual);
|
||||
}
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test ref access
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRefSingle3 : function () {
|
||||
for (var i = 1; i <= 5; ++i) {
|
||||
var expected = [ [ i, i ] ];
|
||||
var actual = getQueryResults("FOR v1 IN " + hash.name() + " FOR v2 IN " + hash.name() + " FILTER @c == v1.c && 1 == v1.b && v1.c == v2.c && v1.b == v2.b RETURN [ v1.c, v2.c ]", { "c" : i });
|
||||
|
||||
assertEqual(expected, actual);
|
||||
}
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test ref access
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRefMulti1 : function () {
|
||||
for (var i = 1; i <= 5; ++i) {
|
||||
var expected = [ [ i, 1 ] ];
|
||||
var actual = getQueryResults("FOR v1 IN " + hash.name() + " FOR v2 IN " + hash.name() + " FILTER v1.c == @a && v1.b == 1 && v2.c == v1.c && v2.b == v1.b RETURN [ v1.a, v1.b ]", { "a" : i });
|
||||
|
||||
assertEqual(expected, actual);
|
||||
}
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test ref access
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRefMulti2 : function () {
|
||||
for (var i = 1; i <= 5; ++i) {
|
||||
var expected = [ [ i, 1 ] ];
|
||||
var actual = getQueryResults("FOR v1 IN " + hash.name() + " FOR v2 IN " + hash.name() + " FILTER @a == v1.c && 1 == v1.b && v1.c == v2.c && v1.b == v2.b RETURN [ v1.a, v1.b ]", { "a" : i });
|
||||
|
||||
assertEqual(expected, actual);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
@ -968,6 +968,50 @@ function ahuacatlSkiplistTestSuite () {
|
|||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test ref access with a constant
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRefConst1 : function () {
|
||||
var expected = [ [ 3, 1 ], [ 3, 2 ], [ 3, 3 ], [ 3, 4 ], [ 3, 5 ] ];
|
||||
var actual = getQueryResults("LET x = 3 FOR v IN " + skiplist.name() + " FILTER v.a == x SORT v.a, v.b RETURN [ v.a, v.b ]");
|
||||
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test ref access with a constant
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRefConst2 : function () {
|
||||
var expected = [ [ 3, 5 ] ];
|
||||
var actual = getQueryResults("LET x = 3 LET y = 5 FOR v IN " + skiplist.name() + " FILTER v.a == x && v.b == y RETURN [ v.a, v.b ]");
|
||||
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test ref access
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRefSingle1 : function () {
|
||||
var expected = [ [ 1, 1 ], [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ] ];
|
||||
var actual = getQueryResults("FOR v1 IN " + skiplist.name() + " FOR v2 IN " + skiplist.name() + " FILTER v1.a == 1 && v2.a == v1.a && v1.b == 1 SORT v1.a, v2.b RETURN [ v1.a, v2.b ]");
|
||||
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test ref access
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testRefSingle2 : function () {
|
||||
var expected = [ [ 1, 1 ], [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ] ];
|
||||
var actual = getQueryResults("FOR v1 IN " + skiplist.name() + " FOR v2 IN " + skiplist.name() + " FILTER 1 == v1.a && v1.a == v2.a && 1 == v1.b SORT v1.a, v2.b RETURN [ v1.a, v2.b ]");
|
||||
|
||||
assertEqual(expected, actual);
|
||||
},
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue