UNPKG

gs-json

Version:

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

345 lines (335 loc) 10.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.test_Model_constructor = test_Model_constructor; exports.test_Model_getGeom = test_Model_getGeom; exports.test_Model_findAttribs = test_Model_findAttribs; exports.test_Model_getAttrib = test_Model_getAttrib; exports.test_Model_addAttrib = test_Model_addAttrib; exports.test_Model_delAttrib = test_Model_delAttrib; exports.test_Model_getGroups = test_Model_getGroups; exports.test_Model_getGroup = test_Model_getGroup; exports.test_Model_addGroup = test_Model_addGroup; exports.test_Model_hasGroup = test_Model_hasGroup; exports.test_Model_delGroup = test_Model_delGroup; exports.test_Model_purgePoints = test_Model_purgePoints; exports.test_Model_purgeNulls = test_Model_purgeNulls; exports.test_Model_validateModel = test_Model_validateModel; exports.test_Model_toJSON = test_Model_toJSON; exports.test_Model_merge = test_Model_merge; var _gsJson = require("./gs-json"); var gs = _interopRequireWildcard(_gsJson); var _arr = require("./libs/arr/arr"); var _test_data = require("./test_data"); var td = _interopRequireWildcard(_test_data); var _gen_test_models = require("./generate/gen_test_models"); var gen = _interopRequireWildcard(_gen_test_models); 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 Model class", function () { it("test_Model_constructor", function () { expect(test_Model_constructor()).toBe(true); }); it("test_Model_getGeom", function () { expect(test_Model_getGeom()).toBe(true); }); it("test_Model_getAttribs", function () { expect(test_Model_findAttribs()).toBe(true); }); it("test_Model_getAttrib", function () { expect(test_Model_getAttrib()).toBe(true); }); it("test_Model_addAttrib", function () { expect(test_Model_addAttrib()).toBe(true); }); it("test_Model_delAttrib", function () { expect(test_Model_delAttrib()).toBe(true); }); it("test_Model_getGroups", function () { expect(test_Model_getGroups()).toBe(true); }); it("test_Model_getGroup", function () { expect(test_Model_getGroup()).toBe(true); }); it("test_Model_addGroup", function () { expect(test_Model_addGroup()).toBe(true); }); it("test_Model_delGroup", function () { expect(test_Model_delGroup()).toBe(true); }); it("test_Model_delGroup", function () { expect(test_Model_hasGroup()).toBe(true); }); it("test_Model_purgePoints", function () { expect(test_Model_purgePoints()).toBe(true); }); it("test_Model_purgeNulls", function () { expect(test_Model_purgeNulls()).toBe(true); }); it("test_Model_validateModel", function () { expect(test_Model_validateModel()).toBe(true); }); it("test_Model_toJSON", function () { expect(test_Model_toJSON()).toBe(true); }); it("test_Model_merge", function () { expect(test_Model_merge()).toBe(true); }); }); // TODO remove function test_Model_constructor() { var model = new gs.Model(td.open_box()); // model with no attribs if (model.getGeom().numObjs() !== 1) { return false; } if (model.getGeom().numPoints() !== 8) { return false; } if (model.getGeom().getObj(0).numFaces() !== 5) { return false; } if (!_arr.Arr.equal(model.getGeom().getObj(0).getFaces()[4].getVertices().map(function (v, i) { return v.getPoint().getID(); }), [5, 6, 7, 4])) { return false; } // model with attribs model = new gs.Model(td.box_with_attribs()); var attribs = model.findAttribs(gs.EGeomType.vertices); if (attribs[0].getName() !== "test2") { return false; } var test3 = model.getTopoAttrib("test3", gs.EGeomType.faces); if (model.getGeom().getObj(0).getFaces()[0].getAttribValue(test3) !== 2.0) { return false; } // model with groups model = new gs.Model(td.box_with_groups()); model.getAllGroups(); var grp = model.getGroup("building_obj"); // save the data to JSON, the read it back again var my_model = new gs.Model(); var group = my_model.addGroup("test"); var myg = my_model.getGeom(); var p1 = myg.addPoint([1, 2, 3]); var p2 = myg.addPoint([4, 5, 6]); var p3 = myg.addPoint([6, 2, 9]); var p4 = myg.addPoint([1, 2, 7]); var p5 = myg.addPoint([5, 6, 3]); p1.addToGroup(group); group.addPoints([p3, p4]); var pline = myg.addPolyline([p1, p2, p3, p4, p5], false); group.addObj(pline); var model_string = my_model.toJSON(); var model_data = JSON.parse(model_string); //console.log("TEST", model_data); var model2 = new gs.Model(model_data); var group2 = model2.getGroup("test"); if (group2 === undefined) { return false; } if (group2.getPoints().length !== 3) { return false; } if (group2.getObjs().length !== 1) { return false; } //console.log("TEST2", model2); return true; } function test_Model_getGeom() { var m = new gs.Model(td.open_box()); var g = m.addGroup("Box"); var f1 = m.getGeom().getObj(0).getFaces()[0]; if (f1.getObjID() !== 0) { return false; } return true; } function test_Model_findAttribs() { var m = new gs.Model(td.box_with_attribs()); var e1 = m.findAttribs(gs.EGeomType.points); var e2 = m.findAttribs(gs.EGeomType.vertices); var e3 = m.findAttribs(gs.EGeomType.faces); var e4 = m.findAttribs(gs.EGeomType.wires); var e5 = m.findAttribs(gs.EGeomType.edges); var e6 = m.findAttribs(gs.EGeomType.objs); if (!(e1[0].getName() === "test1")) { return false; } if (!(e2[0].getName() === "test2")) { return false; } if (!(e3[0].getName() === "faces_id")) { return false; } if (!(e3[1].getName() === "test3")) { return false; } if (!(e4[0].getName() === "wires_id")) { return false; } if (!(e5[0].getName() === "edge_id")) { return false; } if (!(e6[0].getName() === "obj_id")) { return false; } return true; } function test_Model_getAttrib() { var m = new gs.Model(td.box_with_attribs()); var e1 = m.getEntAttrib("test1", gs.EGeomType.points); var e2 = m.getTopoAttrib("test2", gs.EGeomType.vertices); var e3 = m.getTopoAttrib("faces_id", gs.EGeomType.faces); var e3bis = m.getTopoAttrib("test3", gs.EGeomType.faces); var e4 = m.getTopoAttrib("wires_id", gs.EGeomType.wires); var e5 = m.getTopoAttrib("edge_id", gs.EGeomType.edges); var e6 = m.getEntAttrib("obj_id", gs.EGeomType.objs); if (!(e1.getName() === "test1")) { return false; } if (!(e2.getName() === "test2")) { return false; } if (!(e3.getName() === "faces_id")) { return false; } if (!(e3bis.getName() === "test3")) { return false; } if (!(e4.getName() === "wires_id")) { return false; } if (!(e5.getName() === "edge_id")) { return false; } if (!(e6.getName() === "obj_id")) { return false; } return true; } function test_Model_addAttrib() { var m1 = new gs.Model(td.box_with_attribs()); var e1 = m1.getEntAttrib("test1", gs.EGeomType.points); var m2 = new gs.Model(); var e2 = m2.addEntAttrib(e1.getName(), e1.getGeomType(), e1.getDataType()); if (!(e2.getName() === e1.getName())) { return false; } return true; } function test_Model_delAttrib() { var m1 = new gs.Model(td.box_with_attribs()); var a1 = m1.getEntAttrib("test1", gs.EGeomType.points); if (a1.getName() !== "test1") { return false; } if (!m1.delAttrib(a1)) { return false; } if (m1.hasAttrib(a1)) { return false; } return true; } function test_Model_getGroups() { var m = new gs.Model(); if (!_arr.Arr.equal(m.getAllGroups(), [])) { return false; } var g1 = m.addGroup("G1"); var g2 = m.addGroup("G2"); var g3 = m.addGroup("G3"); var G = [g1, g2, g3]; if (m.getAllGroups()[0].getName() !== G[0].getName()) { return false; } if (m.getAllGroups()[1].getName() !== G[1].getName()) { return false; } if (m.getAllGroups()[2].getName() !== G[2].getName()) { return false; } return true; } function test_Model_getGroup() { var m = new gs.Model(td.open_box()); var g = m.addGroup("Box"); // No group in Box if (!(m.getGroup("Alpha") === null)) { return false; } if (!(m.getGroup("Box").getName() === "Box")) { return false; } return true; } function test_Model_addGroup() { var m = new gs.Model(); if (!(m.getGroup("Group1") === null)) { return false; } var g = m.addGroup("Group1"); if (!(m.getGroup("Group1").getName() === "Group1")) { return false; } return true; } function test_Model_hasGroup() { var m = new gs.Model(); var g1 = m.addGroup("First_Group"); if (!m.hasGroup(g1)) { return false; } m.delGroup(g1); if (m.hasGroup(g1)) { return false; } return true; } function test_Model_delGroup() { var m = new gs.Model(); var g1 = m.addGroup("First_Group"); if (!m.hasGroup(g1)) { return false; } m.delGroup(g1); if (m.hasGroup(g1)) { return false; } return true; } function test_Model_purgePoints() { //TODO return true; } function test_Model_purgeNulls() { //TODO return true; } function test_Model_validateModel() { //TODO return true; } function test_Model_toJSON() { var m = new gs.Model(td.open_box()); m.toJSON(); return true; } function test_Model_merge() { var m1 = gen.genModelGroups(); // 3 groups var m2 = gen.genModelGroups(); // 3 groups, same names m1.merge(m2); if (m1.getAllGroups().length !== 3) { return false; } var m3 = gen.genModelGroups(); // 3 groups var m4 = new gs.Model(); var g1 = m4.addGroup("First_Group"); m3.merge(m4); if (m3.getAllGroups().length !== 4) { return false; } return true; } //# sourceMappingURL=_model_tests.js.map