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:
+4
-1
@@ -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
@@ -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};
|
||||
|
||||
Reference in New Issue
Block a user