UNPKG

@jscad/modeling

Version:

Constructive Solid Geometry (CSG) Library for JSCAD

75 lines (70 loc) 2.12 kB
const test = require('ava') const { subtract, union } = require('../../../operations/booleans') const square = require('../../../primitives/square') const assignHoles = require('./assignHoles') test('slice: assignHoles() should return a polygon hierarchy', (t) => { const exp1 = [{ solid: [ [-3.000013333333334, -3.000013333333334], [3.000013333333334, -3.000013333333334], [3.000013333333334, 3.000013333333334], [-3.000013333333334, 3.000013333333334] ], holes: [[ [-1.9999933333333335, 1.9999933333333335], [1.9999933333333335, 1.9999933333333335], [1.9999933333333335, -1.9999933333333335], [-1.9999933333333335, -1.9999933333333335] ]] }] const geometry = subtract( square({ size: 6 }), square({ size: 4 }) ) const obs1 = assignHoles(geometry) t.deepEqual(obs1, exp1) }) test('slice: assignHoles() should handle nested holes', (t) => { const geometry = union( subtract( square({ size: 6 }), square({ size: 4 }) ), subtract( square({ size: 10 }), square({ size: 8 }) ) ) const obs1 = assignHoles(geometry) const exp1 = [ { solid: [ [-3.0000006060444444, -3.0000006060444444], [3.0000006060444444, -3.0000006060444444], [3.0000006060444444, 3.0000006060444444], [-3.0000006060444444, 3.0000006060444444] ], holes: [[ [-2.0000248485333336, 2.0000248485333336], [2.0000248485333336, 2.0000248485333336], [2.0000248485333336, -2.0000248485333336], [-2.0000248485333336, -2.0000248485333336] ]] }, { solid: [ [-5.000025454577778, -5.000025454577778], [5.000025454577778, -5.000025454577778], [5.000025454577778, 5.000025454577778], [-5.000025454577778, 5.000025454577778] ], holes: [[ [-3.9999763635555556, 3.9999763635555556], [3.9999763635555556, 3.9999763635555556], [3.9999763635555556, -3.9999763635555556], [-3.9999763635555556, -3.9999763635555556] ]] } ] t.deepEqual(obs1, exp1) })