diff --git a/maker.js/makerjs-tests.ts b/maker.js/makerjs-tests.ts new file mode 100644 index 000000000..f6beb1b06 --- /dev/null +++ b/maker.js/makerjs-tests.ts @@ -0,0 +1,122 @@ +/// + +function test() { + + var makerjs: typeof MakerJs; + + var p1: MakerJs.IPoint = [0, 0]; + var p2: MakerJs.IPoint = [1, 1]; + var paths = testPaths(); + var path: MakerJs.IPath = testPaths[0]; + var arc: MakerJs.IPathArc = testPaths[0]; + var models = testModels(); + var model: MakerJs.IModel = models[0]; + + function testRoot() { + makerjs.extendObject({abc:123}, {xyz:789}); + makerjs.findById(model.paths, 'a'); + makerjs.isModel({}); + makerjs.isPath({}); + makerjs.isPoint([]); + makerjs.pathType.Circle; + makerjs.removeById(models, 'x'); + makerjs.round(44.44444, .01); + makerjs.unitType.Millimeter; + } + + function testAngle() { + makerjs.angle.mirror(45, true, false); + makerjs.angle.noRevolutions(90); + makerjs.angle.ofArcEnd(arc); + makerjs.angle.ofPointInRadians([0,0], [1,1]); + makerjs.angle.toDegrees(Math.PI); + makerjs.angle.toRadians(90); + } + + function testExporter() { + new makerjs.exporter.Exporter({}); + makerjs.exporter.toDXF(model); + makerjs.exporter.toSVG(model); + makerjs.exporter.tryGetModelUnits(model); + } + + function testKit() { + makerjs.kit.construct(null, null); + makerjs.kit.getParameterValues(null); + ({}).max; + ({}).metaParameters; + } + + function testMeasure() { + makerjs.measure.arcAngle(arc); + makerjs.measure.modelExtents(model).high[0]; + makerjs.measure.pathExtents(path).low[0]; + makerjs.measure.pathLength(path); + makerjs.measure.pointDistance([0,0], [9,9]); + } + + function testModel(){ + makerjs.model.mirror(model, false, true); + makerjs.model.move(makerjs.model.originate(model, [9,9]), [0,0]); + makerjs.model.rotate(makerjs.model.scale(model, 6), 45, [0,0]); + } + + function testModels(): MakerJs.IModel[] { + return [ + new makerjs.models.BoltCircle('b', 7, 7, 7, 7), + new makerjs.models.BoltRectangle('c', 2, 2, 2), + new makerjs.models.ConnectTheDots('c', true, [ [0,0], [1,1] ]), + new makerjs.models.GoldenRectangle('g', 7), + new makerjs.models.Oval('g', 7, 7), + new makerjs.models.OvalArc('o', 6, 4, 2, 12), + new makerjs.models.Polygon('p', 7, 5), + new makerjs.models.Rectangle('r', 8, 9), + new makerjs.models.Ring('r', 7, 7), + new makerjs.models.RoundRectangle('r', 2, 2, 0), + new makerjs.models.SCurve('s', 5, .9), + new makerjs.models.Square('s', 8) + ]; + } + + function testPath() { + makerjs.path.mirror(path, true, true); + makerjs.path.moveRelative(path, [0,0]); + makerjs.path.rotate(path, 5, [0,0]); + makerjs.path.scale(path, 8); + } + + function testPaths(): MakerJs.IPath[] { + return [ + new makerjs.paths.Arc('a', [0,0], 7, 0, 180), + new MakerJs.paths.Circle('c', [0,0], 5), + new makerjs.paths.Line('l', [0,0], [1,1]) + ]; + } + + function testPoint() { + makerjs.point.add(p1, p2); + makerjs.point.areEqual(p1, p2); + makerjs.point.clone(p1); + makerjs.point.fromArc(arc); + makerjs.point.fromPolar(Math.PI, 7); + makerjs.point.mirror(p1, true, false); + makerjs.point.rotate(p1, 5, p2); + makerjs.point.scale(p2, 8); + makerjs.point.subtract(p2, p1); + makerjs.point.zero(); + } + + function testTools() { + makerjs.tools.breakPath(path, .7)[0].newPath.cssStyle; + makerjs.tools.bridgeGaps([p1, p2], [p1, p2]); + makerjs.tools.gapPath(model, 'a', 7, .7); + makerjs.tools.pathIntersection(path, arc).intersectionPoints; + makerjs.tools.solveTriangleASA(4, 4, 4); + makerjs.tools.solveTriangleSSS(9, 9, 9); + } + + function testUnits() { + makerjs.units.conversionScale(makerjs.unitType.Centimeter, makerjs.unitType.Foot); + } + +} \ No newline at end of file