From b977c18a9db60ea5288621bc9dabd667990a8061 Mon Sep 17 00:00:00 2001 From: Val Erastov Date: Tue, 21 Jul 2015 17:19:14 -0700 Subject: [PATCH] extract API for solver --- web/app/sketcher/constr/solver.js | 3 ++- web/app/sketcher/parametric.js | 2 +- web/app/test/testCases.js | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/web/app/sketcher/constr/solver.js b/web/app/sketcher/constr/solver.js index 7c6ff674..69ca96d8 100644 --- a/web/app/sketcher/constr/solver.js +++ b/web/app/sketcher/constr/solver.js @@ -262,7 +262,8 @@ TCAD.parametric.prepare = function(constrs, locked, aux, alg) { } } var systemSolver = { - system : sys, + diagnose : function() {return TCAD.parametric.diagnose(sys)}, + error : function() {return sys.error()}, solveSystem : solve, updateLock : function(values) { for (var i = 0; i < values.length; ++i) { diff --git a/web/app/sketcher/parametric.js b/web/app/sketcher/parametric.js index 9096e956..98d8a3ad 100644 --- a/web/app/sketcher/parametric.js +++ b/web/app/sketcher/parametric.js @@ -60,7 +60,7 @@ TCAD.TWO.ParametricManager.prototype._add = function(constr) { TCAD.TWO.ParametricManager.prototype.checkRedundancy = function (subSystem, constr) { var solver = this.prepareForSubSystem([], subSystem); - if (TCAD.parametric.diagnose(solver.system).conflict) { + if (solver.diagnose().conflict) { alert("Most likely this "+constr.NAME + " constraint is CONFLICTING!") } }; diff --git a/web/app/test/testCases.js b/web/app/test/testCases.js index 1db7c0bf..ed354b3c 100644 --- a/web/app/test/testCases.js +++ b/web/app/test/testCases.js @@ -6,16 +6,16 @@ TCAD.test.cases.roundRect = function() { var ep = APP.viewer.findById(28); var pm = APP.viewer.parametricManager; - _assertEqD(0.00002047865, pm.prepare([]).solvers[0].system.error(), 1e-12); + _assertEqD(0.00002047865, pm.prepare([]).solvers[0].error(), 1e-12); ep.x += 30; var solver = pm.prepare([]).solvers[0]; - _assertEqD(60, solver.system.error(), 0.01); + _assertEqD(60, solver.error(), 0.01); var status = solver.solve(true); - _assertEqD(0.000005, solver.system.error(), 1e-8); + _assertEqD(0.000005, solver.error(), 1e-8); _assertEq(12, status.evalCount); _assertEq(1, status.returnCode); var status = solver.solve(false); - _assertEqD(1.4575007867279055e-10, solver.system.error(), 1e-12); + _assertEqD(1.4575007867279055e-10, solver.error(), 1e-12); _assertEq(20, status.evalCount); _assertEq(1, status.returnCode); };