From 4f983b15a17f0499fc497d23edfb8dd6a6972ddf Mon Sep 17 00:00:00 2001 From: David Greenspan Date: Sun, 21 Dec 2014 19:37:33 -0800 Subject: [PATCH] Finish Logic.or --- packages/logic-solver/logic.js | 8 +++++--- packages/logic-solver/logic_tests.js | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/logic-solver/logic.js b/packages/logic-solver/logic.js index 337da15e12..a9f7581cd4 100644 --- a/packages/logic-solver/logic.js +++ b/packages/logic-solver/logic.js @@ -190,6 +190,8 @@ Meteor._inherits(Logic.OrFormula, Logic.Formula); Logic.OrFormula.prototype._genTrue = function (solver) { return [new Logic.Clause(solver._toN(this.terms))]; }; -//Logic.OrFormula.prototype._genFalse = function (solver) { - // XXX -//}; +Logic.OrFormula.prototype._genFalse = function (solver) { + return _.map(this.terms, function (t) { + return [new Logic.Clause(-solver._toN(t))]; + }); +}; diff --git a/packages/logic-solver/logic_tests.js b/packages/logic-solver/logic_tests.js index b801916f4c..c0f0d9a3cb 100644 --- a/packages/logic-solver/logic_tests.js +++ b/packages/logic-solver/logic_tests.js @@ -20,4 +20,6 @@ Tinytest.add("logic-solver - Logic.Or", function (test) { s.require(Logic.or('-c', 'd', 3)); test.equal(s._clauseData(), [[3, 4], [-5, 6, 3]]); + s.forbid(Logic.or('a', '-b')); + test.equal(s._clauseData(), [[3, 4], [-5, 6, 3], [-3], [4]]); });