UNPKG

ridematcher

Version:
346 lines (344 loc) 10.4 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for build/index.js</title> <meta charset="utf-8"> <link rel="stylesheet" href="../prettify.css"> <link rel="stylesheet" href="../base.css"> <style type='text/css'> div.coverage-summary .sorter { background-image: url(../sort-arrow-sprite.png); } </style> </head> <body> <div class="header high"> <h1>Code coverage report for <span class="entity">build/index.js</span></h1> <h2> Statements: <span class="metric">97.56% <small>(40 / 41)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Branches: <span class="metric">75% <small>(9 / 12)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Functions: <span class="metric">100% <small>(5 / 5)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Lines: <span class="metric">100% <small>(38 / 38)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp; </h2> <div class="path"><a href="../index.html">All files</a> &#187; <a href="index.html">build/</a> &#187; index.js</div> </div> <div class="body"> <pre><table class="coverage"> <tr><td class="line-count">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1000</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1000</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1000</span> <span class="cline-any cline-yes">1000</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1000</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1000</span> <span class="cline-any cline-yes">3224</span> <span class="cline-any cline-yes">3224</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">3224</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">2224</span> <span class="cline-any cline-yes">2224</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">724</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">724</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1000</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict'; &nbsp; var _Promise = require('babel-runtime/core-js/promise')['default']; &nbsp; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; &nbsp; Object.defineProperty(exports, '__esModule', { value: true }); exports.findMatches = findMatches; &nbsp; var _rbush = require('rbush'); &nbsp; var _rbush2 = _interopRequireDefault(_rbush); &nbsp; var _turfDestination = require('turf-destination'); &nbsp; var _turfDestination2 = _interopRequireDefault(_turfDestination); &nbsp; var _turfDistance = require('turf-distance'); &nbsp; var _turfDistance2 = _interopRequireDefault(_turfDistance); &nbsp; var _turfPoint = require('turf-point'); &nbsp; var _turfPoint2 = _interopRequireDefault(_turfPoint); &nbsp; /** * Make a SOAP request to [Commuter Connections](http://www.commuterconnections.org/) to get the number of carpools available for a given starting, ending location, and search radius. * * @param {Object} opts Options object * @returns {Promise} promise * @example * import {findMatches} from 'commuter-connections' * findMatches({ * commuters: [{ * _id: 1, * coordinates: [-77.4875, 39.0436] * }], { * radius: .5, * units: 'miles' * }}).then((matches) =&gt; { * console.log(matches) // map of commuter id's to matching commuter id's * }, handleError) */ &nbsp; function findMatches(commuters) { var opts = arguments[1] === undefined ? <span class="branch-0 cbranch-no" title="branch not covered" >{} </span>: arguments[1]; &nbsp; return new _Promise(function (resolve, reject) { <span class="missing-if-branch" title="if path not taken" >I</span>if (!commuters) <span class="cstat-no" title="statement not covered" >return reject('No commuters.');</span> &nbsp; var tree = (0, _rbush2['default'])(); tree.load(commuters.map(function (c) { return [c.coordinates[0], c.coordinates[1], c.coordinates[0], c.coordinates[1], c]; })); &nbsp; var responses = []; var RADIUS = opts.radius || <span class="branch-1 cbranch-no" title="branch not covered" >0.25;</span> var DIST = RADIUS * Math.sqrt(2); var UNITS = opts.units || 'miles'; &nbsp; commuters.forEach(function (commuter) { var fromPoint = (0, _turfPoint2['default'])(commuter.coordinates); &nbsp; // construct bbox var bottomLeft = (0, _turfDestination2['default'])(fromPoint, DIST, -135, UNITS); var topRight = (0, _turfDestination2['default'])(fromPoint, DIST, 45, UNITS); &nbsp; // do the initial bbox search var results = tree.search(bottomLeft.geometry.coordinates.concat(topRight.geometry.coordinates)); &nbsp; // filter the matches var matches = results.reduce(function (matches, result) { var match = result[4]._id; var matchPoint = (0, _turfPoint2['default'])([result[0], result[1]]); &nbsp; // ignore self match if (match === commuter._id) return matches; &nbsp; // ignore matches where distance exceeds search radius var distance = (0, _turfDistance2['default'])(fromPoint, matchPoint); if (distance &gt; RADIUS) return matches; &nbsp; matches.push({ _id: match, distance: distance }); return matches; }, []); &nbsp; responses.push({ _id: commuter._id, matches: matches }); }); &nbsp; resolve(responses); }); } &nbsp;</pre></td></tr> </table></pre> </div> <div class="footer"> <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Mon Jun 29 2015 15:21:04 GMT+0200 (CEST)</div> </div> <script src="../prettify.js"></script> <script> window.onload = function () { if (typeof prettyPrint === 'function') { prettyPrint(); } }; </script> <script src="../sorter.js"></script> </body> </html>