mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel
This commit is contained in:
commit
dc9969fb27
|
@ -1,10 +1,4 @@
|
||||||
/*jslint indent: 2,
|
/*jslint indent: 2, nomen: true, maxlen: 100, sloppy: true, vars: true, white: true, plusplus: true */
|
||||||
nomen: true,
|
|
||||||
maxlen: 100,
|
|
||||||
sloppy: true,
|
|
||||||
vars: true,
|
|
||||||
white: true,
|
|
||||||
plusplus: true */
|
|
||||||
/*global require, arango, db, edges, Module */
|
/*global require, arango, db, edges, Module */
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
/*jslint indent: 2,
|
/*jslint indent: 2, nomen: true, maxlen: 100, sloppy: true, plusplus: true */
|
||||||
nomen: true,
|
|
||||||
maxlen: 100,
|
|
||||||
sloppy: true,
|
|
||||||
plusplus: true */
|
|
||||||
/*global require, WeakDictionary, exports */
|
/*global require, WeakDictionary, exports */
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -104,7 +100,7 @@ findOrCreateEdgeCollectionByName = function (name) {
|
||||||
/// @brief constructs a new edge object
|
/// @brief constructs a new edge object
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
function Edge(graph, id) {
|
function Edge (graph, id) {
|
||||||
var properties = graph._edges.document(id);
|
var properties = graph._edges.document(id);
|
||||||
|
|
||||||
this._graph = graph;
|
this._graph = graph;
|
||||||
|
|
|
@ -467,6 +467,26 @@ function CollectionInboundExpander (config, vertex, path) {
|
||||||
return connections;
|
return connections;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief default expander that expands all edges labeled with one label in config.labels
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
var ExpandEdgesWithLabels = function (config, vertex, path) {
|
||||||
|
var result = [ ];
|
||||||
|
if (!Array.isArray(config.labels)) {
|
||||||
|
config.labels = [config.labels];
|
||||||
|
}
|
||||||
|
var edgesList = edges[vertex._id];
|
||||||
|
if (edgesList != undefined) {
|
||||||
|
for (i = 0; i < edgesList.length; ++i) {
|
||||||
|
if (!!~config.labels.indexOf(edgesList[i].label)) {
|
||||||
|
result.push({ edge: edgesList[i], vertex: vertices[edgesList[i]._to] });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief default visitor that just tracks every visit
|
/// @brief default visitor that just tracks every visit
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -648,6 +668,7 @@ exports.VisitAllFilter = VisitAllFilter;
|
||||||
exports.TrackingVisitor = TrackingVisitor;
|
exports.TrackingVisitor = TrackingVisitor;
|
||||||
exports.MinDepthFilter = MinDepthFilter;
|
exports.MinDepthFilter = MinDepthFilter;
|
||||||
exports.MaxDepthFilter = MaxDepthFilter;
|
exports.MaxDepthFilter = MaxDepthFilter;
|
||||||
|
exports.ExpandEdgesWithLabels = ExpandEdgesWithLabels;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -47,8 +47,10 @@ var traversal = require("org/arangodb/graph/traversal");
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
function GraphTreeTraversalSuite () {
|
function GraphTreeTraversalSuite () {
|
||||||
var vertices;
|
//var vertices;
|
||||||
var edges;
|
//var edges;
|
||||||
|
var datasourceWorld;
|
||||||
|
|
||||||
|
|
||||||
var visitor = traversal.TrackingVisitor;
|
var visitor = traversal.TrackingVisitor;
|
||||||
|
|
||||||
|
@ -66,10 +68,10 @@ function GraphTreeTraversalSuite () {
|
||||||
var expander = function (config, vertex, path) {
|
var expander = function (config, vertex, path) {
|
||||||
var r = [ ];
|
var r = [ ];
|
||||||
|
|
||||||
var edgesList = edges[vertex._id];
|
var edgesList = config.datasource.getOutEdges(vertex._id);
|
||||||
if (edgesList != undefined) {
|
if (edgesList != undefined) {
|
||||||
for (i = 0; i < edgesList.length; ++i) {
|
for (i = 0; i < edgesList.length; ++i) {
|
||||||
r.push({ edge: edgesList[i], vertex: vertices[edgesList[i]._to] });
|
r.push({ edge: edgesList[i], vertex: config.datasource.vertices[edgesList[i]._to] });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return r;
|
return r;
|
||||||
|
@ -109,6 +111,7 @@ function GraphTreeTraversalSuite () {
|
||||||
visitor: visitor,
|
visitor: visitor,
|
||||||
filter: filter,
|
filter: filter,
|
||||||
expander: expander,
|
expander: expander,
|
||||||
|
datasource: datasourceWorld,
|
||||||
|
|
||||||
noVisit: {
|
noVisit: {
|
||||||
"vertices/Antarctica" : true,
|
"vertices/Antarctica" : true,
|
||||||
|
@ -127,8 +130,9 @@ function GraphTreeTraversalSuite () {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
setUp : function () {
|
setUp : function () {
|
||||||
vertices = { };
|
var worldVertices = { };
|
||||||
edges = { };
|
var worldInEdges = { };
|
||||||
|
var worldOutEdges = { };
|
||||||
|
|
||||||
[ "World", "Nothing",
|
[ "World", "Nothing",
|
||||||
"Europe", "Asia", "America", "Australia", "Antarctica", "Africa", "Blackhole",
|
"Europe", "Asia", "America", "Australia", "Antarctica", "Africa", "Blackhole",
|
||||||
|
@ -141,10 +145,10 @@ function GraphTreeTraversalSuite () {
|
||||||
_key : key,
|
_key : key,
|
||||||
name : item
|
name : item
|
||||||
};
|
};
|
||||||
vertices[vertex._id] = vertex;
|
worldVertices[vertex._id] = vertex;
|
||||||
});
|
});
|
||||||
|
|
||||||
var connect = function (from, to) {
|
var connect = function (from, to, inlist, outlist) {
|
||||||
var key = from + "x" + to;
|
var key = from + "x" + to;
|
||||||
var edge = {
|
var edge = {
|
||||||
_id : "edges/" + key,
|
_id : "edges/" + key,
|
||||||
|
@ -154,29 +158,52 @@ function GraphTreeTraversalSuite () {
|
||||||
what : from + "->" + to
|
what : from + "->" + to
|
||||||
};
|
};
|
||||||
|
|
||||||
if (edges[edge._from] == undefined) {
|
if (outlist[edge._from] == undefined) {
|
||||||
edges[edge._from] = [ ];
|
outlist[edge._from] = [ ];
|
||||||
}
|
}
|
||||||
edges[edge._from].push(edge);
|
outlist[edge._from].push(edge);
|
||||||
|
if (inlist[edge._to] == undefined) {
|
||||||
|
inlist[edge._to] = [ ];
|
||||||
|
}
|
||||||
|
inlist[edge._to].push(edge);
|
||||||
};
|
};
|
||||||
|
|
||||||
connect("World", "Europe");
|
connect("World", "Europe", worldInEdges, worldOutEdges);
|
||||||
connect("World", "Asia");
|
connect("World", "Asia", worldInEdges, worldOutEdges);
|
||||||
connect("World", "America");
|
connect("World", "America", worldInEdges, worldOutEdges);
|
||||||
connect("World", "Australia");
|
connect("World", "Australia", worldInEdges, worldOutEdges);
|
||||||
connect("World", "Africa");
|
connect("World", "Africa", worldInEdges, worldOutEdges);
|
||||||
connect("World", "Antarctica");
|
connect("World", "Antarctica", worldInEdges, worldOutEdges);
|
||||||
connect("Europe", "DE");
|
connect("Europe", "DE", worldInEdges, worldOutEdges);
|
||||||
connect("Europe", "FR");
|
connect("Europe", "FR", worldInEdges, worldOutEdges);
|
||||||
connect("Europe", "GB");
|
connect("Europe", "GB", worldInEdges, worldOutEdges);
|
||||||
connect("Europe", "IE");
|
connect("Europe", "IE", worldInEdges, worldOutEdges);
|
||||||
connect("Asia", "CN");
|
connect("Asia", "CN", worldInEdges, worldOutEdges);
|
||||||
connect("Asia", "JP");
|
connect("Asia", "JP", worldInEdges, worldOutEdges);
|
||||||
connect("Asia", "TW");
|
connect("Asia", "TW", worldInEdges, worldOutEdges);
|
||||||
connect("America", "US");
|
connect("America", "US", worldInEdges, worldOutEdges);
|
||||||
connect("America", "MX");
|
connect("America", "MX", worldInEdges, worldOutEdges);
|
||||||
connect("Australia", "AU");
|
connect("Australia", "AU", worldInEdges, worldOutEdges);
|
||||||
connect("Antarctica", "AN");
|
connect("Antarctica", "AN", worldInEdges, worldOutEdges);
|
||||||
|
|
||||||
|
|
||||||
|
datasourceWorld = {
|
||||||
|
inEdges: worldInEdges,
|
||||||
|
outEdges: worldOutEdges,
|
||||||
|
vertices: worldVertices,
|
||||||
|
|
||||||
|
getAllEdges: function (vertexId) {
|
||||||
|
return this.inEdges[vertexId].concat(outEdges[vertex_id]);
|
||||||
|
},
|
||||||
|
|
||||||
|
getInEdges: function (vertexId) {
|
||||||
|
return this.inEdges[vertexId];
|
||||||
|
},
|
||||||
|
|
||||||
|
getOutEdges: function (vertexId) {
|
||||||
|
return this.outEdges[vertexId];
|
||||||
|
}
|
||||||
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -198,7 +225,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/World",
|
"vertices/World",
|
||||||
|
@ -255,7 +282,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/World",
|
"vertices/World",
|
||||||
|
@ -312,7 +339,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/DE",
|
"vertices/DE",
|
||||||
|
@ -369,7 +396,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/AN",
|
"vertices/AN",
|
||||||
|
@ -426,7 +453,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/World",
|
"vertices/World",
|
||||||
|
@ -483,7 +510,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/World",
|
"vertices/World",
|
||||||
|
@ -540,7 +567,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/DE",
|
"vertices/DE",
|
||||||
|
@ -597,7 +624,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/AN",
|
"vertices/AN",
|
||||||
|
@ -648,6 +675,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
testMinDepthFilterWithDepth0 : function () {
|
testMinDepthFilterWithDepth0 : function () {
|
||||||
var config = {
|
var config = {
|
||||||
|
datasource: datasourceWorld,
|
||||||
expander: expander,
|
expander: expander,
|
||||||
filter: traversal.MinDepthFilter,
|
filter: traversal.MinDepthFilter,
|
||||||
minDepth: 0
|
minDepth: 0
|
||||||
|
@ -655,7 +683,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/World",
|
"vertices/World",
|
||||||
|
@ -711,6 +739,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
testMinDepthFilterWithDepth1 : function () {
|
testMinDepthFilterWithDepth1 : function () {
|
||||||
var config = {
|
var config = {
|
||||||
|
datasource: datasourceWorld,
|
||||||
expander: expander,
|
expander: expander,
|
||||||
filter: traversal.MinDepthFilter,
|
filter: traversal.MinDepthFilter,
|
||||||
minDepth: 1
|
minDepth: 1
|
||||||
|
@ -718,7 +747,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/Europe",
|
"vertices/Europe",
|
||||||
|
@ -774,6 +803,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
testMinDepthFilterWithDepth2 : function () {
|
testMinDepthFilterWithDepth2 : function () {
|
||||||
var config = {
|
var config = {
|
||||||
|
datasource: datasourceWorld,
|
||||||
expander: expander,
|
expander: expander,
|
||||||
filter: traversal.MinDepthFilter,
|
filter: traversal.MinDepthFilter,
|
||||||
minDepth: 2
|
minDepth: 2
|
||||||
|
@ -781,7 +811,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/DE",
|
"vertices/DE",
|
||||||
|
@ -823,6 +853,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
testMaxDepthFilterWithDepth0 : function () {
|
testMaxDepthFilterWithDepth0 : function () {
|
||||||
var config = {
|
var config = {
|
||||||
|
datasource: datasourceWorld,
|
||||||
expander: expander,
|
expander: expander,
|
||||||
filter: traversal.MaxDepthFilter,
|
filter: traversal.MaxDepthFilter,
|
||||||
maxDepth: 0
|
maxDepth: 0
|
||||||
|
@ -830,7 +861,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/World",
|
"vertices/World",
|
||||||
|
@ -852,6 +883,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
testMaxDepthFilterWithDepth1 : function () {
|
testMaxDepthFilterWithDepth1 : function () {
|
||||||
var config = {
|
var config = {
|
||||||
|
datasource: datasourceWorld,
|
||||||
expander: expander,
|
expander: expander,
|
||||||
filter: traversal.MaxDepthFilter,
|
filter: traversal.MaxDepthFilter,
|
||||||
maxDepth: 1
|
maxDepth: 1
|
||||||
|
@ -859,7 +891,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/World",
|
"vertices/World",
|
||||||
|
@ -893,6 +925,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
testMaxDepthFilterWithDepth2 : function () {
|
testMaxDepthFilterWithDepth2 : function () {
|
||||||
var config = {
|
var config = {
|
||||||
|
datasource: datasourceWorld,
|
||||||
expander: expander,
|
expander: expander,
|
||||||
filter: traversal.MaxDepthFilter,
|
filter: traversal.MaxDepthFilter,
|
||||||
maxDepth: 2
|
maxDepth: 2
|
||||||
|
@ -900,7 +933,7 @@ function GraphTreeTraversalSuite () {
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/World",
|
"vertices/World",
|
||||||
|
@ -993,12 +1026,13 @@ function GraphTreeTraversalSuite () {
|
||||||
exclude2: "AU",
|
exclude2: "AU",
|
||||||
exclude3: "World",
|
exclude3: "World",
|
||||||
prune1: "Asia",
|
prune1: "Asia",
|
||||||
prune2: "Europe"
|
prune2: "Europe",
|
||||||
|
datasource: datasourceWorld
|
||||||
};
|
};
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [
|
var expectedVisits = [
|
||||||
"vertices/Asia",
|
"vertices/Asia",
|
||||||
|
@ -1044,12 +1078,13 @@ function GraphTreeTraversalSuite () {
|
||||||
excludeAndPrune,
|
excludeAndPrune,
|
||||||
traversal.VisitAllFilter
|
traversal.VisitAllFilter
|
||||||
],
|
],
|
||||||
excludeAndPrune: "World"
|
excludeAndPrune: "World",
|
||||||
|
datasource: datasourceWorld
|
||||||
};
|
};
|
||||||
|
|
||||||
var result = getResult();
|
var result = getResult();
|
||||||
var traverser = new traversal.Traverser(config);
|
var traverser = new traversal.Traverser(config);
|
||||||
traverser.traverse(result, vertices["vertices/World"]);
|
traverser.traverse(result, config.datasource.vertices["vertices/World"]);
|
||||||
|
|
||||||
var expectedVisits = [];
|
var expectedVisits = [];
|
||||||
|
|
||||||
|
@ -1058,6 +1093,13 @@ function GraphTreeTraversalSuite () {
|
||||||
var expectedPaths = [];
|
var expectedPaths = [];
|
||||||
|
|
||||||
assertEqual(expectedPaths, getVisitedPaths(result.visited.paths));
|
assertEqual(expectedPaths, getVisitedPaths(result.visited.paths));
|
||||||
|
},
|
||||||
|
|
||||||
|
testFollowEdgesWithLabels : function () {
|
||||||
|
var config = {
|
||||||
|
expander: traversal.ExpandEdgesWithLabels,
|
||||||
|
edgeLabels: ["likes", "hates"]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue