"use strict" var tape = require("tape") var preprocessPolygon = require("../pnp-big.js") var rpnp = require("robust-point-in-polygon") var sgn = require("signum") tape("point-in-big-polygon", function(t) { var pp0 = preprocessPolygon([ [ [1, 2], [2, 2], [2, 1] ] ], true) t.ok(pp0([2,0]) > 0) t.ok(pp0([1.75,1.75]) < 0) t.ok(pp0([1,1]) > 0) t.ok(pp0([1.5,1.5]) === 0) var classifyPoint = preprocessPolygon([ [ [-11, -10], [-10, 10], [10, 10], [10, -10] ], [ [-1, -1], [1, -1], [1, 1], [-1, 1] ] ], true) t.ok(classifyPoint([0, 0]) > 0) t.ok(classifyPoint([5, 2]) < 0) t.ok(classifyPoint([1, 0]) == 0) t.ok(classifyPoint([-1000, 0]) > 0) function xform(pt, d) { switch(d) { case 0: return pt case 1: return [-pt[1], pt[0]] case 2: return [-pt[0], -pt[1]] case 3: return [pt[1], -pt[0]] } } function verifyPoints(npolygon, points) { for(var d=0; d<4; ++d) { var polygon = npolygon.map(function(pt) { return xform(pt, d) }) var pmc = preprocessPolygon([polygon]) for(var i=0; i