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
JavaScript
"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