'use strict' var tape = require('tape') var orient = require('robust-orientation') var monotone = require('../lib/monotone') var verifyTriangulation = require('./verify-triangulation') tape('monotone triangulation - grids', function(t) { function grid(nx, ny) { console.log('test grid:', nx, ny) var points = [] for(var i=0; i<nx; ++i) { for(var j=0; j<ny; ++j) { points.push([i/10,j/10]) } } verifyTriangulation(t, points, [], monotone(points, [])) var edge = [ 0, 0 ] for(var i=0; i<points.length; ++i) { j_loop: for(var j=0; j<i; ++j) { edge[0] = i edge[1] = j for(var k=0; k<points.length; ++k) { if(k !== i && k !== j && orient(points[i], points[k], points[k]) === 0) { continue j_loop } } verifyTriangulation(t, points, [ edge ] , monotone(points, [edge])) } } } grid(2, 2) grid(3, 3) grid(3, 3) grid(5, 5) grid(10, 10) grid(2, 10) grid(10, 2) grid(3, 10) grid(10, 3) grid(1, 10) grid(10, 1) t.end() })