X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.interop%2Fsrc%2Forg%2Fsimantics%2Finterop%2Ftest%2FGraphComparator.java;h=d24509395633f7471114302a9815d2a66ed108eb;hb=fe0bc70df73b9c49e6bbcf39c6787a0c57d10851;hp=15b8c2c7e3cb1ef764e8e5915db059d49cabfc90;hpb=b8697e9995610157c2a065ea545d42545b76559d;p=simantics%2Finterop.git diff --git a/org.simantics.interop/src/org/simantics/interop/test/GraphComparator.java b/org.simantics.interop/src/org/simantics/interop/test/GraphComparator.java index 15b8c2c..d245093 100644 --- a/org.simantics.interop/src/org/simantics/interop/test/GraphComparator.java +++ b/org.simantics.interop/src/org/simantics/interop/test/GraphComparator.java @@ -797,8 +797,6 @@ public class GraphComparator { } private void addComparable(Resource left, Resource right) throws DatabaseException { - if (left.getResourceId() == 225745 || right.getResourceId() == 225745) - System.out.println(); if(!comparableResources.contains(left, right)) { if (comparableResources.containsLeft(left)||comparableResources.containsRight(right)) { throw new DatabaseException("Comparator error: Trying to map " + left + " to " + right + " while mappings " + left + " to " + comparableResources.getRight(left) + " and " + comparableResources.getLeft(right) + " to " + right + " exist."); @@ -1254,23 +1252,32 @@ public class GraphComparator { case 0:{ boolean b1 = g.hasValue(s1.getObject()); boolean b2 = g.hasValue(s2.getObject()); + boolean a1 = s1.isAsserted(r1); + boolean a2 = s2.isAsserted(r2); if (b1 == b2) { if (b1) { // Literals boolean eq = compareValue(g,b,s1.getObject(), s2.getObject()); if (!eq) { addModification(r1,s1,r2,s2); - if (!s1.isAsserted(r1) && !s2.isAsserted(r2)) + if (!a1 && !a2) addComparable(s1, s2); } } else { // Non literal properties. if (comparator.compare(g, s1.getObject(), s2.getObject()) != ResourceComparator.NO_MATCH) { - if (!s1.getObject().equals(s1.getSubject()) && !s2.getObject().equals(s2.getSubject())) - // TODO compare props matches objects, so this is questionable. - compareProps(s1.getObject(), s2.getObject()); - else + if (!s1.getObject().equals(s1.getSubject()) && !s2.getObject().equals(s2.getSubject())) { + if (!a1 && !a2) { + // compare props matches objects, so we can call that only for non asserted statements + compareProps(s1.getObject(), s2.getObject()); + } else if (a1 && a2) { + // TODO : compare asserted statements? + } else { + addModification(r1,s1,r2,s2); + } + } else { addModification(r1,s1,r2,s2); + } } else { addModification(r1,s1,r2,s2); }