UNPKG

connection-scan-algorithm

Version:
93 lines (92 loc) 3.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const GtfsLoader_1 = require("./gtfs/GtfsLoader"); const TimeParser_1 = require("./gtfs/TimeParser"); const ConnectionScanAlgorithm_1 = require("./csa/ConnectionScanAlgorithm"); const ScanResultsFactory_1 = require("./csa/ScanResultsFactory"); const DepartAfterQuery_1 = require("./query/DepartAfterQuery"); const JourneyFactory_1 = require("./journey/JourneyFactory"); const queries = [ [["MRF", "LVC", "LVJ", "LIV"], ["NRW"]], [["TBW", "PDW"], ["HGS"]], [["PDW", "MRN"], ["LVC", "LVJ", "LIV"]], [["PDW", "AFK"], ["NRW"]], [["PDW"], ["BHM", "BMO", "BSW", "BHI"]], [["PNZ"], ["DIS"]], [["YRK"], ["DIS"]], [["WEY"], ["RDG"]], [["YRK"], ["NRW"]], [["BHM", "BMO", "BSW", "BHI"], ["MCO", "MAN", "MCV", "EXD"]], [["BHM", "BMO", "BSW", "BHI"], ["EDB"]], [["COV", "RUG"], ["MAN", "MCV"]], [["YRK"], ["MCO", "MAN", "MCV", "EXD"]], [["STA"], ["PBO"]], [["PNZ"], ["EDB"]], [["RDG"], ["IPS"]], [["DVP"], ["BHM", "BMO", "BSW", "BHI"]], [["BXB"], ["DVP"]], [["MCO", "MAN", "MCV", "EXD"], ["CBW", "CBE"]], [ ["MCO", "MAN", "MCV", "EXD"], [ "EUS", "MYB", "STP", "PAD", "BFR", "CTK", "CST", "CHX", "LBG", "WAE", "VIC", "VXH", "WAT", "OLD", "MOG", "KGX", "LST", "FST" ] ], [ ["BHM", "BMO", "BSW", "BHI"], [ "EUS", "MYB", "STP", "PAD", "BFR", "CTK", "CST", "CHX", "LBG", "WAE", "VIC", "VXH", "WAT", "OLD", "MOG", "KGX", "LST", "FST" ] ], [ ["ORP"], [ "EUS", "MYB", "STP", "PAD", "BFR", "CTK", "CST", "CHX", "LBG", "WAE", "VIC", "VXH", "WAT", "OLD", "MOG", "KGX", "LST", "FST" ] ], [ ["EDB"], [ "EUS", "MYB", "STP", "PAD", "BFR", "CTK", "CST", "CHX", "LBG", "WAE", "VIC", "VXH", "WAT", "OLD", "MOG", "KGX", "LST", "FST" ] ], [ ["CBE", "CBW"], [ "EUS", "MYB", "STP", "PAD", "BFR", "CTK", "CST", "CHX", "LBG", "WAE", "VIC", "VXH", "WAT", "OLD", "MOG", "KGX", "LST", "FST" ] ] ]; async function run() { const loader = new GtfsLoader_1.GtfsLoader(new TimeParser_1.TimeParser()); console.time("initial load"); const gtfs = await loader.load(fs.createReadStream("/home/linus/Downloads/gb-rail-latest.zip")); console.timeEnd("initial load"); const csa = new ConnectionScanAlgorithm_1.ConnectionScanAlgorithm(gtfs.connections, gtfs.transfers, new ScanResultsFactory_1.ScanResultsFactory(gtfs.interchange)); const query = new DepartAfterQuery_1.DepartAfterQuery(csa, new JourneyFactory_1.JourneyFactory()); console.time("planning"); const date = new Date(); let numResults = 0; for (let i = 0; i < 3; i++) { for (const [origins, destinations] of queries) { const key = origins.join() + ":" + destinations.join(); console.time(key); const results = query.plan(origins, destinations, date, 36000); console.timeEnd(key); if (results.length === 0) { console.log("No results between " + key); } numResults += results.length; } } console.timeEnd("planning"); console.log("Num journeys: " + numResults); console.log(`Memory usage: ${Math.round((process.memoryUsage().heapUsed / 1024 / 1024) * 100) / 100} MB`); } run().catch(e => console.error(e));