const test = require('ava'); const LayoutEngine = require('./layout-engine'); const n = (x, y) => ({ x, y }); test('nodesIntersect', t => { const l = new LayoutEngine(); const { size, margin } = l; const true_ = (x1, y1, x2, y2) => t.true(l.nodesIntersect(n(x1, y1), n(x2, y2))); const false_ = (x1, y1, x2, y2) => t.false(l.nodesIntersect(n(x1, y1), n(x2, y2))); [ [ 0, 0 ], [ 500, 500 ], [ -500, -500 ], ].forEach(([ x0, y0 ]) => { true_(x0, y0, x0, y0); false_(x0, y0, x0 + size + margin, y0); false_(x0, y0, x0, y0 + size + margin); true_(x0, y0, x0 + size + margin - 1, y0); true_(x0, y0, x0, y0 + size + margin - 1); true_(x0, y0, x0 + size + margin - 1, y0 + size + margin - 1); }); });