@jscad/modeling
Version:
Constructive Solid Geometry (CSG) Library for JSCAD
104 lines (86 loc) • 2.49 kB
JavaScript
const test = require('ava')
const { triangle } = require('./index')
const degToRad = require('../utils/degToRad')
const geom2 = require('../geometries/geom2')
const { TAU } = require('../maths/constants')
const comparePoints = require('../../test/helpers/comparePoints')
test('triangle (defaults)', (t) => {
const geometry = triangle()
const obs = geom2.toPoints(geometry)
const exp = [
[ ],
[ ],
[ ]
]
t.notThrows(() => geom2.validate(geometry))
t.deepEqual(obs.length, 3)
t.true(comparePoints(obs, exp))
})
test('triangle (options)', (t) => {
// test SSS
let geometry = triangle({ type: 'SSS', values: [7, 8, 6] })
let obs = geom2.toPoints(geometry)
let exp = [
[ ],
[ ],
[ ]
]
t.notThrows(() => geom2.validate(geometry))
t.deepEqual(obs.length, 3)
t.true(comparePoints(obs, exp))
// test AAA
geometry = triangle({ type: 'AAA', values: [TAU / 4, TAU / 8, TAU / 8] })
obs = geom2.toPoints(geometry)
exp = [
[ ],
[ ],
[ ]
]
t.notThrows(() => geom2.validate(geometry))
t.deepEqual(obs.length, 3)
t.true(comparePoints(obs, exp))
// test AAS
geometry = triangle({ type: 'AAS', values: [degToRad(62), degToRad(35), 7] })
obs = geom2.toPoints(geometry)
exp = [
[ ],
[ ],
[ ]
]
t.notThrows(() => geom2.validate(geometry))
t.deepEqual(obs.length, 3)
t.true(comparePoints(obs, exp))
// test ASA
geometry = triangle({ type: 'ASA', values: [degToRad(76), 9, degToRad(34)] })
obs = geom2.toPoints(geometry)
exp = [
[ ],
[ ],
[ ]
]
t.notThrows(() => geom2.validate(geometry))
t.deepEqual(obs.length, 3)
t.true(comparePoints(obs, exp))
// test SAS
geometry = triangle({ type: 'SAS', values: [5, degToRad(49), 7] })
obs = geom2.toPoints(geometry)
exp = [
[ ],
[ ],
[ ]
]
t.notThrows(() => geom2.validate(geometry))
t.deepEqual(obs.length, 3)
t.true(comparePoints(obs, exp))
// test SSA
geometry = triangle({ type: 'SSA', values: [8, 13, degToRad(31)] })
obs = geom2.toPoints(geometry)
exp = [
[ ],
[ ],
[ ]
]
t.notThrows(() => geom2.validate(geometry))
t.deepEqual(obs.length, 3)
t.true(comparePoints(obs, exp))
})