Skip invalid branch of domain without the inverted field

Those branches of the domain should not prevent to compute a proper inverted
domain for the field as the other fields will be fixed later.

issue9200
review311191002
This commit is contained in:
Cédric Krier
2020-04-12 23:21:08 +02:00
parent 7e9e766c5e
commit b1d501ee66
2 changed files with 8 additions and 3 deletions
+4 -1
View File
@@ -2551,6 +2551,9 @@
if (part instanceof DomainInversion.And) {
var part_inversion = part.inverse(symbol, context);
var evaluated = typeof part_inversion == 'boolean';
if (!~part.variables.indexOf(symbol)) {
continue;
}
if (!evaluated) {
result.push(part_inversion);
} else if (part_inversion) {
@@ -2602,7 +2605,7 @@
if (part instanceof DomainInversion.And) {
var part_inversion = part.inverse(symbol, context);
var evaluated = typeof part_inversion == 'boolean';
if (!~this.variables.indexOf(symbol)) {
if (!~part.variables.indexOf(symbol)) {
if (evaluated && part_inversion) {
return true;
}
+4 -2
View File
@@ -2290,7 +2290,8 @@
'domain_inversion(' + JSON.stringify(domain) + ', \'z\', ' +
JSON.stringify(context) + ')');
context = {x: 5, y: 5};
QUnit.strictEqual(domain_inversion(domain, 'z', context), false,
QUnit.ok(compare(domain_inversion(domain, 'z', context),
[['z', '=', 3]]),
'domain_inversion(' + JSON.stringify(domain) + ', \'z\', ' +
JSON.stringify(context) + ')');
context = {x: 5, y: 7};
@@ -2315,7 +2316,8 @@
'domain_inversion(' + JSON.stringify(domain) + ', \'z\', ' +
JSON.stringify(context) + ')');
context = {y: 5};
QUnit.strictEqual(domain_inversion(domain, 'z', context), false,
QUnit.ok(compare(domain_inversion(domain, 'z', context),
[['z', '=', 3]]),
'domain_inversion(' + JSON.stringify(domain) + ', \'z\', ' +
JSON.stringify(context) + ')');
context = {x: 4, y: 7};