UNPKG

gs-json

Version:

gs-JSON is a domain agnostic unifying 3D file format for geometric and semantic modelling (hence the 'gs').

465 lines (457 loc) 16.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.test_Groups_constructor = test_Groups_constructor; exports.test_Groups_getName = test_Groups_getName; exports.test_Groups_setName = test_Groups_setName; exports.test_Groups_getParentGroup = test_Groups_getParentGroup; exports.test_Groups_getChildGroups = test_Groups_getChildGroups; exports.test_Groups_setParentGroup = test_Groups_setParentGroup; exports.test_Groups_removeParentGroup = test_Groups_removeParentGroup; exports.test_Groups_getObjIDs = test_Groups_getObjIDs; exports.test_Groups_addObj = test_Groups_addObj; exports.test_Groups_addObjs = test_Groups_addObjs; exports.test_Groups_removeObj = test_Groups_removeObj; exports.test_Groups_removeObjs = test_Groups_removeObjs; exports.test_Groups_getTopos = test_Groups_getTopos; exports.test_Groups_addTopo = test_Groups_addTopo; exports.test_Groups_addTopos = test_Groups_addTopos; exports.test_Groups_removeTopo = test_Groups_removeTopo; exports.test_Groups_removeTopos = test_Groups_removeTopos; exports.test_Groups_getPointIDs = test_Groups_getPointIDs; exports.test_Groups_addPoint = test_Groups_addPoint; exports.test_Groups_addPoints = test_Groups_addPoints; exports.test_Groups_removePoint = test_Groups_removePoint; exports.test_Groups_removePoints = test_Groups_removePoints; exports.test_Groups_getProps = test_Groups_getProps; exports.test_Groups_setProps = test_Groups_setProps; exports.test_Groups_toJson = test_Groups_toJson; var _arr = require("./libs/arr/arr"); var _gsJson = require("./gs-json"); var gs = _interopRequireWildcard(_gsJson); var _test_data = require("./test_data"); var td = _interopRequireWildcard(_test_data); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } describe("Tests for Group class", function () { it("test_Groups_constructor", function () { expect(test_Groups_constructor()).toBe(true); }); it("test_Groups_getName", function () { expect(test_Groups_getName()).toBe(true); }); it("test_Groups_setName", function () { expect(test_Groups_setName()).toBe(true); }); it("test_Groups_getParentGroup", function () { expect(test_Groups_getParentGroup()).toBe(true); }); it("test_Groups_getChildGroups", function () { expect(test_Groups_getChildGroups()).toBe(true); }); it("test_Groups_setParentGroup", function () { expect(test_Groups_setParentGroup()).toBe(true); }); it("test_Groups_removeParentGroup", function () { expect(test_Groups_removeParentGroup()).toBe(true); }); it("test_Groups_getObjIDs", function () { expect(test_Groups_getObjIDs()).toBe(true); }); it("test_Groups_addObj", function () { expect(test_Groups_addObj()).toBe(true); }); it("test_Groups_addObjs", function () { expect(test_Groups_addObjs()).toBe(true); }); it("test_Groups_removeObj", function () { expect(test_Groups_removeObj()).toBe(true); }); it("test_Groups_removeObjs", function () { expect(test_Groups_removeObjs()).toBe(true); }); it("test_Groups_getTopos", function () { expect(test_Groups_getTopos()).toBe(true); }); it("test_Groups_addTopo", function () { expect(test_Groups_addTopo()).toBe(true); }); it("test_Groups_addTopos", function () { expect(test_Groups_addTopos()).toBe(true); }); it("test_Groups_removeTopo", function () { expect(test_Groups_removeTopo()).toBe(true); }); it("test_Groups_removeTopos", function () { expect(test_Groups_removeTopos()).toBe(true); }); it("test_Groups_getPointIDs", function () { expect(test_Groups_getPointIDs()).toBe(true); }); it("test_Groups_addPoint", function () { expect(test_Groups_addPoint()).toBe(true); }); it("test_Groups_addPoints", function () { expect(test_Groups_addPoints()).toBe(true); }); it("test_Groups_removePoint", function () { expect(test_Groups_removePoint()).toBe(true); }); it("test_Groups_removePoints", function () { expect(test_Groups_removePoints()).toBe(true); }); it("test_Groups_getPropeties", function () { expect(test_Groups_getProps()).toBe(true); }); it("test_Groups_setPropeties", function () { expect(test_Groups_setProps()).toBe(true); }); }); // Testing methods the Groups Class, composed of 1 constructor and 17 methods function test_Groups_constructor() { var m = new gs.Model(td.box_with_groups()); return true; } function test_Groups_getName() { var m = new gs.Model(); var grp = m.addGroup("test"); if (grp.getName() !== "test") { return false; } return true; } function test_Groups_setName() { var m = new gs.Model(); var grp = m.addGroup("test1"); grp.setName("test2"); if (grp.getName() !== "test2") { return false; } // if (m.getGroup("test2").getName() !== "test2") {return false; } return true; } function test_Groups_getParentGroup() { var m = new gs.Model(); var grp1 = m.addGroup("test1"); var grp2 = m.addGroup("test2", grp1); // if (grp2.getParentGroup() !== "test1") {return false; } // const grp3: gs.IGroup = m.addGroup("test3"); // const grp4: gs.IGroup = m.addGroup("test4", grp1); // if (grp1.getParentGroup() !== null) {return false; } // if (grp2.getParentGroup() !== "test1") {return false; } // if (grp3.getParentGroup() !== null) {return false; } // if (grp4.getParentGroup() !== "test1") {return false; } return true; } function test_Groups_getChildGroups() { var m = new gs.Model(); var grp1 = m.addGroup("test1"); var grp2 = m.addGroup("test2", grp1); var grp3 = m.addGroup("test3"); var grp4 = m.addGroup("test4", grp1); var grp1_children = grp1.getChildGroups(); if (grp1_children[0].getName() !== "test2") { return false; } if (grp1_children[1].getName() !== "test4") { return false; } if (!_arr.Arr.equal(grp2.getChildGroups(), [])) { return false; } if (!_arr.Arr.equal(grp3.getChildGroups(), [])) { return false; } if (!_arr.Arr.equal(grp4.getChildGroups(), [])) { return false; } return true; } function test_Groups_setParentGroup() { var m = new gs.Model(); var grp1 = m.addGroup("test1"); var grp2 = m.addGroup("test2"); // grp2.setParentGroup("test1"); // if (grp2.getParentGroup() !== "test1") {return false; } return true; } function test_Groups_removeParentGroup() { var m = new gs.Model(); var grp1 = m.addGroup("test1"); var grp2 = m.addGroup("test2"); // if (grp2.getParentGroup() !== null) {return false; } // grp2.setParentGroup("test1"); // if (grp2.getParentGroup() !== "test1") {return false; } // grp2.setParentGroup("test2"); // if (grp2.getParentGroup() !== "test2") {return false; } // grp2.removeParentGroup(); // if (grp2.getParentGroup() !== null) {return false; } return true; } function test_Groups_getObjIDs() { var m = new gs.Model(); var grp = m.addGroup("Group1"); // grp.addObjs([4, 2, 9, 8]); // if (!Arr.equal([4, 2, 9, 8], grp.getObjIDs())) {return false;} return true; } function test_Groups_addObj() { var m = new gs.Model(); var grp = m.addGroup("Group1"); // if (!Arr.equal([], grp.getObjIDs())) {return false;} // grp.addObj(4); // if (!Arr.equal([4], grp.getObjIDs())) {return false;} // grp.addObj(2); // if (!Arr.equal([4, 2], grp.getObjIDs())) {return false;} // grp.addObj(9); // if (!Arr.equal([4, 2, 9], grp.getObjIDs())) {return false;} // grp.addObj(8); // if (!Arr.equal([4, 2, 9, 8], grp.getObjIDs())) {return false;} // grp.addObj(8); // grp.addObj(8); // grp.addObj(8); return true; } function test_Groups_addObjs() { var m = new gs.Model(); var grp = m.addGroup("Group1"); // if (!Arr.equal([], grp.getObjIDs())) {return false;} // grp.addObj(4); // if (!Arr.equal([4], grp.getObjIDs())) {return false;} // grp.addObjs([2, 9, 8]); // if (!Arr.equal([4, 2, 9, 8], grp.getObjIDs())) {return false;} return true; } function test_Groups_removeObj() { var m = new gs.Model(); var grp = m.addGroup("Group1"); // if (!Arr.equal([], grp.getObjIDs())) {return false;} // grp.addObjs([4, 2, 9, 8]); // if (!Arr.equal([4, 2, 9, 8], grp.getObjIDs())) {return false;} // grp.removeObj(2); // if (!Arr.equal([4, 9, 8], grp.getObjIDs())) {return false;} // grp.removeObj(9); // if (!Arr.equal([4, 8], grp.getObjIDs())) {return false;} return true; } function test_Groups_removeObjs() { var m = new gs.Model(); var grp = m.addGroup("Group1"); // if (!Arr.equal([], grp.getObjIDs())) {return false;} // grp.addObjs([4, 2, 9, 8]); // if (!Arr.equal([4, 2, 9, 8], grp.getObjIDs())) {return false;} // grp.removeObjs([4, 9]); // if (!Arr.equal([2, 8], grp.getObjIDs())) {return false;} return true; } function test_Groups_getTopos() { var m = new gs.Model(td.open_box()); var g1 = m.addGroup("Box"); var g2 = m.addGroup("Box2"); if (!_arr.Arr.equal(g1.getTopos(), [])) { return false; } g1.addTopo(m.getGeom().getObj(0).getFaces()[0]); if (_arr.Arr.equal(g1.getTopos(), [])) { return false; } if (!_arr.Arr.equal(g2.getTopos(), [])) { return false; } g2.addTopo(m.getGeom().getObj(0).getWires()[0]); if (_arr.Arr.equal(g2.getTopos(), [])) { return false; } return true; } function test_Groups_addTopo() { var m = new gs.Model(td.open_box()); var g = m.addGroup("Group"); if (!_arr.Arr.equal(g.getTopos(), [])) { return false; } g.addTopo(m.getGeom().getObj(0).getFaces()[0]); if (_arr.Arr.equal(g.getTopos(), [])) { return false; } return true; } function test_Groups_addTopos() { var m = new gs.Model(td.open_box()); var g = m.addGroup("Box"); if (!_arr.Arr.equal(g.getTopos(), [])) { return false; } var f1 = m.getGeom().getObj(0).getFaces()[0]; var f2 = m.getGeom().getObj(0).getFaces()[1]; var f3 = m.getGeom().getObj(0).getFaces()[2]; var w1 = m.getGeom().getObj(0).getWires()[0]; g.addTopos([f1]); if (!g.hasTopo(f1) || g.hasTopo(f2) || g.hasTopo(f3) || g.hasTopo(w1)) { return false; } g.addTopos([f2, f3, w1]); if (!g.hasTopo(f1) || !g.hasTopo(f2) || !g.hasTopo(f3) || !g.hasTopo(w1)) { return false; } return true; } function test_Groups_removeTopo() { var m = new gs.Model(td.open_box()); var g = m.addGroup("Box"); var f1 = m.getGeom().getObj(0).getFaces()[0]; var f2 = m.getGeom().getObj(0).getFaces()[1]; var f3 = m.getGeom().getObj(0).getFaces()[2]; var w1 = m.getGeom().getObj(0).getWires()[0]; if (!_arr.Arr.equal(g.getTopos(), [])) { return false; } g.addTopos([f1, f2, f3, w1]); if (!g.hasTopo(f1) || !g.hasTopo(f2) || !g.hasTopo(f3) || !g.hasTopo(w1)) { return false; } g.removeTopo(f1); if (g.hasTopo(f1) || !g.hasTopo(f2) || !g.hasTopo(f3) || !g.hasTopo(w1)) { return false; } return true; } function test_Groups_removeTopos() { var m = new gs.Model(td.open_box()); var g = m.addGroup("Box"); var f1 = m.getGeom().getObj(0).getFaces()[0]; var f2 = m.getGeom().getObj(0).getFaces()[1]; var f3 = m.getGeom().getObj(0).getFaces()[2]; var w1 = m.getGeom().getObj(0).getWires()[0]; if (!_arr.Arr.equal(g.getTopos(), [])) { return false; } g.addTopos([f1, f2, f3, w1]); if (!g.hasTopo(f1) || !g.hasTopo(f2) || !g.hasTopo(f3) || !g.hasTopo(w1)) { return false; } g.removeTopos([f2, f3, w1]); if (!g.hasTopo(f1) || g.hasTopo(f2) || g.hasTopo(f3) || g.hasTopo(w1)) { return false; } return true; } function test_Groups_getPointIDs() { var m = new gs.Model(td.open_box()); var g = m.addGroup("Box"); // g.addPoints([0, 2, 4]); // if (g.getPointIDs()[1] !== 2) {return false; } return true; } function test_Groups_addPoint() { var m = new gs.Model(td.open_box()); var g = m.addGroup("Box"); var point = m.getGeom().addPoint([11, 22, 33]); // g.addPoint(point.getID()); // if (!(m.getGeom().numPoints() - g.getPointIDs()[0] === 1)) {return false; } return true; } function test_Groups_addPoints() { var m = new gs.Model(td.open_box()); var geom = m.getGeom(); var g1 = m.addGroup("Box1"); var point1 = geom.addPoint([11, 22, 36]); var point2 = geom.addPoint([12, 22, 23]); var point3 = geom.addPoint([14, 32, 33]); g1.addPoints([point2, point1, point3]); if (g1.getPoints().length !== 3) { return false; } // test large numbers of points var g2 = m.addGroup("Box2"); g2.addPoints([point2, point2, point2]); if (g2.getPoints().length !== 1) { return false; } for (var i = 0; i < 100; i++) { g2.addPoint(point2); } if (g2.getPoints().length !== 1) { return false; } // test adding lists var g3 = m.addGroup("Box3"); var points_a = []; var points_b = []; for (var _i = 0; _i < 10; _i++) { points_a.push(geom.addPoint([12, 22, 23])); points_b.push(geom.addPoint([5, 4, 3])); } g3.addPoints(points_a); g3.addPoints(points_b); if (g3.getPoints().length !== 20) { return false; } return true; } function test_Groups_removePoint() { var m = new gs.Model(td.open_box()); var g1 = m.addGroup("Box"); var g2 = m.addGroup("Box"); var point1 = m.getGeom().addPoint([11, 22, 36]); var point2 = m.getGeom().addPoint([12, 22, 23]); var point3 = m.getGeom().addPoint([194, 32, 33]); var point4 = m.getGeom().addPoint([12, 229, 23]); var point5 = m.getGeom().addPoint([11, 22, 369]); // g2.addPoints([point1.getID(), point2.getID(), point3.getID(), point4.getID(), point5.getID()]); // if (!(g2.getPointIDs().length === 5)) {return false; } // g2.removePoint(point2.getID()); // if (!(g2.getPointIDs().length === 4)) {return false; } // g2.removePoint(point3.getID()); // if (!(g2.getPointIDs().length === 3)) {return false; } return true; } function test_Groups_removePoints() { var m = new gs.Model(td.open_box()); var g = m.addGroup("Box"); var point1 = m.getGeom().addPoint([11, 22, 36]); var point2 = m.getGeom().addPoint([12, 22, 23]); var point3 = m.getGeom().addPoint([194, 32, 33]); var point4 = m.getGeom().addPoint([12, 229, 23]); var point5 = m.getGeom().addPoint([11, 22, 369]); // g.addPoints([point1.getID(), point2.getID(), point3.getID(), point4.getID(), point5.getID()]); // if (!(g.getPointIDs().length === 5)) {return false; } // g.removePoints([point2.getID(), point4.getID(), point5.getID()]); // if (!(g.getPointIDs().length === 2)) {return false; } return true; } function test_Groups_getProps() { var m = new gs.Model(td.open_box()); var g = m.addGroup("Box"); return true; } function test_Groups_setProps() { var m = new gs.Model(td.open_box()); var g = m.addGroup("Box"); var a = new Map(); if (!g.getProps() === undefined) { return false; } // a.set("one", 1); //TODO // a.set("two", 2); // a.set("three", 3); // a.set("four", 4); // g.setProps(a); // if (!(g.getProps() === a)) {return false; } return true; } function test_Groups_toJson() { var m1 = new gs.Model(); var g = m1.addGroup("mygrp"); g.setProps([["testing", [123, 456, 789]]]); var j1 = m1.toJSON(); var m2 = new gs.Model(JSON.parse(j1)); var j2 = m2.toJSON(); var m3 = new gs.Model(JSON.parse(j2)); if (m3.getGroup("mygrp").getProps()[0][0] !== "testing") { return false; } console.log(g.toString()); return true; } //# sourceMappingURL=_groups_tests.js.map