/* jshint globalstrict:false, strict:false, unused:false */ // ////////////////////////////////////////////////////////////////////////////// // / @brief test the graph class // / // / @file // / // / DISCLAIMER // / // / Copyright 2010-2012 triagens GmbH, Cologne, Germany // / // / Licensed under the Apache License, Version 2.0 (the "License") // / you may not use this file except in compliance with the License. // / You may obtain a copy of the License at // / // / http://www.apache.org/licenses/LICENSE-2.0 // / // / Unless required by applicable law or agreed to in writing, software // / distributed under the License is distributed on an "AS IS" BASIS, // / WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // / See the License for the specific language governing permissions and // / limitations under the License. // / // / Copyright holder is triAGENS GmbH, Cologne, Germany // / // / @author Lucas Dohmen // / @author Copyright 2012, triAGENS GmbH, Cologne, Germany // ////////////////////////////////////////////////////////////////////////////// function main (args) { 'use strict'; var Graph = require('@arangodb/graph').Graph, graph_name = 'UnitTestsCollectionGraph', vertex = 'UnitTestsCollectionVertex', edge = 'UnitTestsCollectionEdge', graph = null, base_path = args[1] + '/', v1, v2, e, pathes, console = require('console'), Helper = require('test-helper').Helper, caching = false; if (args[2] === 'true') { caching = true; } // ////////////////////////////////////////////////////////////////////////////// // / set up // ////////////////////////////////////////////////////////////////////////////// try { try { // Drop the graph if it exsits graph = new Graph(graph_name); require('internal').print('FOUND: '); require('internal').printObject(graph); graph.drop(); } catch (err1) {} graph = new Graph(graph_name, vertex, edge); } catch (err2) { console.error('[FAILED] setup failed:' + err2); } // ////////////////////////////////////////////////////////////////////////////// // / compare with Neo4j on a given network // ////////////////////////////////////////////////////////////////////////////// console.log('Importing'); Helper.process(base_path + 'generated_edges.csv', function (row) { v1 = graph.getOrAddVertex(row[1]); v2 = graph.getOrAddVertex(row[2]); e = graph.addEdge(v1, v2); }); console.log('Starting Tests'); var processor = function (row) { v1 = graph.getVertex(row[0]); v2 = graph.getVertex(row[1]); if (v1 !== null && v2 !== null) { pathes = v1.pathTo(v2, { cached: caching }); } }; while (true) { Helper.process(base_path + 'generated_testcases.csv', processor); console.log('Round Finished'); } // ////////////////////////////////////////////////////////////////////////////// // / tear down // ////////////////////////////////////////////////////////////////////////////// try { if (graph !== null) { graph.drop(); } } catch (err) { console.error('[FAILED] tear-down failed:' + err); } }