new Constraint(expr, ...) == constraint.expression()0ms ‣
var expr = new kiwi.Expression(10);
var cn = new kiwi.Constraint(expr, kiwi.Operator.Eq);
assert.equal(cn.expression(), expr);
new Constraint(..., Operator.Ge, ...) == constraint.op()0ms ‣
var cn = new kiwi.Constraint(new kiwi.Expression(10), kiwi.Operator.Ge);
assert.equal(cn.op(), kiwi.Operator.Ge);
new Constraint(..., ..., ..., Strength.medium) == constraint.strength()0ms ‣
var cn = new kiwi.Constraint(new kiwi.Expression(10), kiwi.Operator.Le, undefined, kiwi.Strength.medium);
assert.equal(cn.strength(), kiwi.Strength.medium);
Optional strength => constraint.strength(): Strength.required0ms ‣
var cn = new kiwi.Constraint(new kiwi.Expression(1), kiwi.Operator.Eq);
assert.equal(cn.strength(), kiwi.Strength.required);
solver.addConstraint() => solver.hasConstraint(): true0ms ‣
var cn = new kiwi.Constraint(new kiwi.Expression(1, -1), kiwi.Operator.Eq);
assert(!solver.hasConstraint(cn));
solver.addConstraint(cn);
assert(solver.hasConstraint(cn));
solver.removeConstraint() => solver.hasConstraint(): false0ms ‣
var cn = new kiwi.Constraint(new kiwi.Expression(1, -1), kiwi.Operator.Eq);
assert(!solver.hasConstraint(cn));
solver.addConstraint(cn);
assert(solver.hasConstraint(cn));
solver.removeConstraint(cn);
assert(!solver.hasConstraint(cn));
solver.addConstraint() 2x => throw exception: "duplicate constraint"0ms ‣
var cn = new kiwi.Constraint(new kiwi.Expression(1, -1), kiwi.Operator.Eq);
solver.addConstraint(cn);
try {
solver.addConstraint(cn);
assert(false);
} catch(err) {
assert.equal(err.message, 'duplicate constraint');
}
solver.addConstraint() 2x => throw exception: "unsatisfiable constraint"0ms ‣
var cn = new kiwi.Constraint(new kiwi.Expression(1, -1, 10), kiwi.Operator.Eq);
try {
solver.addConstraint(cn);
assert(false);
} catch(err) {
assert.equal(err.message, 'unsatisfiable constraint');
}
solver.addConstraint() 2x => throw exception: "unsatisfiable constraint"1ms ‣
solver = new kiwi.Solver();
var width = new kiwi.Variable();
var width2 = new kiwi.Variable();
var cn = new kiwi.Constraint(new kiwi.Expression(width, 100), kiwi.Operator.Eq);
solver.addConstraint(cn);
cn = new kiwi.Constraint(new kiwi.Expression(width2, 100), kiwi.Operator.Eq);
solver.addConstraint(cn);
try {
cn = new kiwi.Constraint(new kiwi.Expression(width, width2), kiwi.Operator.Eq);
solver.addConstraint(cn);
assert(false);
} catch(err) {
assert.equal(err.message, 'unsatisfiable constraint');
}