changeset 1d8847b18d1a in sao:5.4
details: https://hg.tryton.org/sao?cmd=changeset;node=1d8847b18d1a
description:
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
(grafted from 505aa0836b25cfeaf8818862c2cff24817cfbfdc)
diffstat:
src/common.js | 5 ++++-
tests/sao.js | 6 ++++--
2 files changed, 8 insertions(+), 3 deletions(-)
diffs (45 lines):
diff -r 2957c92409e6 -r 1d8847b18d1a src/common.js
--- a/src/common.js Fri Apr 10 18:32:55 2020 +0200
+++ b/src/common.js Sun Apr 12 23:21:08 2020 +0200
@@ -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;
}
diff -r 2957c92409e6 -r 1d8847b18d1a tests/sao.js
--- a/tests/sao.js Fri Apr 10 18:32:55 2020 +0200
+++ b/tests/sao.js Sun Apr 12 23:21:08 2020 +0200
@@ -2241,7 +2241,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};
@@ -2266,7 +2267,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};