diff --git a/src/main/java/org/variantsync/diffdetective/diff/git/GitDiffer.java b/src/main/java/org/variantsync/diffdetective/diff/git/GitDiffer.java index a79f8936a..600519c76 100644 --- a/src/main/java/org/variantsync/diffdetective/diff/git/GitDiffer.java +++ b/src/main/java/org/variantsync/diffdetective/diff/git/GitDiffer.java @@ -111,14 +111,12 @@ public static CommitDiffResult createCommitDiff( final CanonicalTreeParser currentTreeParser = new CanonicalTreeParser(); final CanonicalTreeParser prevTreeParser = new CanonicalTreeParser(); try (ObjectReader reader = repository.getGitRepo().getRepository().newObjectReader()) { - try { - currentTreeParser.reset(reader, childCommit.getTree()); - if (parentCommit != null) { - prevTreeParser.reset(reader, parentCommit.getTree()); - } - } catch (IOException e) { - return CommitDiffResult.Failure(DiffError.JGIT_ERROR, e.toString()); + currentTreeParser.reset(reader, childCommit.getTree()); + if (parentCommit != null) { + prevTreeParser.reset(reader, parentCommit.getTree()); } + } catch (IOException e) { + return CommitDiffResult.Failure(DiffError.JGIT_ERROR, e.toString()); } final AbstractTreeIterator parentTreeIterator; diff --git a/src/main/java/org/variantsync/diffdetective/gumtree/VariationDiffAdapter.java b/src/main/java/org/variantsync/diffdetective/gumtree/VariationDiffAdapter.java index b05d8b6aa..d0fbb8728 100644 --- a/src/main/java/org/variantsync/diffdetective/gumtree/VariationDiffAdapter.java +++ b/src/main/java/org/variantsync/diffdetective/gumtree/VariationDiffAdapter.java @@ -22,6 +22,7 @@ public VariationDiffAdapter(Projection node) { super(node); } + @Override protected VariationTreeAdapter newInstance(VariationNode node) { return new VariationDiffAdapter<>(Cast.unchecked(node)); } diff --git a/src/main/java/org/variantsync/diffdetective/gumtree/VariationTreeAdapter.java b/src/main/java/org/variantsync/diffdetective/gumtree/VariationTreeAdapter.java index cf85482da..a37a5dce6 100644 --- a/src/main/java/org/variantsync/diffdetective/gumtree/VariationTreeAdapter.java +++ b/src/main/java/org/variantsync/diffdetective/gumtree/VariationTreeAdapter.java @@ -2,8 +2,10 @@ import java.util.ArrayList; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.Map.Entry; import java.util.stream.Collectors; +import java.util.stream.Stream; import org.variantsync.diffdetective.variation.Label; import org.variantsync.diffdetective.variation.tree.VariationNode; @@ -24,15 +26,17 @@ public class VariationTreeAdapter extends AbstractTree { private String cachedLabel; private VariationNode backingNode; + private LinkedHashMap metadata; public VariationTreeAdapter(VariationNode node) { this.backingNode = node; + this.metadata = new LinkedHashMap<>(); - if (backingNode.isConditionalAnnotation()) { - cachedLabel = backingNode.getFormula().toString(); - } else { - cachedLabel = backingNode.getLabel().getLines().stream().collect(Collectors.joining("\n")); - } + cachedLabel = + Stream.concat( + backingNode.getLabel().getLines().stream(), + backingNode.getLabel().getTrailingLines().stream() + ).collect(Collectors.joining("\n")); var children = new ArrayList(node.getChildren().size()); for (var child : node.getChildren()) { @@ -41,7 +45,7 @@ public VariationTreeAdapter(VariationNode node) { setChildren(children); } - protected VariationTreeAdapter newInstance(VariationNode node) { + protected VariationTreeAdapter newInstance(VariationNode node) { return new VariationTreeAdapter<>(node); } @@ -65,12 +69,12 @@ public int getLength() { @Override public Iterator> getMetadata() { - throw new UnsupportedOperationException(); + return metadata.entrySet().iterator(); } @Override - public Object getMetadata(String arg0) { - throw new UnsupportedOperationException(); + public Object getMetadata(String key) { + return metadata.get(key); } /** @@ -97,8 +101,8 @@ public void setLength(int length) { } @Override - public Object setMetadata(String name, Object value) { - throw new UnsupportedOperationException(); + public Object setMetadata(String key, Object value) { + return metadata.put(key, value); } @Override diff --git a/src/main/java/org/variantsync/diffdetective/util/Assert.java b/src/main/java/org/variantsync/diffdetective/util/Assert.java index bf74c7c93..504d111a0 100644 --- a/src/main/java/org/variantsync/diffdetective/util/Assert.java +++ b/src/main/java/org/variantsync/diffdetective/util/Assert.java @@ -86,7 +86,7 @@ public static void assertFalse(boolean condition, String errorMessage) { } /** Throws {@link AssertionError} with {@code errorMessage} as error message. */ - public static void fail(String errorMessage) { + public static T fail(String errorMessage) { throw new AssertionError(errorMessage); } @@ -105,12 +105,18 @@ public static void assertNull(Object o) { } public static void assertEquals(T expected, T actual) { + assertEquals(expected, actual, null); + } + + public static void assertEquals(T expected, T actual, String message) { + String prefix = message == null ? "" : message + ": "; + if (expected == null) { if (actual != null) { - fail("expected is null but actual is not!"); + fail(prefix + "expected is null but actually it is " + actual); } } else { - assertTrue(expected.equals(actual), expected + " != " + actual); + assertTrue(expected.equals(actual), prefix + expected + " != " + actual); } } } diff --git a/src/main/java/org/variantsync/diffdetective/variation/DiffLinesLabel.java b/src/main/java/org/variantsync/diffdetective/variation/DiffLinesLabel.java index 54a1f194e..c03efa287 100644 --- a/src/main/java/org/variantsync/diffdetective/variation/DiffLinesLabel.java +++ b/src/main/java/org/variantsync/diffdetective/variation/DiffLinesLabel.java @@ -2,12 +2,14 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; import org.variantsync.diffdetective.diff.text.DiffLineNumber; import org.variantsync.diffdetective.util.Assert; import org.variantsync.diffdetective.util.StringUtils; +import org.variantsync.diffdetective.variation.diff.Time; import org.variantsync.diffdetective.variation.diff.VariationDiff; // For Javadoc /** @@ -82,6 +84,66 @@ public List getTrailingLines() { return getDiffTrailingLines().stream().map(Line::content).toList(); } + /** + * Returns a deep copy where the line numbers at {@code time} are set to + * {@link DiffLineNumber#InvalidLineNumber}. + */ + @Override + public DiffLinesLabel withoutTimeDependentState(Time time) { + return new DiffLinesLabel( + mapWithoutTimeDependentState(getDiffLines(), time), + mapWithoutTimeDependentState(getDiffTrailingLines(), time) + ); + } + + private List mapWithoutTimeDependentState(List lines, Time time) { + return lines + .stream() + .map(line -> new Line( + line.content(), + line.lineNumber().withLineNumberAtTime(DiffLineNumber.InvalidLineNumber, time) + )) + .toList(); + } + + /** + * Returns a deep copy where the line numbers at {@code time} are copied from + * {@code otherLabel}. The number of lines and their content must be identical in {@code this} + * and {@code otherLabel}. + * + * @see withoutTimeDependentState + */ + @Override + public DiffLinesLabel withTimeDependentStateFrom(Label otherLabel, Time time) { + DiffLinesLabel other = (DiffLinesLabel) otherLabel; + + return new DiffLinesLabel( + zipWithTimeDependentStateFrom(this.getDiffLines(), other.getDiffLines(), time), + zipWithTimeDependentStateFrom(this.getDiffTrailingLines(), other.getDiffTrailingLines(), time) + ); + } + + private static List zipWithTimeDependentStateFrom(List linesA, List linesB, Time time) { + List result = new ArrayList<>(linesA.size()); + + Iterator itA = linesA.iterator(); + Iterator itB = linesA.iterator(); + while (itA.hasNext() && itB.hasNext()) { + Line lineA = itA.next(); + Line lineB = itB.next(); + + Assert.assertEquals(lineA.content(), lineB.content(), "Mismatching line contents in a call to `withTimeDependentStateFrom` detected"); + result.add(new Line( + lineA.content(), + lineB.lineNumber().withLineNumberAtTime(lineB.lineNumber().atTime(time), time) + )); + } + + Assert.assertFalse(itA.hasNext() || itB.hasNext(), "Mismatching line counts in a call to `withTimeDependentStateFrom` detected"); + + return result; + } + @Override public String toString() { return lines diff --git a/src/main/java/org/variantsync/diffdetective/variation/Label.java b/src/main/java/org/variantsync/diffdetective/variation/Label.java index 4c4bb6e94..1250497e6 100644 --- a/src/main/java/org/variantsync/diffdetective/variation/Label.java +++ b/src/main/java/org/variantsync/diffdetective/variation/Label.java @@ -2,6 +2,8 @@ import java.util.List; +import org.variantsync.diffdetective.util.Assert; +import org.variantsync.diffdetective.variation.diff.Time; import org.variantsync.diffdetective.variation.diff.VariationDiff; // For Javadoc import org.variantsync.diffdetective.variation.tree.VariationTree; // For Javadoc @@ -19,6 +21,29 @@ public interface Label { * For example, {@code #endif}s are stored as trailing lines. */ List getTrailingLines(); + + /** + * Returns a deep copy where the state that is only valid at {@code time} is set to its default + * value. Note that not all implementations need to have time dependent state. + * + * @see withTimeDependentStateFrom + */ + default Label withoutTimeDependentState(Time time) { + return this.clone(); + } + + /** + * Returns a deep copy where the state that is only valid at {@code time} is copied from + * {@code other}. All time independent state must be equal in {@code this} and {@code other}. + * Note that not all implementations need to have time dependent state. + * + * @see withoutTimeDependentState + */ + default Label withTimeDependentStateFrom(Label other, Time time) { + Assert.assertEquals(this, other); + return this.clone(); + } + /** * Creates a deep copy of this label. */ diff --git a/src/main/java/org/variantsync/diffdetective/variation/diff/DiffNode.java b/src/main/java/org/variantsync/diffdetective/variation/diff/DiffNode.java index ee73be7da..f0f05f13c 100644 --- a/src/main/java/org/variantsync/diffdetective/variation/diff/DiffNode.java +++ b/src/main/java/org/variantsync/diffdetective/variation/diff/DiffNode.java @@ -13,7 +13,6 @@ import org.variantsync.diffdetective.variation.tree.VariationNode; import org.variantsync.functjonal.Cast; -import java.lang.reflect.Array; import java.util.*; import java.util.function.Function; import java.util.stream.Stream; @@ -52,31 +51,51 @@ public class DiffNode implements HasNodeType { private Node featureMapping; /** - * The parents {@link DiffNode} before and after the edit. - * This array has to be indexed by {@code Time.ordinal()} - * - * Invariant: Iff {@code getParent(time) != null} then - * {@code getParent(time).getChildOrder(time).contains(this)}. - */ - private DiffNode[] parents = Cast.unchecked(Array.newInstance(DiffNode.class, 2)); + * Bundles all the state that may be different before and after an edit. + * @see at + */ + private static class TimeDependentState { + /** + * The parents {@link DiffNode} before and after the edit. + * This array has to be indexed by {@code Time.ordinal()} + * + * Invariant: Iff {@code getParent(time) != null} then + * {@code getParent(time).getChildOrder(time).contains(this)}. + */ + public DiffNode parent; + + /** + * The children before and after the edit. + * This array has to be indexed by {@code Time.ordinal()} + * + * Invariant: Iff {@code getChildOrder(time).contains(child)} then + * {@code child.getParent(time) == this}. + */ + public List> children; + + /** + * Cache for before and after projections. + * It stores the projection node at each time so that only one instance of {@link Projection} + * per {@link Time} is ever created. This array has to be indexed by {@code Time.ordinal()} + * + *

This field is required to allow identity tests of {@link Projection}s with {@code ==}. + */ + public Projection projection; + + public TimeDependentState() { + parent = null; + children = null; + children = new ArrayList<>(); + projection = null; + } + } - /** - * The children before and after the edit. - * This array has to be indexed by {@code Time.ordinal()} - * - * Invariant: Iff {@code getChildOrder(time).contains(child)} then - * {@code child.getParent(time) == this}. - */ - private final List>[] children = Cast.unchecked(Array.newInstance(List.class, 2)); + private final TimeDependentState stateBefore = new TimeDependentState(); + private final TimeDependentState stateAfter = new TimeDependentState(); - /** - * Cache for before and after projections. - * It stores the projection node at each time so that only one instance of {@link Projection} - * per {@link Time} is ever created. This array has to be indexed by {@code Time.ordinal()} - * - *

This field is required to allow identity tests of {@link Projection}s with {@code ==}. - */ - private Projection[] projections = Cast.unchecked(Array.newInstance(Projection.class, 2)); + private TimeDependentState at(Time time) { + return time.match(stateBefore, stateAfter); + } /** * Creates a DiffNode with the given parameters. @@ -104,9 +123,6 @@ public DiffNode(DiffType diffType, NodeType nodeType, public DiffNode(DiffType diffType, DiffLineNumber fromLines, DiffLineNumber toLines, Node featureMapping, VariationLabel label) { - children[BEFORE.ordinal()] = new ArrayList<>(); - children[AFTER.ordinal()] = new ArrayList<>(); - this.diffType = diffType; this.label = label; this.from = fromLines; @@ -267,7 +283,7 @@ public void drop(Time time) { * Returns -1 if the given node is not a child of this node. */ public int indexOfChild(final DiffNode child, Time time) { - return children[time.ordinal()].indexOf(child); + return at(time).children.indexOf(child); } /** @@ -278,8 +294,8 @@ public void insertChild(final DiffNode child, int index, Time time) { Assert.assertFalse(isChild(child, time), () -> "Given child " + child + " already has a " + time + " parent (" + child.getParent(time) + ")!"); - children[time.ordinal()].add(index, child); - child.parents[time.ordinal()] = this; + at(time).children.add(index, child); + child.at(time).parent = this; } /** @@ -291,8 +307,8 @@ public void addChild(final DiffNode child, Time time) { Assert.assertFalse(isChild(child, time), () -> "Given child " + child + " already has a " + time + " parent (" + child.getParent(time) + ")!"); - children[time.ordinal()].add(child); - child.parents[time.ordinal()] = this; + at(time).children.add(child); + child.at(time).parent = this; } /** @@ -315,8 +331,8 @@ public void addChildren(final Collection> children, Time time) { public void removeChild(final DiffNode child, Time time) { Assert.assertTrue(isChild(child, time)); - child.parents[time.ordinal()] = null; - children[time.ordinal()].remove(child); + child.at(time).parent = null; + at(time).children.remove(child); } /** @@ -341,12 +357,12 @@ public void removeChildren(final Collection> childrenToRemove) { * @return All removed children. */ public List> removeChildren(Time time) { - for (var child : children[time.ordinal()]) { - child.parents[time.ordinal()] = null; + for (var child : at(time).children) { + child.at(time).parent = null; } - final List> orphans = children[time.ordinal()]; - children[time.ordinal()] = new ArrayList<>(); + final List> orphans = at(time).children; + at(time).children = new ArrayList<>(); return orphans; } @@ -376,26 +392,58 @@ public DiffNode split(Time time) { getFromLine().as(otherDiffType), getToLine().as(otherDiffType), getFormula(), - Cast.unchecked(label.clone()) + Cast.unchecked(label.withoutTimeDependentState(time.other())) ); this.diffType = otherDiffType.inverse(); this.from = this.from.as(this.diffType); this.to = this.to.as(this.diffType); + this.setLabel(Cast.unchecked(this.getLabel().withoutTimeDependentState(time))); other.addChildren(this.removeChildren(time), time); getParent(time).replaceChild(this, other, time); // Preserve the projection by changing its `backingNode` to `other`. - if (this.projections[time.ordinal()] != null) { - other.projections[time.ordinal()] = this.projections[time.ordinal()]; - this.projections[time.ordinal()] = null; - other.projections[time.ordinal()].backingNode = other; + if (this.at(time).projection != null) { + other.at(time).projection = this.at(time).projection; + this.at(time).projection = null; + other.at(time).projection.backingNode = other; } return other; } + /** + * Merges {@code other} into this node. + * {@code other} is removed from the graph and this node inherits all of its edges. This + * node and {@code other} need to be compatible (exist at different times and have the + * same {@link getNodeType node type} and compatible {@link getLabel labels}). + *

+ * Both {@code this} and {@code other} must not be {@link isRoot the root}. + * + * @param other the node which is removed from the graph + */ + public void join(DiffNode other) { + Time time = switch (diffType) { + case ADD -> BEFORE; + case REM -> AFTER; + case NON -> Assert.fail("Attempt to join a node that already exists at both times."); + }; + Assert.assertEquals(other.diffType, DiffType.thatExistsOnlyAt(time)); + Assert.assertEquals(getNodeType(), other.getNodeType()); + Assert.assertFalse(isRoot()); + Assert.assertFalse(other.isRoot()); + + diffType = DiffType.NON; + setLabel(Cast.unchecked(getLabel().withTimeDependentStateFrom(other.getLabel(), time))); + + setFromLine(getFromLine().withLineNumberAtTime(other.getFromLine().atTime(AFTER), AFTER)); + setToLine(getToLine().withLineNumberAtTime(other.getToLine().atTime(AFTER), AFTER)); + + this.stealChildrenOf(other); + other.getParent(time).replaceChild(other, this, time); + } + /** * Replaces a child of this node with another node. *

@@ -409,11 +457,11 @@ public void replaceChild(DiffNode oldChild, DiffNode newChild, Time time) Assert.assertNull(newChild.getParent(time)); Assert.assertTrue(newChild.getDiffType().existsAtTime(time)); - for (ListIterator> it = children[time.ordinal()].listIterator(); it.hasNext(); ) { + for (ListIterator> it = at(time).children.listIterator(); it.hasNext(); ) { if (it.next() == oldChild) { it.set(newChild); - newChild.parents[time.ordinal()] = oldChild.parents[time.ordinal()]; - oldChild.parents[time.ordinal()] = null; + newChild.at(time).parent = oldChild.at(time).parent; + oldChild.at(time).parent = null; break; } } @@ -423,7 +471,7 @@ public void replaceChild(DiffNode oldChild, DiffNode newChild, Time time) * Returns the parent of this node before or after the edit. */ public DiffNode getParent(Time time) { - return parents[time.ordinal()]; + return at(time).parent; } /** @@ -503,7 +551,7 @@ public void setFormula(Node featureMapping) { * Returns the order of the children at {@code time}. */ public List> getChildOrder(Time time) { - return Collections.unmodifiableList(children[time.ordinal()]); + return Collections.unmodifiableList(at(time).children); } /** @@ -513,8 +561,8 @@ public List> getChildOrder(Time time) { */ public Stream> getAllChildrenStream() { return Stream.concat( - children[BEFORE.ordinal()].stream(), - children[AFTER.ordinal()].stream().filter(child -> child.getParent(BEFORE) != this) + at(BEFORE).children.stream(), + at(AFTER).children.stream().filter(child -> child.getParent(BEFORE) != this) ); }; @@ -578,7 +626,7 @@ public boolean isChild(DiffNode child, Time time) { * Returns true iff this node has no children. */ public boolean isLeaf() { - return children[BEFORE.ordinal()].isEmpty() && children[AFTER.ordinal()].isEmpty(); + return at(BEFORE).children.isEmpty() && at(AFTER).children.isEmpty(); } /** @@ -750,11 +798,11 @@ public void assertConsistency() { public Projection projection(Time time) { Assert.assertTrue(getDiffType().existsAtTime(time)); - if (projections[time.ordinal()] == null) { - projections[time.ordinal()] = new Projection<>(this, time); + if (at(time).projection == null) { + at(time).projection = new Projection<>(this, time); } - return projections[time.ordinal()]; + return at(time).projection; } /** diff --git a/src/main/java/org/variantsync/diffdetective/variation/diff/construction/GumTreeDiff.java b/src/main/java/org/variantsync/diffdetective/variation/diff/construction/GumTreeDiff.java index ecc6377d6..bb0d37309 100644 --- a/src/main/java/org/variantsync/diffdetective/variation/diff/construction/GumTreeDiff.java +++ b/src/main/java/org/variantsync/diffdetective/variation/diff/construction/GumTreeDiff.java @@ -11,6 +11,7 @@ import org.variantsync.diffdetective.util.Assert; import org.variantsync.diffdetective.variation.Label; import org.variantsync.diffdetective.variation.diff.DiffNode; +import org.variantsync.diffdetective.variation.diff.Time; import org.variantsync.diffdetective.variation.diff.VariationDiff; import org.variantsync.diffdetective.variation.diff.source.VariationTreeDiffSource; import org.variantsync.diffdetective.variation.diff.traverse.VariationDiffTraversal; @@ -22,8 +23,6 @@ import java.util.Map; import static org.variantsync.diffdetective.variation.diff.DiffType.ADD; -import static org.variantsync.diffdetective.variation.diff.DiffType.NON; -import static org.variantsync.diffdetective.variation.diff.DiffType.REM; import static org.variantsync.diffdetective.variation.diff.Time.AFTER; import static org.variantsync.diffdetective.variation.diff.Time.BEFORE; @@ -35,10 +34,18 @@ public class GumTreeDiff { * @see diffUsingMatching(VariationNode, VariationNode, Matcher) */ public static VariationDiff diffUsingMatching(VariationTree before, VariationTree after) { + return diffUsingMatching(before, after, Matchers.getInstance().getMatcher()); + } + + /** + * Create a {@link VariationDiff} by matching nodes between {@code before} and {@code after} + * with {@code matcher}. + */ + public static VariationDiff diffUsingMatching(VariationTree before, VariationTree after, Matcher matcher) { DiffNode root = diffUsingMatching( before.root(), after.root(), - Matchers.getInstance().getMatcher() + matcher ); return new VariationDiff<>(root, new VariationTreeDiffSource(before.source(), after.source())); @@ -85,7 +92,10 @@ public static , L extends Label> DiffNode diffU var dst = new VariationTreeAdapter(after); MappingStore matching = matcher.match(src, dst); - Assert.assertTrue(matching.has(src, dst)); + + // The following algorithm assumes that the root nodes are matched so we ensure that this is + // the case here by establishing that mapping if necessary. + ensureMapping(matching, src, dst); removeUnmapped(matching, src); for (var child : dst.getChildren()) { @@ -114,8 +124,7 @@ private static void removeUnmapped(MappingStore mappings, Vari Tree dst = mappings.getDstForSrc(node); if (dst == null || !dst.getLabel().equals(node.getLabel())) { var diffNode = Cast.>unchecked(node).getDiffNode(); - diffNode.diffType = REM; - diffNode.drop(AFTER); + diffNode.split(AFTER).drop(); } } } @@ -147,7 +156,7 @@ private static void addUnmapped(MappingStore mappings, DiffNod new DiffLineNumber(DiffLineNumber.InvalidLineNumber, from, from), new DiffLineNumber(DiffLineNumber.InvalidLineNumber, to, to), variationNode.getFormula(), - Cast.unchecked(variationNode.getLabel().clone()) + Cast.unchecked(variationNode.getLabel().withoutTimeDependentState(BEFORE)) ); } else { diffNode = Cast.>unchecked(src).getDiffNode(); @@ -155,6 +164,10 @@ private static void addUnmapped(MappingStore mappings, DiffNod // Always drop and reinsert it because it could have moved. diffNode.drop(AFTER); } + + diffNode.setFromLine(diffNode.getFromLine().withLineNumberAtTime(afterNode.getVariationNode().getLineRange().fromInclusive(), AFTER)); + diffNode.setToLine(diffNode.getToLine().withLineNumberAtTime(afterNode.getVariationNode().getLineRange().toExclusive(), AFTER)); + diffNode.setLabel(Cast.unchecked(diffNode.getLabel().withTimeDependentStateFrom(afterNode.getVariationNode().getLabel(), Time.AFTER))); } parent.addChild(diffNode, AFTER); @@ -182,14 +195,17 @@ public static DiffNode improveMatching(DiffNode tree, Ma MappingStore matching = new MappingStore(src, dst); extractMatching(src, dst, matching); matcher.match(src, dst, matching); - Assert.assertTrue(matching.has(src, dst)); + + // The following algorithm assumes that the root nodes are matched so we ensure that this is + // the case here by establishing that mapping if necessary. + ensureMapping(matching, src, dst); for (var srcNode : src.preOrder()) { var dstNode = matching.getDstForSrc(srcNode); var beforeNode = Cast.>unchecked(srcNode).getDiffNode(); if (dstNode == null || !srcNode.getLabel().equals(dstNode.getLabel())) { if (beforeNode.isNon()) { - splitNode(beforeNode); + beforeNode.split(AFTER); } Assert.assertTrue(beforeNode.isRem()); @@ -198,13 +214,13 @@ public static DiffNode improveMatching(DiffNode tree, Ma if (beforeNode != afterNode) { if (beforeNode.isNon()) { - splitNode(beforeNode); + beforeNode.split(AFTER); } if (afterNode.isNon()) { - afterNode = splitNode(afterNode); + afterNode.split(BEFORE); } - joinNode(beforeNode, afterNode); + beforeNode.join(afterNode); } Assert.assertTrue(beforeNode.isNon()); @@ -215,61 +231,6 @@ public static DiffNode improveMatching(DiffNode tree, Ma return tree; } - /** - * Removes the implicit matching between the {@code BEFORE} and {@code AFTER} projection of - * {@code beforeNode}. This is achieved by copying {@code beforeNode} and reconnecting all - * necessary edges such that the new node exists only after and {@code beforeNode} only exists - * before the edit. - * - * This method doesn't change the {@code BEFORE} and {@code AFTER} projection of {@code - * beforeNode}. - * - * @param beforeNode the node to be split - * @return a copy of {@code beforeNode} existing only after the edit. - */ - private static DiffNode splitNode(DiffNode beforeNode) { - Assert.assertTrue(beforeNode.isNon()); - - DiffNode afterNode = beforeNode.shallowCopy(); - - afterNode.diffType = ADD; - beforeNode.diffType = REM; - - afterNode.addChildren(beforeNode.removeChildren(AFTER), AFTER); - var afterParent = beforeNode.getParent(AFTER); - afterParent.insertChild(afterNode, afterParent.indexOfChild(beforeNode, AFTER), AFTER); - beforeNode.drop(AFTER); - - beforeNode.assertConsistency(); - afterNode.assertConsistency(); - - return afterNode; - } - - /** - * Merges {@code afterNode} into {@code beforeNode} such that {@code beforeNode.isNon() == - * true}. Essentially, an implicit matching is inserted between {@code beforeNode} and {@code - * afterNode}. - * - * This method doesn't change the {@code BEFORE} and {@code AFTER} projection of {@code - * beforeNode}. - * - * @param beforeNode the node which is will exist {@code BEFORE} and {@code AFTER} the edit - * @param afterNode the node which is discarded - */ - private static void joinNode(DiffNode beforeNode, DiffNode afterNode) { - Assert.assertTrue(beforeNode.isRem()); - Assert.assertTrue(afterNode.isAdd()); - - beforeNode.diffType = NON; - - beforeNode.addChildren(afterNode.removeChildren(AFTER), AFTER); - - var afterParent = afterNode.getParent(AFTER); - afterParent.insertChild(beforeNode, afterParent.indexOfChild(afterNode, AFTER), AFTER); - afterNode.drop(AFTER); - } - /** * Makes the implicit matching of a {@code VariationDiff} explicit. * @@ -299,4 +260,20 @@ private static void extractMatching( } } } + + /** + * Add a mapping between {@code src} and {@code dst}. + * In case {@code src} or {@code dst} are mapped to some other nodes, these mappings are + * removed. + */ + private static void ensureMapping(MappingStore matching, Tree src, Tree dst) { + if (matching.isSrcMapped(src)) { + matching.removeMapping(src, matching.getDstForSrc(src)); + } + if (matching.isDstMapped(dst)) { + matching.removeMapping(dst, matching.getSrcForDst(dst)); + } + + matching.addMapping(src, dst); + } } diff --git a/src/main/java/org/variantsync/diffdetective/variation/diff/parse/VariationDiffParser.java b/src/main/java/org/variantsync/diffdetective/variation/diff/parse/VariationDiffParser.java index 41bb68f44..9f11bc653 100644 --- a/src/main/java/org/variantsync/diffdetective/variation/diff/parse/VariationDiffParser.java +++ b/src/main/java/org/variantsync/diffdetective/variation/diff/parse/VariationDiffParser.java @@ -79,6 +79,15 @@ public record DiffLine(DiffType diffType, String content) { /* State */ + /* Implementation note: + * We use stacks to keep track of the path from the current node (the top element in the stack) + * to the root (the bottom element in the stack) of the variation diff. This is not strictly + * necessary because as soon as a node is pushed onto the stack, the corresponding edge is also + * inserted. Hence, we could reconstruct the stack by traversing the current graph using + * {@link DiffNode#getParent} and check for the root using {@link DiffNode#isRoot}. + * However, for consistency with the papers that explain this algorithm and for ease of + * implementation, we keep the stack based implementation. + */ /** * A stack containing the current path before the edit from the root of the currently parsed @@ -288,11 +297,6 @@ private VariationDiff parse( ); } - // Cleanup state - beforeStack.clear(); - afterStack.clear(); - lastArtifact = null; - return new VariationDiff<>(root); } diff --git a/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/Format.java b/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/Format.java index 2a7327903..65401c376 100644 --- a/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/Format.java +++ b/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/Format.java @@ -1,11 +1,16 @@ package org.variantsync.diffdetective.variation.diff.serialize; +import org.eclipse.jgit.diff.DiffAlgorithm; +import org.eclipse.jgit.diff.EditList; +import org.eclipse.jgit.diff.Sequence; +import org.eclipse.jgit.diff.SequenceComparator; import org.variantsync.diffdetective.variation.Label; import org.variantsync.diffdetective.variation.diff.DiffNode; import org.variantsync.diffdetective.variation.diff.VariationDiff; import org.variantsync.diffdetective.variation.diff.serialize.edgeformat.EdgeLabelFormat; import org.variantsync.diffdetective.variation.diff.serialize.nodeformat.DiffNodeLabelFormat; +import java.util.List; import java.util.function.Consumer; import static org.variantsync.diffdetective.variation.diff.Time.AFTER; @@ -69,20 +74,55 @@ public void forEachNode(VariationDiff variationDiff, Consumer */ public void forEachEdge(VariationDiff variationDiff, Consumer> callback) { variationDiff.forAll((node) -> { - var beforeParent = node.getParent(BEFORE); - var afterParent = node.getParent(AFTER); - - // Are both parent edges the same? - if (beforeParent != null && afterParent != null && beforeParent == afterParent) { - sortedEdgeWithLabel(node, node.getParent(BEFORE), StyledEdge.ALWAYS, callback); - } else { - if (beforeParent != null) { - sortedEdgeWithLabel(node, node.getParent(BEFORE), StyledEdge.BEFORE, callback); + List> beforeChildren = node.getChildOrder(BEFORE); + List> afterChildren = node.getChildOrder(AFTER); + + class ListSequence extends Sequence { + public final List list; + + public ListSequence(List list) { + this.list = list; + } + + @Override + public int size() { + return list.size(); } - if (afterParent != null) { - sortedEdgeWithLabel(node, node.getParent(AFTER), StyledEdge.AFTER, callback); + } + + class ListSequenceComparator extends SequenceComparator> { + @Override + public boolean equals(ListSequence sequence1, int index1, ListSequence sequence2, int index2) { + return sequence1.list.get(index1) == sequence2.list.get(index2); + } + + @Override + public int hash(ListSequence sequence, int index) { + return System.identityHashCode(sequence.list.get(index)); } } + + final EditList editList = DiffAlgorithm.getAlgorithm(DiffAlgorithm.SupportedAlgorithm.MYERS).diff( + new ListSequenceComparator>(), + new ListSequence<>(beforeChildren), + new ListSequence<>(afterChildren) + ); + + int beforeIndex = 0; + for (var edit : editList) { + for (; beforeIndex < edit.getBeginA(); ++beforeIndex) { + sortedEdgeWithLabel(beforeChildren.get(beforeIndex), node, StyledEdge.ALWAYS, callback); + } + for (; beforeIndex < edit.getEndA(); ++beforeIndex) { + sortedEdgeWithLabel(beforeChildren.get(beforeIndex), node, StyledEdge.BEFORE, callback); + } + for (int afterIndex = edit.getBeginB(); afterIndex < edit.getEndB(); ++afterIndex) { + sortedEdgeWithLabel(afterChildren.get(afterIndex), node, StyledEdge.AFTER, callback); + } + } + for (; beforeIndex < beforeChildren.size(); ++beforeIndex) { + sortedEdgeWithLabel(beforeChildren.get(beforeIndex), node, StyledEdge.ALWAYS, callback); + } }); } diff --git a/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/LineGraphImport.java b/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/LineGraphImport.java index 86686b6ed..3d9750b98 100644 --- a/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/LineGraphImport.java +++ b/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/LineGraphImport.java @@ -22,6 +22,11 @@ /** * Import VariationDiffs from line graph files. + *

+ * This is a very rudimentary implementation of a deserializer that supports a similar format than + * {@link LineGraphExport}. Rudimentary means that it only deserializes the structure of a variation + * diff. Most other properties, including the label, line numbers and formulas, are not (always) + * correctly deserialized. Hence, this is not an inverse of {@link LineGraphExport}. * * @author Kevin Jedelhauser, Paul Maximilian Bittner */ @@ -133,34 +138,33 @@ private static VariationDiff parseVariationDiff(final String lin } // Handle trees and graphs differently - if (options.graphFormat() == GraphFormat.DIFFGRAPH) { - return DiffGraph.fromNodes(diffNodeList, variationDiffSource); - } else if (options.graphFormat() == GraphFormat.VARIATION_DIFF) { - // If you should interpret the input data as VariationDiffs, always expect a root to be present. Parse all nodes (v) to a list of nodes. Search for the root. Assert that there is exactly one root. - DiffNode root = null; - for (final DiffNode v : diffNodeList) { - if (v.isRoot()) { - // v is root candidate - if (root != null) { - throw new RuntimeException("Not a VariationDiff: Got more than one root! Got \"" + root + "\" and \"" + v + "\"!"); - } - if (v.getNodeType() == NodeType.IF) { - root = v; - } else { - throw new RuntimeException("Not a VariationDiff but a DiffGraph: The node \"" + v + "\" is not labeled as IF but has no parents!"); + return switch (options.graphFormat()) { + case DIFFGRAPH: + yield DiffGraph.fromNodes(diffNodeList, variationDiffSource); + case VARIATION_DIFF: + // If you should interpret the input data as VariationDiffs, always expect a root to be present. Parse all nodes (v) to a list of nodes. Search for the root. Assert that there is exactly one root. + DiffNode root = null; + for (final DiffNode v : diffNodeList) { + if (v.isRoot()) { + // v is root candidate + if (root != null) { + throw new RuntimeException("Not a VariationDiff: Got more than one root! Got \"" + root + "\" and \"" + v + "\"!"); + } + if (v.getNodeType() == NodeType.IF) { + root = v; + } else { + throw new RuntimeException("Not a VariationDiff but a DiffGraph: The node \"" + v + "\" is not labeled as IF but has no parents!"); + } } } - } - if (root == null) { - throw new RuntimeException("Not a VariationDiff but a DiffGraph: No root found!"); - } + if (root == null) { + throw new RuntimeException("Not a VariationDiff but a DiffGraph: No root found!"); + } -// countRootTypes.merge(root.getNodeType(), 1, Integer::sum); + // countRootTypes.merge(root.getNodeType(), 1, Integer::sum); - return new VariationDiff<>(root, variationDiffSource); - } else { - throw new RuntimeException("Unsupported GraphFormat"); - } + yield new VariationDiff<>(root, variationDiffSource); + }; } } diff --git a/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/edgeformat/ChildOrderEdgeFormat.java b/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/edgeformat/ChildOrderEdgeFormat.java index 2904be75e..886a8c428 100644 --- a/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/edgeformat/ChildOrderEdgeFormat.java +++ b/src/main/java/org/variantsync/diffdetective/variation/diff/serialize/edgeformat/ChildOrderEdgeFormat.java @@ -15,7 +15,7 @@ * * This index is encoded into decimal and delimited by a semicolon from the previous value. * - * This format is mainly useful to equivalence of two {@link VariationDiff}s, for example in tests. + * This format is mainly useful to verify the equivalence of two {@link VariationDiff}s, for example in tests. * * @author Benjamin Moosherr */ diff --git a/src/test/java/LineGraphTest.java b/src/test/java/LineGraphTest.java index 2c79e3dbd..c42704ea8 100644 --- a/src/test/java/LineGraphTest.java +++ b/src/test/java/LineGraphTest.java @@ -1,24 +1,32 @@ import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.function.FailableConsumer; +import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; +import org.variantsync.diffdetective.diff.result.DiffParseException; +import org.variantsync.diffdetective.diff.text.DiffLineNumber; +import org.variantsync.diffdetective.util.IO; import org.variantsync.diffdetective.variation.DiffLinesLabel; +import org.variantsync.diffdetective.variation.diff.DiffNode; +import org.variantsync.diffdetective.variation.diff.DiffType; +import org.variantsync.diffdetective.variation.diff.Time; import org.variantsync.diffdetective.variation.diff.VariationDiff; import org.variantsync.diffdetective.variation.diff.serialize.*; import org.variantsync.diffdetective.variation.diff.serialize.edgeformat.DefaultEdgeLabelFormat; import org.variantsync.diffdetective.variation.diff.serialize.nodeformat.LabelOnlyDiffNodeFormat; import org.variantsync.diffdetective.variation.diff.serialize.treeformat.CommitDiffVariationDiffLabelFormat; -import org.variantsync.diffdetective.util.IO; - -import static org.junit.jupiter.api.Assertions.fail; +import org.variantsync.diffdetective.variation.diff.source.CommitDiffVariationDiffSource; +import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.List; import java.util.stream.Stream; +import static org.junit.jupiter.api.Assertions.fail; + /** * For testing the import of a line graph. */ @@ -34,7 +42,9 @@ public class LineGraphTest { ); public static Stream testCases() throws IOException { - return Files.list(Paths.get("src/test/resources/line_graph")); + return Files + .list(Constants.RESOURCE_DIR.resolve("line_graph")) + .filter(file -> file.getFileName().toString().endsWith(".lg")); } /** @@ -49,22 +59,26 @@ public void idempotentReadWrite(Path testFile) throws IOException { } assertConsistencyForAll(variationDiffs); - Path actualPath = testFile.getParent().resolve(testFile.getFileName().toString() + ".actual"); - try (var output = IO.newBufferedOutputStream(actualPath)) { - LineGraphExport.toLineGraphFormat(variationDiffs, EXPORT_OPTIONS, output); - } + assertEqualsFile(testFile, output -> LineGraphExport.toLineGraphFormat(variationDiffs, EXPORT_OPTIONS, output)); + } - try ( - var expectedFile = Files.newBufferedReader(testFile); - var actualFile = Files.newBufferedReader(actualPath); - ) { - if (!IOUtils.contentEqualsIgnoreEOL(expectedFile, actualFile)) { - fail("The file " + testFile + " couldn't be exported or imported without modifications"); - } else { - // Only keep output file on errors - Files.delete(actualPath); - } - } + @Test + public void testChildOrder() throws IOException, DiffParseException { + Path expectedPath = Constants.RESOURCE_DIR.resolve("line_graph").resolve("childOrder.lg"); + + // Note that this variation diff doesn't have a line diff representation because it + // represents a move (it could be parseable using a tree differ). + var root = DiffNode.createRoot(new DiffLinesLabel()); + var A = DiffNode.createArtifact(DiffType.NON, new DiffLineNumber(1, 1, 2), new DiffLineNumber(1, 1, 2), new DiffLinesLabel(List.of(new DiffLinesLabel.Line("A", new DiffLineNumber(1, DiffLineNumber.InvalidLineNumber, 2))))); + var B = DiffNode.createArtifact(DiffType.NON, new DiffLineNumber(2, 2, 1), new DiffLineNumber(2, 2, 1), new DiffLinesLabel(List.of(new DiffLinesLabel.Line("B", new DiffLineNumber(2, DiffLineNumber.InvalidLineNumber, 1))))); + root.addChild(A, Time.BEFORE); + root.addChild(B, Time.BEFORE); + root.addChild(B, Time.AFTER); + root.addChild(A, Time.AFTER); + + final var variationDiff = new VariationDiff(root, new CommitDiffVariationDiffSource(Path.of("fileName"), "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")); + + assertEqualsFile(expectedPath, output -> LineGraphExport.toLineGraphFormat(List.of(variationDiff), EXPORT_OPTIONS, output)); } /** @@ -78,4 +92,23 @@ private static void assertConsistencyForAll(final List actualOutput) throws IOException { + Path actualPath = expectedPath.getParent().resolve(expectedPath.getFileName().toString() + ".actual"); + try (var output = IO.newBufferedOutputStream(actualPath)) { + actualOutput.accept(output); + } + + try ( + var expectedFile = Files.newBufferedReader(expectedPath); + var actualFile = Files.newBufferedReader(actualPath); + ) { + if (!IOUtils.contentEqualsIgnoreEOL(expectedFile, actualFile)) { + fail("Expected the content of " + expectedPath + " but got the content of " + actualPath); + } else { + // Only keep output file on errors + Files.delete(actualPath); + } + } + } } diff --git a/src/test/java/TreeDiffingTest.java b/src/test/java/TreeDiffingTest.java index c4c0dad7f..1d3dd395d 100644 --- a/src/test/java/TreeDiffingTest.java +++ b/src/test/java/TreeDiffingTest.java @@ -1,12 +1,13 @@ import com.github.gumtreediff.matchers.Matcher; import com.github.gumtreediff.matchers.Matchers; import org.apache.commons.io.IOUtils; +import org.eclipse.jgit.diff.DiffAlgorithm; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.variantsync.diffdetective.diff.result.DiffParseException; -import org.variantsync.diffdetective.feature.cpp.CPPAnnotationParser; import org.variantsync.diffdetective.util.IO; import org.variantsync.diffdetective.variation.DiffLinesLabel; +import org.variantsync.diffdetective.variation.diff.DiffNode; import org.variantsync.diffdetective.variation.diff.VariationDiff; import org.variantsync.diffdetective.variation.diff.construction.GumTreeDiff; import org.variantsync.diffdetective.variation.diff.parse.VariationDiffParseOptions; @@ -17,6 +18,7 @@ import org.variantsync.diffdetective.variation.diff.serialize.edgeformat.ChildOrderEdgeFormat; import org.variantsync.diffdetective.variation.diff.serialize.edgeformat.DefaultEdgeLabelFormat; import org.variantsync.diffdetective.variation.diff.serialize.nodeformat.FullNodeFormat; +import org.variantsync.diffdetective.variation.diff.source.VariationDiffSource; import org.variantsync.diffdetective.variation.tree.VariationTree; import org.variantsync.diffdetective.variation.tree.source.LocalFileSource; @@ -33,7 +35,7 @@ public class TreeDiffingTest { private final static Path testDir = Constants.RESOURCE_DIR.resolve("tree-diffing"); private static Pattern expectedFileNameRegex = Pattern.compile("([^_]+)_([^_]+)_expected.lg"); - private static record TestCase(String basename, String matcherName, Matcher matcher) { + private static record TestCase(String expectedDir, String basename, String matcherName, Matcher matcher) { public Path beforeEdit() { return testDir.resolve(String.format("%s.before", basename())); } @@ -43,21 +45,21 @@ public Path afterEdit() { } public Path actual() { - return testDir.resolve(String.format("%s_%s_actual.lg", basename(), matcherName())); + return testDir.resolve(expectedDir).resolve(String.format("%s_%s_actual.lg", basename(), matcherName())); } public Path expected() { - return testDir.resolve(String.format("%s_%s_expected.lg", basename(), matcherName())); + return testDir.resolve(expectedDir).resolve(String.format("%s_%s_expected.lg", basename(), matcherName())); } public Path visualisation() { - return testDir.resolve("tex").resolve(String.format("%s_%s.tex", basename(), matcherName())); + return testDir.resolve(expectedDir).resolve("tex").resolve(String.format("%s_%s.tex", basename(), matcherName())); } } - private static Stream testCases() throws IOException { + private static Stream testCases(String expectedDir) throws IOException { return Files - .list(testDir) + .list(testDir.resolve(expectedDir)) .mapMulti(((path, result) -> { String filename = path.getFileName().toString(); var filenameMatcher = expectedFileNameRegex.matcher(filename); @@ -65,6 +67,7 @@ private static Stream testCases() throws IOException { var treeMatcherName = filenameMatcher.group(2); result.accept(new TestCase( + expectedDir, filenameMatcher.group(1), treeMatcherName, Matchers.getInstance().getMatcher(treeMatcherName)) @@ -73,14 +76,40 @@ private static Stream testCases() throws IOException { })); } + private static Stream createMatchingTestCases() throws IOException { + return testCases("createMatching"); + } + @ParameterizedTest - @MethodSource("testCases") - public void testCase(TestCase testCase) throws IOException, DiffParseException { + @MethodSource("createMatchingTestCases") + public void createMatchingTestCase(TestCase testCase) throws IOException, DiffParseException { VariationTree beforeEdit = parseVariationTree(testCase.beforeEdit()); VariationTree afterEdit = parseVariationTree(testCase.afterEdit()); + assertExpectedVariationDiffs(testCase, GumTreeDiff.diffUsingMatching(beforeEdit, afterEdit, testCase.matcher())); + } + + private static Stream improveMatchingTestCases() throws IOException { + return testCases("improveMatching"); + } - VariationDiff variationDiff = GumTreeDiff.diffUsingMatching(beforeEdit, afterEdit); + @ParameterizedTest + @MethodSource("improveMatchingTestCases") + public void improveMatchingTestCase(TestCase testCase) throws IOException, DiffParseException { + VariationDiff variationDiff = + VariationDiff.fromFiles( + testCase.beforeEdit(), + testCase.afterEdit(), + DiffAlgorithm.SupportedAlgorithm.MYERS, + VariationDiffParseOptions.Default + ); + + DiffNode improvedDiffNode = GumTreeDiff.improveMatching(variationDiff.getRoot(), testCase.matcher()); + VariationDiff improvedVariationDiff = new VariationDiff<>(improvedDiffNode, VariationDiffSource.Unknown); + + assertExpectedVariationDiffs(testCase, improvedVariationDiff); + } + private static void assertExpectedVariationDiffs(TestCase testCase, VariationDiff variationDiff) throws IOException { try (var output = IO.newBufferedOutputStream(testCase.actual())) { new LineGraphExporter<>(new Format<>(new FullNodeFormat(), new ChildOrderEdgeFormat<>())) .exportVariationDiff(variationDiff, output); @@ -111,15 +140,12 @@ public void testCase(TestCase testCase) throws IOException, DiffParseException { } } - public VariationTree parseVariationTree(Path filename) throws IOException, DiffParseException { + private static VariationTree parseVariationTree(Path filename) throws IOException, DiffParseException { try (var file = Files.newBufferedReader(filename)) { return new VariationTree<>( VariationDiffParser.createVariationTree( file, - new VariationDiffParseOptions( - new CPPAnnotationParser(), - false, - false) + VariationDiffParseOptions.Default ).getRoot().projection(BEFORE).toVariationTree(), new LocalFileSource(filename) ); diff --git a/src/test/resources/diffs/differ/4a4c1db1b192e221d8e25460d6d1128d1bdd0c0d.lg b/src/test/resources/diffs/differ/4a4c1db1b192e221d8e25460d6d1128d1bdd0c0d.lg index 3cbe7dae9..4bd20ce33 100644 --- a/src/test/resources/diffs/differ/4a4c1db1b192e221d8e25460d6d1128d1bdd0c0d.lg +++ b/src/test/resources/diffs/differ/4a4c1db1b192e221d8e25460d6d1128d1bdd0c0d.lg @@ -5,5 +5,5 @@ v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Another v 259 ADD;ARTIFACT;(old: -1, diff: 3, new: 2);(old: -1, diff: 4, new: 3);;Hallo e 147 16 ba;0,0 e 203 16 b;1,-1 -e 339 16 ba;2,2 e 259 16 a;-1,1 +e 339 16 ba;2,2 diff --git a/src/test/resources/diffs/differ/a032346092e47048becb36a7cb183b4739547370.lg b/src/test/resources/diffs/differ/a032346092e47048becb36a7cb183b4739547370.lg index d151296bd..7aa5bf395 100644 --- a/src/test/resources/diffs/differ/a032346092e47048becb36a7cb183b4739547370.lg +++ b/src/test/resources/diffs/differ/a032346092e47048becb36a7cb183b4739547370.lg @@ -29,19 +29,19 @@ e 336 16 ba;3,3 e 403 336 ba;0,0 e 467 336 ba;1,1 e 528 336 ba;2,2 -e 595 528 ba;0,0 -e 657 528 ba;1,1 -e 723 657 ba;0,0 e 851 336 ba;3,3 e 915 336 ba;4,4 e 979 336 ba;5,5 e 1043 336 ba;6,6 e 1104 336 ba;7,7 -e 1299 1104 ba;0,0 -e 1363 1104 ba;1,1 e 1619 336 ba;8,8 e 1680 336 ba;9,9 -e 1811 1680 ba;0,0 e 1939 336 ba;10,10 e 2000 336 ba;11,11 +e 595 528 ba;0,0 +e 657 528 ba;1,1 +e 723 657 ba;0,0 +e 1299 1104 ba;0,0 +e 1363 1104 ba;1,1 +e 1811 1680 ba;0,0 e 2067 2000 ba;0,0 diff --git a/src/test/resources/diffs/jpp/basic_jpp_expected.lg b/src/test/resources/diffs/jpp/basic_jpp_expected.lg index c6f8d5924..7c02b52eb 100644 --- a/src/test/resources/diffs/jpp/basic_jpp_expected.lg +++ b/src/test/resources/diffs/jpp/basic_jpp_expected.lg @@ -20,16 +20,16 @@ e 131 16 a;-1,0 e 195 16 a;-1,1 e 259 16 a;-1,2 e 320 16 a;-1,3 -e 387 320 a;-1,0 -e 451 320 a;-1,1 -e 515 320 a;-1,2 e 643 16 a;-1,4 e 707 16 a;-1,5 e 768 16 a;-1,6 -e 835 768 a;-1,0 -e 899 768 a;-1,1 -e 963 768 a;-1,2 e 1091 16 a;-1,7 e 1155 16 a;-1,8 e 1216 16 a;-1,9 +e 387 320 a;-1,0 +e 451 320 a;-1,1 +e 515 320 a;-1,2 +e 835 768 a;-1,0 +e 899 768 a;-1,1 +e 963 768 a;-1,2 e 1283 1216 a;-1,0 diff --git a/src/test/resources/diffs/parser/02_expected.lg b/src/test/resources/diffs/parser/02_expected.lg index be1bdf11f..21f0820e2 100644 --- a/src/test/resources/diffs/parser/02_expected.lg +++ b/src/test/resources/diffs/parser/02_expected.lg @@ -3,6 +3,6 @@ v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);A;#if A v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 3, new: 2);; Code v 323 ADD;ARTIFACT;(old: -1, diff: 4, new: 2);(old: -1, diff: 5, new: 3);; // Hehe e 136 16 b;0,-1 -e 211 136 b;0,-1 e 211 16 a;-1,0 e 323 16 a;-1,1 +e 211 136 b;0,-1 diff --git a/src/test/resources/diffs/parser/03_expected.lg b/src/test/resources/diffs/parser/03_expected.lg index a51c370b1..d9480b61a 100644 --- a/src/test/resources/diffs/parser/03_expected.lg +++ b/src/test/resources/diffs/parser/03_expected.lg @@ -5,8 +5,8 @@ v 595 NON;ARTIFACT;(old: 6, diff: 8, new: 5);(old: 7, diff: 9, new: 6);;Code v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 10, new: 6);A | B | C;#if A \; || B \; || C \; // Foo v 771 ADD;ARTIFACT;(old: -1, diff: 11, new: 7);(old: -1, diff: 12, new: 8);; // Bar e 136 16 b;0,-1 +e 128 16 a;-1,0 +e 771 16 a;-1,1 e 523 136 b;0,-1 e 595 136 b;1,-1 e 595 128 a;-1,0 -e 128 16 a;-1,0 -e 771 16 a;-1,1 diff --git a/src/test/resources/diffs/parser/08_expected.lg b/src/test/resources/diffs/parser/08_expected.lg index 6d28b028d..1d6417339 100644 --- a/src/test/resources/diffs/parser/08_expected.lg +++ b/src/test/resources/diffs/parser/08_expected.lg @@ -3,6 +3,6 @@ v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 4, new: -1);defined(A);#i v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 2);(old: 3, diff: 4, new: 3);;Code v 192 ADD;IF;(old: -1, diff: 2, new: 1);(old: -1, diff: 4, new: 3);defined(B);#ifdef B e 136 16 b;0,-1 +e 192 16 a;-1,0 e 275 136 b;0,-1 e 275 192 a;-1,0 -e 192 16 a;-1,0 diff --git a/src/test/resources/diffs/parser/09_expected.lg b/src/test/resources/diffs/parser/09_expected.lg index 5b3559d42..30efd0c3d 100644 --- a/src/test/resources/diffs/parser/09_expected.lg +++ b/src/test/resources/diffs/parser/09_expected.lg @@ -4,8 +4,8 @@ v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Code 1 v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 3);(old: 5, diff: 5, new: 4);;Code 2 v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 5, new: 4);defined(A);#ifdef A e 136 16 b;0,-1 +e 339 16 b;1,-1 +e 128 16 a;-1,0 e 211 136 b;0,-1 e 211 128 a;-1,0 -e 339 16 b;1,-1 e 339 128 a;-1,1 -e 128 16 a;-1,0 diff --git a/src/test/resources/diffs/parser/10_expected.lg b/src/test/resources/diffs/parser/10_expected.lg index 23e1643c1..5f7236d99 100644 --- a/src/test/resources/diffs/parser/10_expected.lg +++ b/src/test/resources/diffs/parser/10_expected.lg @@ -3,6 +3,6 @@ v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 3, diff: 4, new: -1);defined(A);#i v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 2);(old: 3, diff: 4, new: 3);;Code v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 5, new: 3);defined(B);#ifdef B e 200 16 b;0,-1 +e 128 16 a;-1,0 e 275 200 b;0,-1 e 275 128 a;-1,0 -e 128 16 a;-1,0 diff --git a/src/test/resources/diffs/parser/11_expected.lg b/src/test/resources/diffs/parser/11_expected.lg index 886bc794f..4d60ed8d9 100644 --- a/src/test/resources/diffs/parser/11_expected.lg +++ b/src/test/resources/diffs/parser/11_expected.lg @@ -3,6 +3,6 @@ v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 4, new: -1);defined(A);#i v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 2);(old: 3, diff: 4, new: 3);;Code v 192 ADD;IF;(old: -1, diff: 2, new: 1);(old: -1, diff: 5, new: 3);defined(B);#ifdef B e 136 16 b;0,-1 +e 192 16 a;-1,0 e 275 136 b;0,-1 e 275 192 a;-1,0 -e 192 16 a;-1,0 diff --git a/src/test/resources/diffs/parser/16_expected.lg b/src/test/resources/diffs/parser/16_expected.lg index f351f9f7a..c3b64bcf7 100644 --- a/src/test/resources/diffs/parser/16_expected.lg +++ b/src/test/resources/diffs/parser/16_expected.lg @@ -8,14 +8,14 @@ v 595 NON;ARTIFACT;(old: 6, diff: 8, new: 7);(old: 7, diff: 9, new: 8);;d v 256 ADD;IF;(old: -1, diff: 3, new: 2);(old: -1, diff: 5, new: 4);defined(B);#ifdef B v 386 ADD;ELIF;(old: -1, diff: 5, new: 4);(old: -1, diff: 7, new: 6);C;#elif C e 136 16 b;0,-1 -e 211 136 b;0,-1 e 211 16 a;-1,0 +e 256 16 a;-1,1 +e 211 136 b;0,-1 e 339 136 b;1,-1 -e 339 256 a;-1,0 e 467 136 b;2,-1 -e 467 386 a;-1,0 e 529 136 b;3,-1 -e 529 386 a;-1,1 e 595 529 ba;0,0 -e 256 16 a;-1,1 +e 339 256 a;-1,0 e 386 256 a;-1,1 +e 467 386 a;-1,0 +e 529 386 a;-1,1 diff --git a/src/test/resources/diffs/parser/17_expected.lg b/src/test/resources/diffs/parser/17_expected.lg index 0476ef4d0..046f80dad 100644 --- a/src/test/resources/diffs/parser/17_expected.lg +++ b/src/test/resources/diffs/parser/17_expected.lg @@ -3,5 +3,5 @@ v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 2, diff: 3, new: -1);defined(A);#i v 265 REM;ELSE;(old: 2, diff: 3, new: -1);(old: 3, diff: 5, new: -1);;#else v 192 ADD;IF;(old: -1, diff: 2, new: 1);(old: -1, diff: 4, new: 3);defined(B);#ifdef B #\;#else e 136 16 b;0,-1 -e 265 136 b;0,-1 e 192 16 a;-1,0 +e 265 136 b;0,-1 diff --git a/src/test/resources/diffs/parser/wontfix/01.diff b/src/test/resources/diffs/parser/19.diff similarity index 100% rename from src/test/resources/diffs/parser/wontfix/01.diff rename to src/test/resources/diffs/parser/19.diff diff --git a/src/test/resources/diffs/parser/wontfix/01_expected.lg b/src/test/resources/diffs/parser/19_expected.lg similarity index 76% rename from src/test/resources/diffs/parser/wontfix/01_expected.lg rename to src/test/resources/diffs/parser/19_expected.lg index 937d7f4fc..34f271f8d 100644 --- a/src/test/resources/diffs/parser/wontfix/01_expected.lg +++ b/src/test/resources/diffs/parser/19_expected.lg @@ -1,3 +1,3 @@ v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 3, diff: 3, new: 3);A;# \; ifdef A -e 144 16 ba;0;0 +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 3, diff: 3, new: 3);defined(A);# \; ifdef A +e 144 16 ba;0,0 diff --git a/src/test/resources/diffs/parser/wontfix/03.diff b/src/test/resources/diffs/parser/20.diff similarity index 100% rename from src/test/resources/diffs/parser/wontfix/03.diff rename to src/test/resources/diffs/parser/20.diff diff --git a/src/test/resources/diffs/parser/20_expected.lg b/src/test/resources/diffs/parser/20_expected.lg new file mode 100644 index 000000000..3f7dac870 --- /dev/null +++ b/src/test/resources/diffs/parser/20_expected.lg @@ -0,0 +1,3 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 4, diff: 4, new: 4);;/* This is a comment, so it's removed before the preprocessor is run; #ifdef A; */ +e 147 16 ba;0,0 diff --git a/src/test/resources/diffs/parser/wontfix/04.diff b/src/test/resources/diffs/parser/21.diff similarity index 100% rename from src/test/resources/diffs/parser/wontfix/04.diff rename to src/test/resources/diffs/parser/21.diff diff --git a/src/test/resources/diffs/parser/wontfix/04_expected.lg b/src/test/resources/diffs/parser/21_expected.lg similarity index 71% rename from src/test/resources/diffs/parser/wontfix/04_expected.lg rename to src/test/resources/diffs/parser/21_expected.lg index 3683a3f2d..53cfe48b7 100644 --- a/src/test/resources/diffs/parser/wontfix/04_expected.lg +++ b/src/test/resources/diffs/parser/21_expected.lg @@ -1,3 +1,3 @@ v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 4, new: 4);A;#ifdef /*; * Comment; */ A -e 144 16 ba;0;0 +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 4, new: 4);defined(A);#ifdef /*; * Comment; */ A +e 144 16 ba;0,0 diff --git a/src/test/resources/diffs/parser/wontfix/03_expected.lg b/src/test/resources/diffs/parser/wontfix/03_expected.lg deleted file mode 100644 index b6eafe2f5..000000000 --- a/src/test/resources/diffs/parser/wontfix/03_expected.lg +++ /dev/null @@ -1,7 +0,0 @@ -v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True -v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 2, new: 2);;/* This is a comment, so it's removed before the preprocessor is run -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);; #ifdef A -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 4, new: 4);; */ -e 147 16 ba;0;0 -e 211 16 ba;1;1 -e 275 16 ba;2;2 diff --git a/src/test/resources/diffs/parser/wontfix/README.md b/src/test/resources/diffs/parser/wontfix/README.md index 5c016ea6e..8df09a425 100644 --- a/src/test/resources/diffs/parser/wontfix/README.md +++ b/src/test/resources/diffs/parser/wontfix/README.md @@ -1,9 +1,8 @@ # Test cases of WONTFIX behaviour ## Sophisticated comment parsing -The test cases 01 and 02 would require the removal of comments before checking -if a line is a macro. The test cases 03 and 04 would required the detection of -multi-line macros which span multiple lines. +The test case 02 would require the removal of comments before checking +if a line is a macro. All of these cases require more engineering than they are worth because they should be pretty rare in practice. diff --git a/src/test/resources/line_graph/.gitignore b/src/test/resources/line_graph/.gitignore new file mode 100644 index 000000000..5842cb6df --- /dev/null +++ b/src/test/resources/line_graph/.gitignore @@ -0,0 +1 @@ +*.actual diff --git a/src/test/resources/line_graph/childOrder.lg b/src/test/resources/line_graph/childOrder.lg new file mode 100644 index 000000000..5971add84 --- /dev/null +++ b/src/test/resources/line_graph/childOrder.lg @@ -0,0 +1,9 @@ +t # fileName$$$aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +v 16 +v 147 A +v 211 B +e 211 16 a +e 147 16 ba +e 211 16 b + + diff --git a/src/test/resources/line_graph/vulkan_structs.hpp$$$fd641ac85c6170c34845db5e345d3bf9cedce8d7.lg b/src/test/resources/line_graph/vulkan_structs.hpp$$$fd641ac85c6170c34845db5e345d3bf9cedce8d7.lg index b4e82d0ac..2f6f89aba 100644 --- a/src/test/resources/line_graph/vulkan_structs.hpp$$$fd641ac85c6170c34845db5e345d3bf9cedce8d7.lg +++ b/src/test/resources/line_graph/vulkan_structs.hpp$$$fd641ac85c6170c34845db5e345d3bf9cedce8d7.lg @@ -1998,2046 +1998,785 @@ v 4723712 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS" v 4724992 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE" e 592 144 ba e 3283 592 b -e 3283 3200 a e 8275 592 b -e 8275 8192 a e 9107 592 b -e 9107 9024 a e 14547 592 b -e 14547 14464 a e 22355 592 b -e 22355 22272 a e 27731 592 b -e 27731 27648 a e 31059 592 b -e 31059 30976 a e 32467 592 b -e 32467 32384 a e 37715 592 b -e 37715 37632 a e 41427 592 b -e 41427 41344 a e 42195 592 b -e 42195 42112 a e 50195 592 b -e 50195 50112 a e 54483 592 b -e 54483 50112 a e 55763 592 b -e 55763 50112 a e 53640 592 b -e 53779 53640 b -e 53779 53696 a e 54920 592 b -e 55059 54920 b -e 55059 54976 a e 60755 592 b -e 60755 60672 a e 66963 592 b -e 66963 66880 a e 74259 592 b -e 74259 74176 a e 83347 592 b -e 83347 83264 a e 93523 592 b -e 93523 93440 a e 99795 592 b -e 99795 99712 a e 104595 592 b -e 104595 104512 a e 112083 592 b -e 112083 112000 a e 114504 592 b -e 114643 114504 b -e 114643 114560 a e 120403 592 b -e 120403 120320 a e 126547 592 b -e 126547 126464 a e 132243 592 b -e 132243 132160 a e 136467 592 b -e 136467 136384 a e 141267 592 b -e 141267 141184 a e 149139 592 b -e 149139 149056 a e 157267 592 b -e 157267 157184 a e 163475 592 b -e 163475 163392 a e 170771 592 b -e 170771 170688 a e 182675 592 b -e 182675 182592 a e 188691 592 b -e 188691 188608 a e 190227 592 b -e 190227 190144 a e 195667 592 b -e 195667 195584 a e 200339 592 b -e 200339 200256 a e 205971 592 b -e 205971 205888 a e 213139 592 b -e 213139 213056 a e 219219 592 b -e 219219 219136 a e 226067 592 b -e 226067 225984 a e 245968 592 ba -e 247955 245968 b -e 247955 247872 a -e 247872 245968 a e 254099 592 b -e 254099 254016 a e 261971 592 b -e 261971 261888 a e 271187 592 b -e 271187 271104 a e 280659 592 b -e 280659 280576 a e 286483 592 b -e 286483 286400 a e 291411 592 b -e 291411 291328 a e 297683 592 b -e 297683 297600 a e 302611 592 b -e 302611 302528 a e 307027 592 b -e 307027 306944 a e 312979 592 b -e 312979 312896 a e 315080 592 b -e 315219 315080 b -e 315219 315136 a e 320659 592 b -e 320659 320576 a e 325139 592 b -e 325139 325056 a e 329043 592 b -e 329043 328960 a e 334995 592 b -e 334995 334912 a e 337416 592 b -e 337555 337416 b -e 337555 337472 a e 343635 592 b -e 343635 343552 a e 344776 592 b -e 344915 344776 b -e 344915 344832 a e 350355 592 b -e 350355 350272 a e 356115 592 b -e 356115 356032 a e 360403 592 b -e 360403 360320 a e 366227 592 b -e 366227 366144 a e 368147 592 b -e 368147 366144 a e 367368 592 b -e 367507 367368 b -e 367507 367424 a e 369032 592 b -e 369171 369032 b -e 369171 369088 a e 374931 592 b -e 374931 374848 a e 381203 592 b -e 381203 381120 a e 386963 592 b -e 386963 386880 a e 392339 592 b -e 392339 392256 a e 397395 592 b -e 397395 397312 a e 401875 592 b -e 401875 401792 a e 408595 592 b -e 408595 408512 a e 409736 592 b -e 409875 409736 b -e 409875 409792 a e 415251 592 b -e 415251 415168 a e 416456 592 b -e 416595 416456 b -e 416595 416512 a e 421267 592 b -e 421267 421184 a e 426195 592 b -e 426195 426112 a e 431251 592 b -e 431251 431168 a e 436755 592 b -e 436755 436672 a e 443987 592 b -e 443987 443904 a e 445192 592 b -e 445331 445192 b -e 445331 445248 a e 452691 592 b -e 452691 452608 a e 454675 592 b -e 454675 452608 a e 456339 592 b -e 456339 452608 a e 458003 592 b -e 458003 452608 a e 459667 592 b -e 459667 452608 a e 453832 592 b -e 453971 453832 b -e 453971 453888 a e 455496 592 b -e 455635 455496 b -e 455635 455552 a e 457160 592 b -e 457299 457160 b -e 457299 457216 a e 458824 592 b -e 458963 458824 b -e 458963 458880 a e 460488 592 b -e 460627 460488 b -e 460627 460544 a e 466579 592 b -e 466579 466496 a e 471955 592 b -e 471955 471872 a e 477907 592 b -e 477907 477824 a e 486611 592 b -e 486611 486528 a e 490131 592 b -e 490131 486528 a e 489288 592 b -e 489427 489288 b -e 489427 489344 a e 495379 592 b -e 495379 495296 a e 500563 592 b -e 500563 500480 a e 508115 592 b -e 508115 508032 a e 510792 592 b -e 510931 510792 b -e 510931 510848 a e 516499 592 b -e 516499 516416 a e 521683 592 b -e 521683 521600 a e 527251 592 b -e 527251 527168 a e 534419 592 b -e 534419 534336 a e 542739 592 b -e 542739 542656 a e 551699 592 b -e 551699 551616 a e 560915 592 b -e 560915 560832 a e 566291 592 b -e 566291 566208 a e 572051 592 b -e 572051 571968 a e 579155 592 b -e 579155 579072 a e 591571 592 b -e 591571 591488 a e 592403 592 b -e 592403 592320 a e 596627 592 b -e 596627 596544 a e 599699 592 b -e 599699 599616 a e 600403 592 b -e 600403 600320 a e 604627 592 b -e 604627 604544 a e 608659 592 b -e 608659 608576 a e 613651 592 b -e 613651 613568 a e 619923 592 b -e 619923 619840 a e 621576 592 b -e 621715 621576 b -e 621715 621632 a e 626963 592 b -e 626963 626880 a e 633811 592 b -e 633811 633728 a e 641747 592 b -e 641747 641664 a e 647827 592 b -e 647827 647744 a e 653779 592 b -e 653779 653696 a e 659923 592 b -e 659923 659840 a e 666963 592 b -e 666963 666880 a e 673491 592 b -e 673491 673408 a e 679315 592 b -e 679315 679232 a e 684883 592 b -e 684883 684800 a e 690899 592 b -e 690899 690816 a e 692563 592 b -e 692563 690816 a e 691720 592 b -e 691859 691720 b -e 691859 691776 a e 693320 592 b -e 693459 693320 b -e 693459 693376 a e 698835 592 b -e 698835 698752 a e 706515 592 b -e 706515 706432 a e 714067 592 b -e 714067 713984 a e 720403 592 b -e 720403 720320 a e 726995 592 b -e 726995 726912 a e 735827 592 b -e 735827 735744 a e 742739 592 b -e 742739 742656 a e 749395 592 b -e 749395 749312 a e 751304 592 b -e 751443 751304 b -e 751443 751360 a e 758227 592 b -e 758227 758144 a e 760648 592 b -e 760787 760648 b -e 760787 760704 a e 766419 592 b -e 766419 766336 a e 772435 592 b -e 772435 772352 a e 780819 592 b -e 780819 780736 a e 789587 592 b -e 789587 789504 a e 792264 592 b -e 792403 792264 b -e 792403 792320 a e 799443 592 b -e 799443 799360 a e 801864 592 b -e 802003 801864 b -e 802003 801920 a e 808147 592 b -e 808147 808064 a e 813715 592 b -e 813715 813632 a e 817808 592 ba -e 819968 817808 a -e 820035 819968 a e 822291 592 b -e 822291 822208 a e 827155 592 b -e 827155 822208 a e 833811 592 b -e 833811 833728 a e 837584 592 ba -e 840467 837584 b -e 840467 840384 a -e 842387 837584 b -e 842387 840384 a -e 841608 837584 b -e 841747 841608 b -e 841747 841664 a -e 843144 837584 b -e 843283 843144 b -e 843283 843200 a -e 840384 837584 a -e 841664 840384 a -e 843200 840384 a e 848915 592 b -e 848915 848832 a e 854867 592 b -e 854867 854784 a e 862611 592 b -e 862611 862528 a e 864968 592 b -e 865107 864968 b -e 865107 865024 a e 870931 592 b -e 870931 870848 a e 877139 592 b -e 877139 877056 a e 883091 592 b -e 883091 883008 a e 892179 592 b -e 892179 892096 a e 895827 592 b -e 895827 892096 a e 897491 592 b -e 897491 892096 a e 894984 592 b -e 895123 894984 b -e 895123 895040 a e 896648 592 b -e 896787 896648 b -e 896787 896704 a e 898312 592 b -e 898451 898312 b -e 898451 898368 a e 905043 592 b -e 905043 904960 a e 913875 592 b -e 913875 913792 a e 916168 592 b -e 916307 916168 b -e 916307 916224 a e 922003 592 b -e 922003 921920 a e 927443 592 b -e 927443 927360 a e 933075 592 b -e 933075 932992 a e 939155 592 b -e 939155 939072 a e 946131 592 b -e 946131 946048 a e 953427 592 b -e 953427 953344 a e 965203 592 b -e 965203 965120 a e 967635 592 b -e 967635 965120 a e 969299 592 b -e 969299 965120 a e 966792 592 b -e 966931 966792 b -e 966931 966848 a e 968456 592 b -e 968595 968456 b -e 968595 968512 a e 970120 592 b -e 970259 970120 b -e 970259 970176 a e 976019 592 b -e 976019 975936 a e 981203 592 b -e 981203 981120 a e 986259 592 b -e 986259 986176 a e 992083 592 b -e 992083 992000 a e 994056 592 b -e 994195 994056 b -e 994195 994112 a e 999827 592 b -e 999827 999744 a e 1006227 592 b -e 1006227 1006144 a e 1007880 592 b -e 1008019 1007880 b -e 1008019 1007936 a e 1014611 592 b -e 1014611 1014528 a e 1016648 592 b -e 1016787 1016648 b -e 1016787 1016704 a e 1022739 592 b -e 1022739 1022656 a e 1023944 592 b -e 1024083 1023944 b -e 1024083 1024000 a e 1030355 592 b -e 1030355 1030272 a e 1032008 592 b -e 1032147 1032008 b -e 1032147 1032064 a e 1042771 592 b -e 1042771 1042688 a e 1044040 592 b -e 1044179 1044040 b -e 1044179 1044096 a e 1054867 592 b -e 1054867 1054784 a e 1064211 592 b -e 1064211 1064128 a e 1066771 592 b -e 1066771 1064128 a e 1065928 592 b -e 1066067 1065928 b -e 1066067 1065984 a e 1075219 592 b -e 1075219 1075136 a e 1077128 592 b -e 1077267 1077128 b -e 1077267 1077184 a e 1089299 592 b -e 1089299 1089216 a e 1124435 592 b -e 1124435 1124352 a e 1126867 592 b -e 1126867 1124352 a e 1128403 592 b -e 1128403 1124352 a e 1130003 592 b -e 1130003 1124352 a e 1126024 592 b -e 1126163 1126024 b -e 1126163 1126080 a e 1127624 592 b -e 1127763 1127624 b -e 1127763 1127680 a e 1129160 592 b -e 1129299 1129160 b -e 1129299 1129216 a e 1136019 592 b -e 1136019 1135936 a e 1142419 592 b -e 1142419 1142336 a e 1147731 592 b -e 1147731 1147648 a e 1152979 592 b -e 1152979 1152896 a e 1158803 592 b -e 1158803 1158720 a e 1164819 592 b -e 1164819 1164736 a e 1166024 592 b -e 1166163 1166024 b -e 1166163 1166080 a e 1173387 592 b e 1177235 592 b -e 1177235 1177152 a e 1179155 592 b -e 1179155 1177152 a e 1178376 592 b -e 1178515 1178376 b -e 1178515 1178432 a e 1185235 592 b -e 1185235 1185152 a e 1186824 592 b -e 1186963 1186824 b -e 1186963 1186880 a e 1193875 592 b -e 1193875 1193792 a e 1195923 592 b -e 1195923 1193792 a e 1197587 592 b -e 1197587 1193792 a e 1195080 592 b -e 1195219 1195080 b -e 1195219 1195136 a e 1196744 592 b -e 1196883 1196744 b -e 1196883 1196800 a e 1198408 592 b -e 1198547 1198408 b -e 1198547 1198464 a e 1204371 592 b -e 1204371 1204288 a e 1209811 592 b -e 1209811 1209728 a e 1215379 592 b -e 1215379 1215296 a e 1223499 592 b e 1226771 592 b -e 1226771 1226688 a e 1232403 592 b -e 1232403 1232320 a e 1237779 592 b -e 1237779 1237696 a e 1242064 592 ba -e 1244179 1242064 b -e 1244179 1244096 a -e 1244096 1242064 a e 1250387 592 b -e 1250387 1250304 a e 1255571 592 b -e 1255571 1255488 a e 1260563 592 b -e 1260563 1260480 a e 1265427 592 b -e 1265427 1265344 a e 1293587 592 b -e 1293587 1293504 a e 1307411 592 b -e 1307411 1307328 a e 1312723 592 b -e 1312723 1312640 a e 1328979 592 b -e 1328979 1328896 a e 1338259 592 b -e 1338259 1338176 a e 1344595 592 b -e 1344595 1344512 a e 1350163 592 b -e 1350163 1350080 a e 1364307 592 b -e 1364307 1364224 a e 1369363 592 b -e 1369363 1369280 a e 1372816 592 ba -e 1374931 1372816 b -e 1374931 1374848 a -e 1374848 1372816 a e 1381139 592 b -e 1381139 1381056 a e 1386451 592 b -e 1386451 1386368 a e 1389904 592 ba -e 1392019 1389904 b -e 1392019 1391936 a -e 1391936 1389904 a e 1396432 592 ba -e 1398419 1396432 b -e 1398419 1398336 a -e 1398336 1396432 a e 1404243 592 b -e 1404243 1404160 a e 1407760 592 ba -e 1409939 1407760 b -e 1409939 1409856 a -e 1409856 1407760 a e 1431376 592 ba -e 1433171 1431376 b -e 1433171 1433088 a -e 1433088 1431376 a e 1451731 592 b -e 1451731 1451648 a e 1457107 592 b -e 1457107 1457024 a e 1462483 592 b -e 1462483 1462400 a e 1472595 592 b -e 1472595 1472512 a e 1477843 592 b -e 1477843 1477760 a e 1481808 592 ba -e 1483923 1481808 b -e 1483923 1483840 a -e 1483840 1481808 a e 1503251 592 b -e 1503251 1503168 a e 1511123 592 b -e 1511123 1511040 a e 1514248 592 b -e 1514387 1514248 b -e 1514387 1514304 a e 1520851 592 b -e 1520851 1520768 a e 1522120 592 b -e 1522259 1522120 b -e 1522259 1522176 a e 1529491 592 b -e 1529491 1529408 a e 1532243 592 b -e 1532243 1529408 a e 1531400 592 b -e 1531539 1531400 b -e 1531539 1531456 a e 1543571 592 b -e 1543571 1543488 a e 1551763 592 b -e 1551763 1551680 a e 1555091 592 b -e 1555091 1551680 a e 1554248 592 b -e 1554387 1554248 b -e 1554387 1554304 a e 1564819 592 b -e 1564819 1564736 a e 1571923 592 b -e 1571923 1571840 a e 1577363 592 b -e 1577363 1577280 a e 1584787 592 b -e 1584787 1584704 a e 1587347 592 b -e 1587347 1584704 a e 1586504 592 b -e 1586643 1586504 b -e 1586643 1586560 a e 1588232 592 b -e 1588371 1588232 b -e 1588371 1588288 a e 1594451 592 b -e 1594451 1594368 a e 1601107 592 b -e 1601107 1601024 a e 1608275 592 b -e 1608275 1608192 a e 1610771 592 b -e 1610771 1608192 a e 1609928 592 b -e 1610067 1609928 b -e 1610067 1609984 a e 1611592 592 b -e 1611731 1611592 b -e 1611731 1611648 a e 1618707 592 b -e 1618707 1618624 a e 1630227 592 b -e 1630227 1630144 a e 1639251 592 b -e 1639251 1639168 a e 1647571 592 b -e 1647571 1647488 a e 1658323 592 b -e 1658323 1658240 a e 1668243 592 b -e 1668243 1668160 a e 1671571 592 b -e 1671571 1668160 a e 1670728 592 b -e 1670867 1670728 b -e 1670867 1670784 a e 1677843 592 b -e 1677843 1677760 a e 1679496 592 b -e 1679635 1679496 b -e 1679635 1679552 a e 1689555 592 b -e 1689555 1689472 a e 1691987 592 b -e 1691987 1689472 a e 1691144 592 b -e 1691283 1691144 b -e 1691283 1691200 a e 1705235 592 b -e 1705235 1705152 a e 1707283 592 b -e 1707283 1705152 a e 1706440 592 b -e 1706579 1706440 b -e 1706579 1706496 a e 1714387 592 b -e 1714387 1714304 a e 1716435 592 b -e 1716435 1714304 a e 1715592 592 b -e 1715731 1715592 b -e 1715731 1715648 a e 1717256 592 b -e 1717395 1717256 b -e 1717395 1717312 a e 1722579 592 b -e 1722579 1722496 a e 1727955 592 b -e 1727955 1727872 a e 1736595 592 b -e 1736595 1736512 a e 1740048 592 ba -e 1741971 1740048 b -e 1741971 1741888 a -e 1741888 1740048 a e 1747667 592 b -e 1747667 1747584 a e 1753491 592 b -e 1753491 1753408 a e 1763027 592 b -e 1763027 1762944 a e 1768787 592 b -e 1768787 1762944 a e 1768008 592 b -e 1768147 1768008 b -e 1768147 1768064 a e 1780115 592 b -e 1780115 1780032 a e 1781832 592 b -e 1781971 1781832 b -e 1781971 1781888 a e 1788307 592 b -e 1788307 1788224 a e 1789576 592 b -e 1789715 1789576 b -e 1789715 1789632 a e 1800083 592 b -e 1800083 1800000 a e 1801288 592 b -e 1801427 1801288 b -e 1801427 1801344 a e 1811923 592 b -e 1811923 1811840 a e 1820499 592 b -e 1820499 1820416 a e 1823952 592 ba -e 1826067 1823952 b -e 1826067 1825984 a -e 1825984 1823952 a e 1832019 592 b -e 1832019 1831936 a e 1837523 592 b -e 1837523 1837440 a e 1844051 592 b -e 1844051 1843968 a e 1851411 592 b -e 1851411 1851328 a e 1856723 592 b -e 1856723 1856640 a e 1862099 592 b -e 1862099 1862016 a e 1867347 592 b -e 1867347 1867264 a e 1877779 592 b -e 1877779 1877696 a e 1885651 592 b -e 1885651 1885568 a e 1891795 592 b -e 1891795 1891712 a e 1895184 592 ba -e 1897299 1895184 b -e 1897299 1897216 a -e 1897216 1895184 a e 1902931 592 b -e 1902931 1902848 a e 1907792 592 ba -e 1910291 1907792 b -e 1910291 1910208 a -e 1910208 1907792 a e 1917651 592 b -e 1917651 1917568 a e 1923603 592 b -e 1923603 1923520 a e 1927632 592 ba -e 1929875 1927632 b -e 1929875 1929792 a -e 1929792 1927632 a e 1934416 592 ba -e 1936467 1934416 b -e 1936467 1936384 a -e 1936384 1934416 a e 1940496 592 ba -e 1942739 1940496 b -e 1942739 1942656 a -e 1942656 1940496 a e 1949075 592 b -e 1949075 1948992 a e 1953936 592 ba -e 1956499 1953936 b -e 1956499 1956416 a -e 1956416 1953936 a e 1962064 592 ba -e 1964627 1962064 b -e 1964627 1964544 a -e 1964544 1962064 a e 1975891 592 b -e 1975891 1975808 a e 1982099 592 b -e 1982099 1975808 a e 1981256 592 b -e 1981395 1981256 b -e 1981395 1981312 a e 1982472 592 b -e 1982611 1982472 b -e 1982611 1982528 a e 1990803 592 b -e 1990803 1990720 a e 1993747 592 b -e 1993747 1990720 a e 1992904 592 b -e 1993043 1992904 b -e 1993043 1992960 a e 1994504 592 b -e 1994643 1994504 b -e 1994643 1994560 a e 2000275 592 b -e 2000275 2000192 a e 2005587 592 b -e 2005587 2005504 a e 2012499 592 b -e 2012499 2012416 a e 2015315 592 b -e 2015315 2012416 a e 2014472 592 b -e 2014611 2014472 b -e 2014611 2014528 a e 2016072 592 b -e 2016211 2016072 b -e 2016211 2016128 a e 2024080 592 ba -e 2026067 2024080 b -e 2026067 2025984 a -e 2025984 2024080 a e 2031955 592 b -e 2031955 2031872 a e 2038099 592 b -e 2038099 2038016 a e 2043859 592 b -e 2043859 2043776 a e 2049491 592 b -e 2049491 2049408 a e 2055187 592 b -e 2055187 2055104 a e 2067984 592 ba -e 2070163 2067984 b -e 2070163 2070080 a -e 2070080 2067984 a e 2075731 592 b -e 2075731 2075648 a e 2085776 592 ba -e 2087891 2085776 b -e 2087891 2087808 a -e 2087808 2085776 a e 2091984 592 ba -e 2094099 2091984 b -e 2094099 2094016 a -e 2094016 2091984 a e 2108051 592 b -e 2108051 2107968 a e 2113363 592 b -e 2113363 2113280 a e 2137360 592 ba -e 2139347 2137360 b -e 2139347 2139264 a -e 2139264 2137360 a e 2145043 592 b -e 2145043 2144960 a e 2149971 592 b -e 2149971 2149888 a e 2159507 592 b -e 2159507 2159424 a e 2160328 592 b -e 2160467 2160328 b -e 2160467 2160384 a e 2166099 592 b -e 2166099 2166016 a e 2167368 592 b -e 2167507 2167368 b -e 2167507 2167424 a e 2177683 592 b -e 2177683 2177600 a e 2185163 592 b e 2190283 592 b e 2191699 592 b -e 2191699 2191616 a e 2192915 592 b -e 2192915 2192832 a e 2198547 592 b -e 2198547 2198464 a e 2204115 592 b -e 2204115 2204032 a e 2210387 592 b -e 2210387 2210304 a e 2215571 592 b -e 2215571 2215488 a e 2219155 592 b -e 2219155 2219072 a e 2220115 592 b -e 2220115 2220032 a e 2225811 592 b -e 2225811 2225728 a e 2230163 592 b -e 2230163 2230080 a e 2237587 592 b -e 2237587 2237504 a e 2243795 592 b -e 2243795 2243712 a e 2250515 592 b -e 2250515 2250432 a e 2256659 592 b -e 2256659 2256576 a e 2271315 592 b -e 2271315 2271232 a e 2283347 592 b -e 2283347 2283264 a e 2290451 592 b -e 2290451 2290368 a e 2297235 592 b -e 2297235 2297152 a e 2302803 592 b -e 2302803 2302720 a e 2308563 592 b -e 2308563 2308480 a e 2314963 592 b -e 2314963 2314880 a e 2328147 592 b -e 2328147 2328064 a e 2339091 592 b -e 2339091 2339008 a e 2344723 592 b -e 2344723 2344640 a e 2350483 592 b -e 2350483 2350400 a e 2361491 592 b -e 2361491 2361408 a e 2367251 592 b -e 2367251 2367168 a e 2380883 592 b -e 2380883 2380800 a e 2409043 592 b -e 2409043 2408960 a e 2421587 592 b -e 2421587 2421504 a e 2427219 592 b -e 2427219 2427136 a e 2448019 592 b -e 2448019 2447936 a e 2453907 592 b -e 2453907 2453824 a e 2460755 592 b -e 2460755 2460672 a e 2466451 592 b -e 2466451 2466368 a e 2472915 592 b -e 2472915 2472832 a e 2478611 592 b -e 2478611 2478528 a e 2494611 592 b -e 2494611 2494528 a e 2499987 592 b -e 2499987 2499904 a e 2514579 592 b -e 2514579 2514496 a e 2525971 592 b -e 2525971 2525888 a e 2538067 592 b -e 2538067 2537984 a e 2544019 592 b -e 2544019 2543936 a e 2551123 592 b -e 2551123 2551040 a e 2558099 592 b -e 2558099 2558016 a e 2564115 592 b -e 2564115 2564032 a e 2584915 592 b -e 2584915 2584832 a e 2595347 592 b -e 2595347 2595264 a e 2607443 592 b -e 2607443 2607360 a e 2609608 592 b -e 2609747 2609608 b -e 2609747 2609664 a e 2615763 592 b -e 2615763 2615680 a e 2623187 592 b -e 2623187 2623104 a e 2628883 592 b -e 2628883 2628800 a e 2634515 592 b -e 2634515 2634432 a e 2640147 592 b -e 2640147 2640064 a e 2645779 592 b -e 2645779 2645696 a e 2651603 592 b -e 2651603 2651520 a e 2699987 592 b -e 2699987 2699904 a e 2722771 592 b -e 2722771 2722688 a e 2737107 592 b -e 2737107 2737024 a e 2750611 592 b -e 2750611 2750528 a e 2760531 592 b -e 2760531 2760448 a e 2776851 592 b -e 2776851 2776768 a e 2787731 592 b -e 2787731 2787648 a e 2798803 592 b -e 2798803 2798720 a e 2804563 592 b -e 2804563 2804480 a e 2812880 592 ba -e 2816851 2812880 b -e 2816851 2816768 a -e 2816768 2812880 a e 2828304 592 ba -e 2830483 2828304 b -e 2830483 2830400 a -e 2830400 2828304 a e 2853395 592 b -e 2853395 2853312 a e 2873299 592 b -e 2873299 2873216 a e 2883603 592 b -e 2883603 2883520 a e 2899347 592 b -e 2899347 2899264 a e 2904907 592 b e 2905107 592 b -e 2905107 2904960 a e 2908107 592 b e 2911827 592 b -e 2911827 2911744 a e 2932691 592 b -e 2932691 2932608 a e 2938515 592 b -e 2938515 2938432 a e 2960851 592 b -e 2960851 2960768 a e 2966483 592 b -e 2966483 2966400 a e 2972243 592 b -e 2972243 2972160 a e 2992851 592 b -e 2992851 2992768 a e 3004947 592 b -e 3004947 3004864 a e 3011283 592 b -e 3011283 3011200 a e 3029843 592 b -e 3029843 3029760 a e 3035539 592 b -e 3035539 3035456 a e 3041299 592 b -e 3041299 3041216 a e 3047763 592 b -e 3047763 3047680 a e 3053971 592 b -e 3053971 3053888 a e 3096851 592 b -e 3096851 3096768 a e 3102483 592 b -e 3102483 3102400 a e 3113107 592 b -e 3113107 3113024 a e 3118995 592 b -e 3118995 3118912 a e 3124819 592 b -e 3124819 3124736 a e 3130643 592 b -e 3130643 3130560 a e 3142419 592 b -e 3142419 3142336 a e 3155091 592 b -e 3155091 3155008 a e 3166675 592 b -e 3166675 3166592 a e 3176787 592 b -e 3176787 3176704 a e 3182227 592 b -e 3182227 3182144 a e 3187859 592 b -e 3187859 3187776 a e 3199059 592 b -e 3199059 3198976 a e 3204627 592 b -e 3204627 3204544 a e 3220371 592 b -e 3220371 3220288 a e 3233683 592 b -e 3233683 3233600 a e 3239507 592 b -e 3239507 3239424 a e 3246035 592 b -e 3246035 3245952 a e 3257107 592 b -e 3257107 3257024 a e 3260688 592 ba -e 3262931 3260688 b -e 3262931 3262848 a -e 3262848 3260688 a e 3268048 592 ba -e 3269971 3268048 b -e 3269971 3269888 a -e 3269888 3268048 a e 3273872 592 ba -e 3277579 3273872 b -e 3277635 3273872 a e 3281939 592 b -e 3281939 3281856 a e 3307155 592 b -e 3307155 3307072 a e 3357779 592 b -e 3357779 3357696 a e 3365075 592 b -e 3365075 3364992 a e 3372499 592 b -e 3372499 3372416 a e 3378067 592 b -e 3378067 3377984 a e 3383763 592 b -e 3383763 3383680 a e 3389843 592 b -e 3389843 3389760 a e 3391368 592 b -e 3391507 3391368 b -e 3391507 3391424 a e 3404243 592 b -e 3404243 3404160 a e 3411347 592 b -e 3411347 3411264 a e 3412552 592 b -e 3412691 3412552 b -e 3412691 3412608 a e 3418131 592 b -e 3418131 3418048 a e 3425171 592 b -e 3425171 3425088 a e 3427784 592 b -e 3427923 3427784 b -e 3427923 3427840 a e 3434131 592 b -e 3434131 3434048 a e 3440659 592 b -e 3440659 3440576 a e 3452179 592 b -e 3452179 3452096 a e 3453896 592 b -e 3454035 3453896 b -e 3454035 3453952 a e 3461011 592 b -e 3461011 3460928 a e 3463176 592 b -e 3463315 3463176 b -e 3463315 3463232 a e 3469011 592 b -e 3469011 3468928 a e 3484563 592 b -e 3484563 3484480 a e 3485587 592 b -e 3485587 3485504 a e 3495827 592 b -e 3495827 3495744 a e 3502931 592 b -e 3502931 3502848 a e 3508691 592 b -e 3508691 3508608 a e 3513747 592 b -e 3513747 3513664 a e 3520339 592 b -e 3520339 3520256 a e 3522771 592 b -e 3522771 3520256 a e 3521928 592 b -e 3522067 3521928 b -e 3522067 3521984 a e 3523592 592 b -e 3523731 3523592 b -e 3523731 3523648 a e 3529875 592 b -e 3529875 3529792 a e 3531080 592 b -e 3531219 3531080 b -e 3531219 3531136 a e 3537171 592 b -e 3537171 3537088 a e 3544147 592 b -e 3544147 3544064 a e 3550803 592 b -e 3550803 3550720 a e 3558355 592 b -e 3558355 3558272 a e 3564115 592 b -e 3564115 3564032 a e 3569939 592 b -e 3569939 3569856 a e 3576211 592 b -e 3576211 3576128 a e 3582035 592 b -e 3582035 3581952 a e 3593043 592 b -e 3593043 3592960 a e 3598547 592 b -e 3598547 3598464 a e 3604435 592 b -e 3604435 3604352 a e 3605768 592 b -e 3605907 3605768 b -e 3605907 3605824 a e 3612755 592 b -e 3612755 3612672 a e 3614472 592 b -e 3614611 3614472 b -e 3614611 3614528 a e 3621139 592 b -e 3621139 3621056 a e 3622408 592 b -e 3622547 3622408 b -e 3622547 3622464 a e 3628371 592 b -e 3628371 3628288 a e 3629192 592 b -e 3629331 3629192 b -e 3629331 3629248 a e 3635347 592 b -e 3635347 3635264 a e 3637000 592 b -e 3637139 3637000 b -e 3637139 3637056 a e 3643027 592 b -e 3643027 3642944 a e 3649875 592 b -e 3649875 3649792 a e 3651528 592 b -e 3651667 3651528 b -e 3651667 3651584 a e 3656851 592 b -e 3656851 3656768 a e 3662803 592 b -e 3662803 3662720 a e 3664456 592 b -e 3664595 3664456 b -e 3664595 3664512 a e 3668240 592 ba -e 3670035 3668240 b -e 3670035 3669952 a -e 3669952 3668240 a e 3684883 592 b -e 3684883 3684800 a e 3686867 592 b -e 3686867 3684800 a e 3688467 592 b -e 3688467 3684800 a e 3689619 592 b -e 3689619 3684800 a e 3686024 592 b -e 3686163 3686024 b -e 3686163 3686080 a e 3687624 592 b -e 3687763 3687624 b -e 3687763 3687680 a e 3688840 592 b -e 3688979 3688840 b -e 3688979 3688896 a e 3689992 592 b -e 3690131 3689992 b -e 3690131 3690048 a e 3695763 592 b -e 3695763 3695680 a e 3701139 592 b -e 3701139 3701056 a e 3701896 592 b -e 3702035 3701896 b -e 3702035 3701952 a e 3707219 592 b -e 3707219 3707136 a e 3708360 592 b -e 3708499 3708360 b -e 3708499 3708416 a e 3713555 592 b -e 3713555 3713472 a e 3718803 592 b -e 3718803 3718720 a e 3719944 592 b -e 3720083 3719944 b -e 3720083 3720000 a e 3725267 592 b -e 3725267 3725184 a e 3730451 592 b -e 3730451 3730368 a e 3735955 592 b -e 3735955 3735872 a e 3743571 592 b -e 3743571 3743488 a e 3745096 592 b -e 3745235 3745096 b -e 3745235 3745152 a e 3750867 592 b -e 3750867 3750784 a e 3766803 592 b -e 3766803 3766720 a e 3782099 592 b -e 3782099 3782016 a e 3790355 592 b -e 3790355 3790272 a e 3799635 592 b -e 3799635 3799552 a e 3802067 592 b -e 3802067 3799552 a e 3803731 592 b -e 3803731 3799552 a e 3801224 592 b -e 3801363 3801224 b -e 3801363 3801280 a e 3802888 592 b -e 3803027 3802888 b -e 3803027 3802944 a e 3812883 592 b -e 3812883 3812800 a e 3822675 592 b -e 3822675 3822592 a e 3825107 592 b -e 3825107 3822592 a e 3826771 592 b -e 3826771 3822592 a e 3824264 592 b -e 3824403 3824264 b -e 3824403 3824320 a e 3825928 592 b -e 3826067 3825928 b -e 3826067 3825984 a e 3837715 592 b -e 3837715 3837632 a e 3838920 592 b -e 3839059 3838920 b -e 3839059 3838976 a e 3845779 592 b -e 3845779 3845696 a e 3848072 592 b -e 3848211 3848072 b -e 3848211 3848128 a e 3856915 592 b -e 3856915 3856832 a e 3859411 592 b -e 3859411 3856832 a e 3861075 592 b -e 3861075 3856832 a e 3862355 592 b -e 3862355 3856832 a e 3858568 592 b -e 3858707 3858568 b -e 3858707 3858624 a e 3860232 592 b -e 3860371 3860232 b -e 3860371 3860288 a e 3861512 592 b -e 3861651 3861512 b -e 3861651 3861568 a e 3863560 592 b -e 3863699 3863560 b -e 3863699 3863616 a e 3869715 592 b -e 3869715 3869632 a e 3878803 592 b -e 3878803 3878720 a e 3881235 592 b -e 3881235 3878720 a e 3882899 592 b -e 3882899 3878720 a e 3880392 592 b -e 3880531 3880392 b -e 3880531 3880448 a e 3882056 592 b -e 3882195 3882056 b -e 3882195 3882112 a e 3883720 592 b -e 3883859 3883720 b -e 3883859 3883776 a e 3893203 592 b -e 3893203 3893120 a e 3896467 592 b -e 3896467 3893120 a e 3898131 592 b -e 3898131 3893120 a e 3899411 592 b -e 3899411 3893120 a e 3895624 592 b -e 3895763 3895624 b -e 3895763 3895680 a e 3897288 592 b -e 3897427 3897288 b -e 3897427 3897344 a e 3898568 592 b -e 3898707 3898568 b -e 3898707 3898624 a e 3900616 592 b -e 3900755 3900616 b -e 3900755 3900672 a e 3907731 592 b -e 3907731 3907648 a e 3918739 592 b -e 3918739 3918656 a e 3921171 592 b -e 3921171 3918656 a e 3922835 592 b -e 3922835 3918656 a e 3924499 592 b -e 3924499 3918656 a e 3920328 592 b -e 3920467 3920328 b -e 3920467 3920384 a e 3921992 592 b -e 3922131 3921992 b -e 3922131 3922048 a e 3923656 592 b -e 3923795 3923656 b -e 3923795 3923712 a e 3925256 592 b -e 3925395 3925256 b -e 3925395 3925312 a e 3931603 592 b -e 3931603 3931520 a e 3938003 592 b -e 3938003 3937920 a e 3939272 592 b -e 3939411 3939272 b -e 3939411 3939328 a e 3946323 592 b -e 3946323 3946240 a e 3948243 592 b -e 3948243 3946240 a e 3949779 592 b -e 3949779 3946240 a e 3947464 592 b -e 3947603 3947464 b -e 3947603 3947520 a e 3949000 592 b -e 3949139 3949000 b -e 3949139 3949056 a e 3950536 592 b -e 3950675 3950536 b -e 3950675 3950592 a e 3956307 592 b -e 3956307 3956224 a e 3962579 592 b -e 3962579 3962496 a e 3964755 592 b -e 3964755 3962496 a e 3963912 592 b -e 3964051 3963912 b -e 3964051 3963968 a e 3965640 592 b -e 3965779 3965640 b -e 3965779 3965696 a e 3971411 592 b -e 3971411 3971328 a e 3978387 592 b -e 3978387 3978304 a e 3981064 592 b -e 3981203 3981064 b -e 3981203 3981120 a e 3988691 592 b -e 3988691 3988608 a e 4001427 592 b -e 4001427 4001344 a e 4006355 592 b -e 4006355 4006272 a e 4012755 592 b -e 4012755 4012672 a e 4026643 592 b -e 4026643 4026560 a e 4030160 592 ba -e 4032275 4030160 b -e 4032275 4032192 a -e 4032192 4030160 a e 4038547 592 b -e 4038547 4038464 a e 4043859 592 b -e 4043859 4043776 a e 4047824 592 ba -e 4049939 4047824 b -e 4049939 4049856 a -e 4049856 4047824 a e 4054032 592 ba -e 4056275 4054032 b -e 4056275 4056192 a -e 4056192 4054032 a e 4062227 592 b -e 4062227 4062144 a e 4068243 592 b -e 4068243 4068160 a e 4074899 592 b -e 4074899 4074816 a e 4082323 592 b -e 4082323 4082240 a e 4084691 592 b -e 4084691 4082240 a e 4083848 592 b -e 4083987 4083848 b -e 4083987 4083904 a e 4085064 592 b -e 4085203 4085064 b -e 4085203 4085120 a e 4090259 592 b -e 4090259 4090176 a e 4095187 592 b -e 4095187 4095104 a e 4096712 592 b -e 4096851 4096712 b -e 4096851 4096768 a e 4102355 592 b -e 4102355 4102272 a e 4137168 592 ba -e 4139347 4137168 b -e 4139347 4139264 a -e 4139264 4137168 a e 4145363 592 b -e 4145363 4145280 a e 4153171 592 b -e 4153171 4153088 a e 4155155 592 b -e 4155155 4153088 a e 4156435 592 b -e 4156435 4153088 a e 4158035 592 b -e 4158035 4153088 a e 4154312 592 b -e 4154451 4154312 b -e 4154451 4154368 a e 4155592 592 b -e 4155731 4155592 b -e 4155731 4155648 a e 4157192 592 b -e 4157331 4157192 b -e 4157331 4157248 a e 4158792 592 b -e 4158931 4158792 b -e 4158931 4158848 a e 4166419 592 b -e 4166419 4166336 a e 4168851 592 b -e 4168851 4166336 a e 4170515 592 b -e 4170515 4166336 a e 4168008 592 b -e 4168147 4168008 b -e 4168147 4168064 a e 4169672 592 b -e 4169811 4169672 b -e 4169811 4169728 a e 4171336 592 b -e 4171475 4171336 b -e 4171475 4171392 a e 4177171 592 b -e 4177171 4177088 a e 4182867 592 b -e 4182867 4182784 a e 4189075 592 b -e 4189075 4188992 a e 4192203 592 b e 4195723 592 b e 4196491 592 b e 4213520 592 ba -e 4215699 4213520 b -e 4215699 4215616 a -e 4215616 4213520 a e 4227280 592 ba -e 4229331 4227280 b -e 4229331 4229248 a -e 4229248 4227280 a e 4232912 592 ba -e 4234963 4232912 b -e 4234963 4234880 a -e 4234880 4232912 a e 4240275 592 b -e 4240275 4240192 a e 4245587 592 b -e 4245587 4245504 a e 4255315 592 b -e 4255315 4255232 a e 4260819 592 b -e 4260819 4255232 a e 4260040 592 b -e 4260179 4260040 b -e 4260179 4260096 a e 4268947 592 b -e 4268947 4268864 a e 4279891 592 b -e 4279891 4279808 a e 4281811 592 b -e 4281811 4279808 a e 4281032 592 b -e 4281171 4281032 b -e 4281171 4281088 a e 4282696 592 b -e 4282835 4282696 b -e 4282835 4282752 a e 4288723 592 b -e 4288723 4288640 a e 4294675 592 b -e 4294675 4294592 a e 4296264 592 b -e 4296403 4296264 b -e 4296403 4296320 a e 4302931 592 b -e 4302931 4302848 a e 4305043 592 b -e 4305043 4302848 a e 4304200 592 b -e 4304339 4304200 b -e 4304339 4304256 a e 4305928 592 b -e 4306067 4305928 b -e 4306067 4305984 a e 4312275 592 b -e 4312275 4312192 a e 4313480 592 b -e 4313619 4313480 b -e 4313619 4313536 a e 4319443 592 b -e 4319443 4319360 a e 4326547 592 b -e 4326547 4326464 a e 4331408 592 ba -e 4333331 4331408 b -e 4333331 4333248 a -e 4333248 4331408 a e 4337168 592 ba -e 4339411 4337168 b -e 4339411 4339328 a -e 4339328 4337168 a e 4344336 592 ba -e 4346323 4344336 b -e 4346323 4346240 a -e 4346240 4344336 a e 4350288 592 ba -e 4353875 4350288 b -e 4353875 4353792 a -e 4356744 4350288 b -e 4356883 4356744 b -e 4356883 4356800 a -e 4353792 4350288 a -e 4356800 4353792 a e 4360720 592 ba -e 4362899 4360720 b -e 4362899 4362816 a -e 4362816 4360720 a e 4367696 592 ba -e 4368080 4367696 ba -e 4368139 4368080 b -e 4368195 4368080 a -e 4372363 4367696 b -e 4372995 4367696 a e 4374416 592 ba -e 4376339 4374416 b -e 4376339 4376256 a -e 4376256 4374416 a e 4384784 592 ba -e 4386707 4384784 b -e 4386707 4386624 a -e 4386624 4384784 a e 4390224 592 ba -e 4392019 4390224 b -e 4392019 4391936 a -e 4391936 4390224 a e 4395408 592 ba -e 4398163 4395408 b -e 4398163 4398080 a -e 4399752 4395408 b -e 4399891 4399752 b -e 4399891 4399808 a -e 4398080 4395408 a -e 4399808 4398080 a e 4403408 592 ba -e 4403792 4403408 ba -e 4403915 4403792 b -e 4404235 4403792 b -e 4404035 4403792 a -e 4404291 4403792 a -e 4405651 4403408 b -e 4405651 4405568 a -e 4406611 4403408 b -e 4406611 4405568 a -e 4406803 4403408 b -e 4406803 4405568 a -e 4406475 4403408 b -e 4406667 4403408 b -e 4408843 4403408 b -e 4407696 4403408 ba -e 4408139 4407696 b -e 4408195 4407696 a -e 4405568 4403408 a -e 4406531 4405568 a -e 4406723 4405568 a -e 4409091 4403408 a e 4410192 592 ba -e 4412371 4410192 b -e 4412371 4412288 a -e 4412288 4410192 a e 4416464 592 ba -e 4419731 4416464 b -e 4419731 4419648 a -e 4421779 4416464 b -e 4421779 4419648 a -e 4420936 4416464 b -e 4421075 4420936 b -e 4421075 4420992 a -e 4422600 4416464 b -e 4422739 4422600 b -e 4422739 4422656 a -e 4419648 4416464 a -e 4420992 4419648 a -e 4422656 4419648 a e 4426448 592 ba -e 4428947 4426448 b -e 4428947 4428864 a -e 4428864 4426448 a e 4438160 592 ba -e 4440083 4438160 b -e 4440083 4440000 a -e 4440000 4438160 a e 4443600 592 ba -e 4446355 4443600 b -e 4446355 4446272 a -e 4447944 4443600 b -e 4448083 4447944 b -e 4448083 4448000 a -e 4446272 4443600 a -e 4448000 4446272 a e 4451600 592 ba -e 4453459 4451600 b -e 4453459 4453376 a -e 4453376 4451600 a e 4456976 592 ba -e 4459155 4456976 b -e 4459155 4459072 a -e 4459072 4456976 a e 4463248 592 ba -e 4466515 4463248 b -e 4466515 4466432 a -e 4468563 4463248 b -e 4468563 4466432 a -e 4467720 4463248 b -e 4467859 4467720 b -e 4467859 4467776 a -e 4469384 4463248 b -e 4469523 4469384 b -e 4469523 4469440 a -e 4466432 4463248 a -e 4467776 4466432 a -e 4469440 4466432 a e 4473232 592 ba -e 4475731 4473232 b -e 4475731 4475648 a -e 4475648 4473232 a e 4480272 592 ba -e 4484883 4480272 b -e 4484883 4484800 a -e 4489288 4480272 b -e 4489427 4489288 b -e 4489427 4489344 a -e 4484800 4480272 a -e 4489344 4484800 a e 4493648 592 ba -e 4494032 4493648 ba -e 4494155 4494032 b -e 4494851 4494032 a -e 4497555 4493648 b -e 4497555 4497472 a -e 4498131 4493648 b -e 4498131 4497472 a -e 4497995 4493648 b -e 4504715 4493648 b -e 4497472 4493648 a -e 4498051 4497472 a -e 4505539 4493648 a e 4507216 592 ba -e 4509267 4507216 b -e 4509267 4509184 a -e 4509184 4507216 a e 4513296 592 ba -e 4516563 4513296 b -e 4516563 4516480 a -e 4518536 4513296 b -e 4518675 4518536 b -e 4518675 4518592 a -e 4516480 4513296 a -e 4518592 4516480 a e 4522384 592 ba -e 4526803 4522384 b -e 4526803 4526720 a -e 4529683 4522384 b -e 4529683 4526720 a -e 4531347 4522384 b -e 4531347 4526720 a -e 4528840 4522384 b -e 4528979 4528840 b -e 4528979 4528896 a -e 4530504 4522384 b -e 4530643 4530504 b -e 4530643 4530560 a -e 4526720 4522384 a -e 4528896 4526720 a -e 4530560 4526720 a e 4536016 592 ba -e 4537875 4536016 b -e 4537875 4537792 a -e 4537792 4536016 a e 4541392 592 ba -e 4543699 4541392 b -e 4543699 4543616 a -e 4543616 4541392 a e 4548304 592 ba -e 4551571 4548304 b -e 4551571 4551488 a -e 4553619 4548304 b -e 4553619 4551488 a -e 4552776 4548304 b -e 4552915 4552776 b -e 4552915 4552832 a -e 4554440 4548304 b -e 4554579 4554440 b -e 4554579 4554496 a -e 4551488 4548304 a -e 4552832 4551488 a -e 4554496 4551488 a e 4558288 592 ba -e 4560787 4558288 b -e 4560787 4560704 a -e 4560704 4558288 a e 4565328 592 ba -e 4569235 4565328 b -e 4569235 4569152 a -e 4571347 4565328 b -e 4571347 4569152 a -e 4573075 4565328 b -e 4573075 4569152 a -e 4574739 4565328 b -e 4574739 4569152 a -e 4570504 4565328 b -e 4570643 4570504 b -e 4570643 4570560 a -e 4572232 4565328 b -e 4572371 4572232 b -e 4572371 4572288 a -e 4573896 4565328 b -e 4574035 4573896 b -e 4574035 4573952 a -e 4569152 4565328 a -e 4570560 4569152 a -e 4572288 4569152 a -e 4573952 4569152 a e 4578640 592 ba -e 4583251 4578640 b -e 4583251 4583168 a -e 4587784 4578640 b -e 4587923 4587784 b -e 4587923 4587840 a -e 4583168 4578640 a -e 4587840 4583168 a e 4592208 592 ba -e 4594963 4592208 b -e 4594963 4594880 a -e 4594880 4592208 a e 4601616 592 ba -e 4603475 4601616 b -e 4603475 4603392 a -e 4603392 4601616 a e 4611216 592 ba -e 4613267 4611216 b -e 4613267 4613184 a -e 4613184 4611216 a e 4617296 592 ba -e 4619219 4617296 b -e 4619219 4619136 a -e 4619136 4617296 a e 4622736 592 ba -e 4625555 4622736 b -e 4625555 4625472 a -e 4625472 4622736 a e 4632784 592 ba -e 4634963 4632784 b -e 4634963 4634880 a -e 4634880 4632784 a e 4639120 592 ba -e 4641107 4639120 b -e 4641107 4641024 a -e 4641024 4639120 a e 4644560 592 ba -e 4646675 4644560 b -e 4646675 4646592 a -e 4646592 4644560 a e 4651152 592 ba -e 4657427 4651152 b -e 4657427 4657344 a -e 4659475 4651152 b -e 4659475 4657344 a -e 4660627 4651152 b -e 4660627 4657344 a -e 4661779 4651152 b -e 4661779 4657344 a -e 4663443 4651152 b -e 4663443 4657344 a -e 4658632 4651152 b -e 4658771 4658632 b -e 4658771 4658688 a -e 4659848 4651152 b -e 4659987 4659848 b -e 4659987 4659904 a -e 4661000 4651152 b -e 4661139 4661000 b -e 4661139 4661056 a -e 4662600 4651152 b -e 4662739 4662600 b -e 4662739 4662656 a -e 4663816 4651152 b -e 4663955 4663816 b -e 4663955 4663872 a -e 4657344 4651152 a -e 4658688 4657344 a -e 4659904 4657344 a -e 4661056 4657344 a -e 4662656 4657344 a -e 4663872 4657344 a e 4667856 592 ba -e 4674131 4667856 b -e 4674131 4674048 a -e 4676179 4667856 b -e 4676179 4674048 a -e 4677331 4667856 b -e 4677331 4674048 a -e 4678611 4667856 b -e 4678611 4674048 a -e 4680275 4667856 b -e 4680275 4674048 a -e 4675336 4667856 b -e 4675475 4675336 b -e 4675475 4675392 a -e 4676552 4667856 b -e 4676691 4676552 b -e 4676691 4676608 a -e 4677768 4667856 b -e 4677907 4677768 b -e 4677907 4677824 a -e 4679432 4667856 b -e 4679571 4679432 b -e 4679571 4679488 a -e 4680648 4667856 b -e 4680787 4680648 b -e 4680787 4680704 a -e 4674048 4667856 a -e 4675392 4674048 a -e 4676608 4674048 a -e 4677824 4674048 a -e 4679488 4674048 a -e 4680704 4674048 a e 4684752 592 ba -e 4686867 4684752 b -e 4686867 4686784 a -e 4686784 4684752 a e 4696211 592 b -e 4696211 4696128 a e 4699795 592 b -e 4699795 4696128 a e 4701075 592 b -e 4701075 4696128 a e 4698952 592 b -e 4699091 4698952 b -e 4699091 4699008 a e 4700232 592 b -e 4700371 4700232 b -e 4700371 4700288 a e 4701512 592 b -e 4701651 4701512 b -e 4701651 4701568 a e 4708435 592 b -e 4708435 4708352 a e 4709704 592 b -e 4709843 4709704 b -e 4709843 4709760 a e 4716243 592 b -e 4716243 4716160 a e 4717512 592 b -e 4717651 4717512 b -e 4717651 4717568 a e 4723795 592 b -e 4723795 4723712 a e 4724936 592 b -e 4725075 4724936 b -e 4725075 4724992 a e 4728528 592 ba -e 4730579 4728528 b -e 4730579 4730496 a -e 4730496 4728528 a e 4734928 592 ba -e 4736979 4734928 b -e 4736979 4736896 a -e 4736896 4734928 a e 899 592 a e 3200 592 a e 8192 592 a @@ -4051,8 +2790,6 @@ e 37632 592 a e 41344 592 a e 42112 592 a e 50112 592 a -e 53696 50112 a -e 54976 50112 a e 60672 592 a e 66880 592 a e 74176 592 a @@ -4061,7 +2798,6 @@ e 93440 592 a e 99712 592 a e 104512 592 a e 112000 592 a -e 114560 112000 a e 120320 592 a e 126464 592 a e 132160 592 a @@ -4090,20 +2826,15 @@ e 297600 592 a e 302528 592 a e 306944 592 a e 312896 592 a -e 315136 312896 a e 320576 592 a e 325056 592 a e 328960 592 a e 334912 592 a -e 337472 334912 a e 343552 592 a -e 344832 343552 a e 350272 592 a e 356032 592 a e 360320 592 a e 366144 592 a -e 367424 366144 a -e 369088 366144 a e 374848 592 a e 381120 592 a e 386880 592 a @@ -4111,30 +2842,20 @@ e 392256 592 a e 397312 592 a e 401792 592 a e 408512 592 a -e 409792 408512 a e 415168 592 a -e 416512 415168 a e 421184 592 a e 426112 592 a e 431168 592 a e 436672 592 a e 443904 592 a -e 445248 443904 a e 452608 592 a -e 453888 452608 a -e 455552 452608 a -e 457216 452608 a -e 458880 452608 a -e 460544 452608 a e 466496 592 a e 471872 592 a e 477824 592 a e 486528 592 a -e 489344 486528 a e 495296 592 a e 500480 592 a e 508032 592 a -e 510848 508032 a e 516416 592 a e 521600 592 a e 527168 592 a @@ -4154,7 +2875,6 @@ e 604544 592 a e 608576 592 a e 613568 592 a e 619840 592 a -e 621632 619840 a e 626880 592 a e 633728 592 a e 641664 592 a @@ -4166,8 +2886,6 @@ e 673408 592 a e 679232 592 a e 684800 592 a e 690816 592 a -e 691776 690816 a -e 693376 690816 a e 698752 592 a e 706432 592 a e 713984 592 a @@ -4176,38 +2894,25 @@ e 726912 592 a e 735744 592 a e 742656 592 a e 749312 592 a -e 751360 749312 a e 758144 592 a -e 760704 758144 a e 766336 592 a e 772352 592 a e 780736 592 a e 789504 592 a -e 792320 789504 a e 799360 592 a -e 801920 799360 a e 808064 592 a e 813632 592 a e 822208 592 a -e 826496 822208 a -e 826563 826496 a -e 827904 822208 a -e 827971 827904 a e 833728 592 a e 848832 592 a e 854784 592 a e 862528 592 a -e 865024 862528 a e 870848 592 a e 877056 592 a e 883008 592 a e 892096 592 a -e 895040 892096 a -e 896704 892096 a -e 898368 892096 a e 904960 592 a e 913792 592 a -e 916224 913792 a e 921920 592 a e 927360 592 a e 932992 592 a @@ -4215,51 +2920,31 @@ e 939072 592 a e 946048 592 a e 953344 592 a e 965120 592 a -e 966848 965120 a -e 968512 965120 a -e 970176 965120 a e 975936 592 a e 981120 592 a e 986176 592 a e 992000 592 a -e 994112 992000 a e 999744 592 a e 1006144 592 a -e 1007936 1006144 a e 1014528 592 a -e 1016704 1014528 a e 1022656 592 a -e 1024000 1022656 a e 1030272 592 a -e 1032064 1030272 a e 1042688 592 a -e 1044096 1042688 a e 1054784 592 a e 1064128 592 a -e 1065984 1064128 a e 1075136 592 a -e 1077184 1075136 a e 1089216 592 a e 1124352 592 a -e 1126080 1124352 a -e 1127680 1124352 a -e 1129216 1124352 a e 1135936 592 a e 1142336 592 a e 1147648 592 a e 1152896 592 a e 1158720 592 a e 1164736 592 a -e 1166080 1164736 a e 1173443 592 a e 1177152 592 a -e 1178432 1177152 a e 1185152 592 a -e 1186880 1185152 a e 1193792 592 a -e 1195136 1193792 a -e 1196800 1193792 a -e 1198464 1193792 a e 1204288 592 a e 1209728 592 a e 1215296 592 a @@ -4290,54 +2975,36 @@ e 1472512 592 a e 1477760 592 a e 1503168 592 a e 1511040 592 a -e 1514304 1511040 a e 1520768 592 a -e 1522176 1520768 a e 1529408 592 a -e 1531456 1529408 a e 1543488 592 a e 1551680 592 a -e 1554304 1551680 a e 1564736 592 a e 1571840 592 a e 1577280 592 a e 1584704 592 a -e 1586560 1584704 a -e 1588288 1584704 a e 1594368 592 a e 1601024 592 a e 1608192 592 a -e 1609984 1608192 a -e 1611648 1608192 a e 1618624 592 a e 1630144 592 a e 1639168 592 a e 1647488 592 a e 1658240 592 a e 1668160 592 a -e 1670784 1668160 a e 1677760 592 a -e 1679552 1677760 a e 1689472 592 a -e 1691200 1689472 a e 1705152 592 a -e 1706496 1705152 a e 1714304 592 a -e 1715648 1714304 a -e 1717312 1714304 a e 1722496 592 a e 1727872 592 a e 1736512 592 a e 1747584 592 a e 1753408 592 a e 1762944 592 a -e 1768064 1762944 a e 1780032 592 a -e 1781888 1780032 a e 1788224 592 a -e 1789632 1788224 a e 1800000 592 a -e 1801344 1800000 a e 1811840 592 a e 1820416 592 a e 1831936 592 a @@ -4355,16 +3022,10 @@ e 1917568 592 a e 1923520 592 a e 1948992 592 a e 1975808 592 a -e 1981312 1975808 a -e 1982528 1975808 a e 1990720 592 a -e 1992960 1990720 a -e 1994560 1990720 a e 2000192 592 a e 2005504 592 a e 2012416 592 a -e 2014528 2012416 a -e 2016128 2012416 a e 2031872 592 a e 2038016 592 a e 2043776 592 a @@ -4373,24 +3034,17 @@ e 2055104 592 a e 2075648 592 a e 2079683 592 a e 2080000 592 a -e 2080067 2080000 a e 2081091 592 a e 2081664 592 a -e 2081731 2081664 a e 2083011 592 a e 2083648 592 a -e 2083715 2083648 a -e 2083777 2083648 a -e 2083843 2083777 a e 2084611 592 a e 2107968 592 a e 2113280 592 a e 2144960 592 a e 2149888 592 a e 2159424 592 a -e 2160384 2159424 a e 2166016 592 a -e 2167424 2166016 a e 2177600 592 a e 2185219 592 a e 2190339 592 a @@ -4433,15 +3087,10 @@ e 2472832 592 a e 2478528 592 a e 2486915 592 a e 2487296 592 a -e 2487363 2487296 a e 2488323 592 a e 2488960 592 a -e 2489027 2488960 a e 2489923 592 a e 2490560 592 a -e 2490627 2490560 a -e 2490689 2490560 a -e 2490755 2490689 a e 2491459 592 a e 2494528 592 a e 2499904 592 a @@ -4455,7 +3104,6 @@ e 2564032 592 a e 2584832 592 a e 2595264 592 a e 2607360 592 a -e 2609664 2607360 a e 2615680 592 a e 2623104 592 a e 2628800 592 a @@ -4465,15 +3113,10 @@ e 2645696 592 a e 2651520 592 a e 2661699 592 a e 2662080 592 a -e 2662147 2662080 a e 2663043 592 a e 2663680 592 a -e 2663747 2663680 a e 2664643 592 a e 2665280 592 a -e 2665347 2665280 a -e 2665409 2665280 a -e 2665475 2665409 a e 2666179 592 a e 2699904 592 a e 2722688 592 a @@ -4486,44 +3129,28 @@ e 2798720 592 a e 2804480 592 a e 2834115 592 a e 2834496 592 a -e 2834563 2834496 a e 2835395 592 a e 2836032 592 a -e 2836099 2836032 a e 2836931 592 a e 2837568 592 a -e 2837635 2837568 a -e 2837697 2837568 a -e 2837763 2837697 a e 2838467 592 a e 2839872 592 a -e 2839939 2839872 a e 2840771 592 a e 2841408 592 a -e 2841475 2841408 a e 2842371 592 a e 2843008 592 a -e 2843075 2843008 a -e 2843137 2843008 a -e 2843203 2843137 a e 2843907 592 a e 2845312 592 a -e 2845379 2845312 a e 2846467 592 a e 2847168 592 a -e 2847235 2847168 a e 2848579 592 a e 2849216 592 a -e 2849283 2849216 a -e 2849345 2849216 a -e 2849411 2849345 a e 2850243 592 a e 2853312 592 a e 2873216 592 a e 2883520 592 a e 2899264 592 a e 2904960 592 a -e 2905027 2904960 a e 2908163 592 a e 2911744 592 a e 2932608 592 a @@ -4533,15 +3160,10 @@ e 2966400 592 a e 2972160 592 a e 2975875 592 a e 2976256 592 a -e 2976323 2976256 a e 2978691 592 a e 2979328 592 a -e 2979395 2979328 a e 2985219 592 a e 2985856 592 a -e 2985923 2985856 a -e 2985985 2985856 a -e 2986051 2985985 a e 2987523 592 a e 2992768 592 a e 3004864 592 a @@ -4553,26 +3175,16 @@ e 3047680 592 a e 3053888 592 a e 3057475 592 a e 3057856 592 a -e 3057923 3057856 a e 3058883 592 a e 3059520 592 a -e 3059587 3059520 a e 3060483 592 a e 3061120 592 a -e 3061187 3061120 a -e 3061249 3061120 a -e 3061315 3061249 a e 3062083 592 a e 3063552 592 a -e 3063619 3063552 a e 3069379 592 a e 3070080 592 a -e 3070147 3070080 a e 3086915 592 a e 3087552 592 a -e 3087619 3087552 a -e 3087681 3087552 a -e 3087747 3087681 a e 3091715 592 a e 3096768 592 a e 3102400 592 a @@ -4601,31 +3213,21 @@ e 3372416 592 a e 3377984 592 a e 3383680 592 a e 3389760 592 a -e 3391424 3389760 a e 3394947 592 a e 3395072 592 a -e 3395139 3395072 a e 3396547 592 a e 3397120 592 a -e 3397187 3397120 a e 3399299 592 a e 3399936 592 a -e 3400003 3399936 a -e 3400065 3399936 a -e 3400131 3400065 a e 3400963 592 a e 3404160 592 a e 3411264 592 a -e 3412608 3411264 a e 3418048 592 a e 3425088 592 a -e 3427840 3425088 a e 3434048 592 a e 3440576 592 a e 3452096 592 a -e 3453952 3452096 a e 3460928 592 a -e 3463232 3460928 a e 3468928 592 a e 3484480 592 a e 3485504 592 a @@ -4634,10 +3236,7 @@ e 3502848 592 a e 3508608 592 a e 3513664 592 a e 3520256 592 a -e 3521984 3520256 a -e 3523648 3520256 a e 3529792 592 a -e 3531136 3529792 a e 3537088 592 a e 3544064 592 a e 3550720 592 a @@ -4649,105 +3248,53 @@ e 3581952 592 a e 3592960 592 a e 3598464 592 a e 3604352 592 a -e 3605824 3604352 a e 3612672 592 a -e 3614528 3612672 a e 3621056 592 a -e 3622464 3621056 a e 3628288 592 a -e 3629248 3628288 a e 3635264 592 a -e 3637056 3635264 a e 3642944 592 a e 3649792 592 a -e 3651584 3649792 a e 3656768 592 a e 3662720 592 a -e 3664512 3662720 a e 3673475 592 a e 3673792 592 a -e 3673859 3673792 a -e 3674624 3673792 a -e 3674691 3674624 a e 3675075 592 a e 3675584 592 a -e 3675651 3675584 a -e 3676800 3675584 a -e 3676867 3676800 a e 3677507 592 a e 3678144 592 a -e 3678211 3678144 a -e 3678273 3678144 a -e 3678339 3678273 a e 3679107 592 a e 3684800 592 a -e 3686080 3684800 a -e 3687680 3684800 a -e 3688896 3684800 a -e 3690048 3684800 a e 3695680 592 a e 3701056 592 a -e 3701952 3701056 a e 3707136 592 a -e 3708416 3707136 a e 3713472 592 a e 3718720 592 a -e 3720000 3718720 a e 3725184 592 a e 3730368 592 a e 3735872 592 a e 3743488 592 a -e 3745152 3743488 a e 3750784 592 a e 3766720 592 a e 3782016 592 a e 3790272 592 a e 3799552 592 a -e 3801280 3799552 a -e 3802944 3799552 a e 3812800 592 a e 3822592 592 a -e 3824320 3822592 a -e 3825984 3822592 a e 3837632 592 a -e 3838976 3837632 a e 3845696 592 a -e 3848128 3845696 a e 3856832 592 a -e 3858624 3856832 a -e 3860288 3856832 a -e 3861568 3856832 a -e 3863616 3856832 a e 3869632 592 a e 3878720 592 a -e 3880448 3878720 a -e 3882112 3878720 a -e 3883776 3878720 a e 3893120 592 a -e 3895680 3893120 a -e 3897344 3893120 a -e 3898624 3893120 a -e 3900672 3893120 a e 3907648 592 a e 3918656 592 a -e 3920384 3918656 a -e 3922048 3918656 a -e 3923712 3918656 a -e 3925312 3918656 a e 3931520 592 a e 3937920 592 a -e 3939328 3937920 a e 3946240 592 a -e 3947520 3946240 a -e 3949056 3946240 a -e 3950592 3946240 a e 3956224 592 a e 3962496 592 a -e 3963968 3962496 a -e 3965696 3962496 a e 3971328 592 a e 3978304 592 a -e 3981120 3978304 a e 3988608 592 a e 4001344 592 a e 4006272 592 a @@ -4759,22 +3306,12 @@ e 4062144 592 a e 4068160 592 a e 4074816 592 a e 4082240 592 a -e 4083904 4082240 a -e 4085120 4082240 a e 4090176 592 a e 4095104 592 a -e 4096768 4095104 a e 4102272 592 a e 4145280 592 a e 4153088 592 a -e 4154368 4153088 a -e 4155648 4153088 a -e 4157248 4153088 a -e 4158848 4153088 a e 4166336 592 a -e 4168064 4166336 a -e 4169728 4166336 a -e 4171392 4166336 a e 4177088 592 a e 4182784 592 a e 4188992 592 a @@ -4784,30 +3321,1493 @@ e 4196547 592 a e 4240192 592 a e 4245504 592 a e 4255232 592 a -e 4260096 4255232 a e 4268864 592 a e 4279808 592 a -e 4281088 4279808 a -e 4282752 4279808 a e 4288640 592 a e 4294592 592 a -e 4296320 4294592 a e 4302848 592 a -e 4304256 4302848 a -e 4305984 4302848 a e 4312192 592 a -e 4313536 4312192 a e 4319360 592 a e 4326464 592 a e 4696128 592 a -e 4699008 4696128 a -e 4700288 4696128 a -e 4701568 4696128 a e 4708352 592 a -e 4709760 4708352 a e 4716160 592 a -e 4717568 4716160 a e 4723712 592 a -e 4724992 4723712 a +e 53779 53640 b +e 55059 54920 b +e 114643 114504 b +e 247955 245968 b +e 247872 245968 a +e 247955 247872 a +e 315219 315080 b +e 337555 337416 b +e 344915 344776 b +e 367507 367368 b +e 369171 369032 b +e 409875 409736 b +e 416595 416456 b +e 445331 445192 b +e 453971 453832 b +e 455635 455496 b +e 457299 457160 b +e 458963 458824 b +e 460627 460488 b +e 489427 489288 b +e 510931 510792 b +e 621715 621576 b +e 691859 691720 b +e 693459 693320 b +e 751443 751304 b +e 760787 760648 b +e 792403 792264 b +e 802003 801864 b +e 819968 817808 a +e 820035 819968 a +e 840467 837584 b +e 842387 837584 b +e 841608 837584 b +e 843144 837584 b +e 840384 837584 a +e 841747 841608 b +e 843283 843144 b +e 840467 840384 a +e 842387 840384 a +e 841664 840384 a +e 843200 840384 a +e 841747 841664 a +e 843283 843200 a +e 865107 864968 b +e 895123 894984 b +e 896787 896648 b +e 898451 898312 b +e 916307 916168 b +e 966931 966792 b +e 968595 968456 b +e 970259 970120 b +e 994195 994056 b +e 1008019 1007880 b +e 1016787 1016648 b +e 1024083 1023944 b +e 1032147 1032008 b +e 1044179 1044040 b +e 1066067 1065928 b +e 1077267 1077128 b +e 1126163 1126024 b +e 1127763 1127624 b +e 1129299 1129160 b +e 1166163 1166024 b +e 1178515 1178376 b +e 1186963 1186824 b +e 1195219 1195080 b +e 1196883 1196744 b +e 1198547 1198408 b +e 1244179 1242064 b +e 1244096 1242064 a +e 1244179 1244096 a +e 1374931 1372816 b +e 1374848 1372816 a +e 1374931 1374848 a +e 1392019 1389904 b +e 1391936 1389904 a +e 1392019 1391936 a +e 1398419 1396432 b +e 1398336 1396432 a +e 1398419 1398336 a +e 1409939 1407760 b +e 1409856 1407760 a +e 1409939 1409856 a +e 1433171 1431376 b +e 1433088 1431376 a +e 1433171 1433088 a +e 1483923 1481808 b +e 1483840 1481808 a +e 1483923 1483840 a +e 1514387 1514248 b +e 1522259 1522120 b +e 1531539 1531400 b +e 1554387 1554248 b +e 1586643 1586504 b +e 1588371 1588232 b +e 1610067 1609928 b +e 1611731 1611592 b +e 1670867 1670728 b +e 1679635 1679496 b +e 1691283 1691144 b +e 1706579 1706440 b +e 1715731 1715592 b +e 1717395 1717256 b +e 1741971 1740048 b +e 1741888 1740048 a +e 1741971 1741888 a +e 1768147 1768008 b +e 1781971 1781832 b +e 1789715 1789576 b +e 1801427 1801288 b +e 1826067 1823952 b +e 1825984 1823952 a +e 1826067 1825984 a +e 1897299 1895184 b +e 1897216 1895184 a +e 1897299 1897216 a +e 1910291 1907792 b +e 1910208 1907792 a +e 1910291 1910208 a +e 1929875 1927632 b +e 1929792 1927632 a +e 1929875 1929792 a +e 1936467 1934416 b +e 1936384 1934416 a +e 1936467 1936384 a +e 1942739 1940496 b +e 1942656 1940496 a +e 1942739 1942656 a +e 1956499 1953936 b +e 1956416 1953936 a +e 1956499 1956416 a +e 1964627 1962064 b +e 1964544 1962064 a +e 1964627 1964544 a +e 1981395 1981256 b +e 1982611 1982472 b +e 1993043 1992904 b +e 1994643 1994504 b +e 2014611 2014472 b +e 2016211 2016072 b +e 2026067 2024080 b +e 2025984 2024080 a +e 2026067 2025984 a +e 2070163 2067984 b +e 2070080 2067984 a +e 2070163 2070080 a +e 2087891 2085776 b +e 2087808 2085776 a +e 2087891 2087808 a +e 2094099 2091984 b +e 2094016 2091984 a +e 2094099 2094016 a +e 2139347 2137360 b +e 2139264 2137360 a +e 2139347 2139264 a +e 2160467 2160328 b +e 2167507 2167368 b +e 2609747 2609608 b +e 2816851 2812880 b +e 2816768 2812880 a +e 2816851 2816768 a +e 2830483 2828304 b +e 2830400 2828304 a +e 2830483 2830400 a +e 3262931 3260688 b +e 3262848 3260688 a +e 3262931 3262848 a +e 3269971 3268048 b +e 3269888 3268048 a +e 3269971 3269888 a +e 3277579 3273872 b +e 3277635 3273872 a +e 3391507 3391368 b +e 3412691 3412552 b +e 3427923 3427784 b +e 3454035 3453896 b +e 3463315 3463176 b +e 3522067 3521928 b +e 3523731 3523592 b +e 3531219 3531080 b +e 3605907 3605768 b +e 3614611 3614472 b +e 3622547 3622408 b +e 3629331 3629192 b +e 3637139 3637000 b +e 3651667 3651528 b +e 3664595 3664456 b +e 3670035 3668240 b +e 3669952 3668240 a +e 3670035 3669952 a +e 3686163 3686024 b +e 3687763 3687624 b +e 3688979 3688840 b +e 3690131 3689992 b +e 3702035 3701896 b +e 3708499 3708360 b +e 3720083 3719944 b +e 3745235 3745096 b +e 3801363 3801224 b +e 3803027 3802888 b +e 3824403 3824264 b +e 3826067 3825928 b +e 3839059 3838920 b +e 3848211 3848072 b +e 3858707 3858568 b +e 3860371 3860232 b +e 3861651 3861512 b +e 3863699 3863560 b +e 3880531 3880392 b +e 3882195 3882056 b +e 3883859 3883720 b +e 3895763 3895624 b +e 3897427 3897288 b +e 3898707 3898568 b +e 3900755 3900616 b +e 3920467 3920328 b +e 3922131 3921992 b +e 3923795 3923656 b +e 3925395 3925256 b +e 3939411 3939272 b +e 3947603 3947464 b +e 3949139 3949000 b +e 3950675 3950536 b +e 3964051 3963912 b +e 3965779 3965640 b +e 3981203 3981064 b +e 4032275 4030160 b +e 4032192 4030160 a +e 4032275 4032192 a +e 4049939 4047824 b +e 4049856 4047824 a +e 4049939 4049856 a +e 4056275 4054032 b +e 4056192 4054032 a +e 4056275 4056192 a +e 4083987 4083848 b +e 4085203 4085064 b +e 4096851 4096712 b +e 4139347 4137168 b +e 4139264 4137168 a +e 4139347 4139264 a +e 4154451 4154312 b +e 4155731 4155592 b +e 4157331 4157192 b +e 4158931 4158792 b +e 4168147 4168008 b +e 4169811 4169672 b +e 4171475 4171336 b +e 4215699 4213520 b +e 4215616 4213520 a +e 4215699 4215616 a +e 4229331 4227280 b +e 4229248 4227280 a +e 4229331 4229248 a +e 4234963 4232912 b +e 4234880 4232912 a +e 4234963 4234880 a +e 4260179 4260040 b +e 4281171 4281032 b +e 4282835 4282696 b +e 4296403 4296264 b +e 4304339 4304200 b +e 4306067 4305928 b +e 4313619 4313480 b +e 4333331 4331408 b +e 4333248 4331408 a +e 4333331 4333248 a +e 4339411 4337168 b +e 4339328 4337168 a +e 4339411 4339328 a +e 4346323 4344336 b +e 4346240 4344336 a +e 4346323 4346240 a +e 4353875 4350288 b +e 4356744 4350288 b +e 4353792 4350288 a +e 4356883 4356744 b +e 4353875 4353792 a +e 4356800 4353792 a +e 4356883 4356800 a +e 4362899 4360720 b +e 4362816 4360720 a +e 4362899 4362816 a +e 4368080 4367696 ba +e 4372363 4367696 b +e 4372995 4367696 a +e 4368139 4368080 b +e 4368195 4368080 a +e 4376339 4374416 b +e 4376256 4374416 a +e 4376339 4376256 a +e 4386707 4384784 b +e 4386624 4384784 a +e 4386707 4386624 a +e 4392019 4390224 b +e 4391936 4390224 a +e 4392019 4391936 a +e 4398163 4395408 b +e 4399752 4395408 b +e 4398080 4395408 a +e 4399891 4399752 b +e 4398163 4398080 a +e 4399808 4398080 a +e 4399891 4399808 a +e 4403792 4403408 ba +e 4405651 4403408 b +e 4406611 4403408 b +e 4406803 4403408 b +e 4406475 4403408 b +e 4406667 4403408 b +e 4408843 4403408 b +e 4407696 4403408 ba +e 4405568 4403408 a +e 4409091 4403408 a +e 4403915 4403792 b +e 4404235 4403792 b +e 4404035 4403792 a +e 4404291 4403792 a +e 4408139 4407696 b +e 4408195 4407696 a +e 4405651 4405568 a +e 4406611 4405568 a +e 4406803 4405568 a +e 4406531 4405568 a +e 4406723 4405568 a +e 4412371 4410192 b +e 4412288 4410192 a +e 4412371 4412288 a +e 4419731 4416464 b +e 4421779 4416464 b +e 4420936 4416464 b +e 4422600 4416464 b +e 4419648 4416464 a +e 4421075 4420936 b +e 4422739 4422600 b +e 4419731 4419648 a +e 4421779 4419648 a +e 4420992 4419648 a +e 4422656 4419648 a +e 4421075 4420992 a +e 4422739 4422656 a +e 4428947 4426448 b +e 4428864 4426448 a +e 4428947 4428864 a +e 4440083 4438160 b +e 4440000 4438160 a +e 4440083 4440000 a +e 4446355 4443600 b +e 4447944 4443600 b +e 4446272 4443600 a +e 4448083 4447944 b +e 4446355 4446272 a +e 4448000 4446272 a +e 4448083 4448000 a +e 4453459 4451600 b +e 4453376 4451600 a +e 4453459 4453376 a +e 4459155 4456976 b +e 4459072 4456976 a +e 4459155 4459072 a +e 4466515 4463248 b +e 4468563 4463248 b +e 4467720 4463248 b +e 4469384 4463248 b +e 4466432 4463248 a +e 4467859 4467720 b +e 4469523 4469384 b +e 4466515 4466432 a +e 4468563 4466432 a +e 4467776 4466432 a +e 4469440 4466432 a +e 4467859 4467776 a +e 4469523 4469440 a +e 4475731 4473232 b +e 4475648 4473232 a +e 4475731 4475648 a +e 4484883 4480272 b +e 4489288 4480272 b +e 4484800 4480272 a +e 4489427 4489288 b +e 4484883 4484800 a +e 4489344 4484800 a +e 4489427 4489344 a +e 4494032 4493648 ba +e 4497555 4493648 b +e 4498131 4493648 b +e 4497995 4493648 b +e 4504715 4493648 b +e 4497472 4493648 a +e 4505539 4493648 a +e 4494155 4494032 b +e 4494851 4494032 a +e 4497555 4497472 a +e 4498131 4497472 a +e 4498051 4497472 a +e 4509267 4507216 b +e 4509184 4507216 a +e 4509267 4509184 a +e 4516563 4513296 b +e 4518536 4513296 b +e 4516480 4513296 a +e 4518675 4518536 b +e 4516563 4516480 a +e 4518592 4516480 a +e 4518675 4518592 a +e 4526803 4522384 b +e 4529683 4522384 b +e 4531347 4522384 b +e 4528840 4522384 b +e 4530504 4522384 b +e 4526720 4522384 a +e 4528979 4528840 b +e 4530643 4530504 b +e 4526803 4526720 a +e 4529683 4526720 a +e 4531347 4526720 a +e 4528896 4526720 a +e 4530560 4526720 a +e 4528979 4528896 a +e 4530643 4530560 a +e 4537875 4536016 b +e 4537792 4536016 a +e 4537875 4537792 a +e 4543699 4541392 b +e 4543616 4541392 a +e 4543699 4543616 a +e 4551571 4548304 b +e 4553619 4548304 b +e 4552776 4548304 b +e 4554440 4548304 b +e 4551488 4548304 a +e 4552915 4552776 b +e 4554579 4554440 b +e 4551571 4551488 a +e 4553619 4551488 a +e 4552832 4551488 a +e 4554496 4551488 a +e 4552915 4552832 a +e 4554579 4554496 a +e 4560787 4558288 b +e 4560704 4558288 a +e 4560787 4560704 a +e 4569235 4565328 b +e 4571347 4565328 b +e 4573075 4565328 b +e 4574739 4565328 b +e 4570504 4565328 b +e 4572232 4565328 b +e 4573896 4565328 b +e 4569152 4565328 a +e 4570643 4570504 b +e 4572371 4572232 b +e 4574035 4573896 b +e 4569235 4569152 a +e 4571347 4569152 a +e 4573075 4569152 a +e 4574739 4569152 a +e 4570560 4569152 a +e 4572288 4569152 a +e 4573952 4569152 a +e 4570643 4570560 a +e 4572371 4572288 a +e 4574035 4573952 a +e 4583251 4578640 b +e 4587784 4578640 b +e 4583168 4578640 a +e 4587923 4587784 b +e 4583251 4583168 a +e 4587840 4583168 a +e 4587923 4587840 a +e 4594963 4592208 b +e 4594880 4592208 a +e 4594963 4594880 a +e 4603475 4601616 b +e 4603392 4601616 a +e 4603475 4603392 a +e 4613267 4611216 b +e 4613184 4611216 a +e 4613267 4613184 a +e 4619219 4617296 b +e 4619136 4617296 a +e 4619219 4619136 a +e 4625555 4622736 b +e 4625472 4622736 a +e 4625555 4625472 a +e 4634963 4632784 b +e 4634880 4632784 a +e 4634963 4634880 a +e 4641107 4639120 b +e 4641024 4639120 a +e 4641107 4641024 a +e 4646675 4644560 b +e 4646592 4644560 a +e 4646675 4646592 a +e 4657427 4651152 b +e 4659475 4651152 b +e 4660627 4651152 b +e 4661779 4651152 b +e 4663443 4651152 b +e 4658632 4651152 b +e 4659848 4651152 b +e 4661000 4651152 b +e 4662600 4651152 b +e 4663816 4651152 b +e 4657344 4651152 a +e 4658771 4658632 b +e 4659987 4659848 b +e 4661139 4661000 b +e 4662739 4662600 b +e 4663955 4663816 b +e 4657427 4657344 a +e 4659475 4657344 a +e 4660627 4657344 a +e 4661779 4657344 a +e 4663443 4657344 a +e 4658688 4657344 a +e 4659904 4657344 a +e 4661056 4657344 a +e 4662656 4657344 a +e 4663872 4657344 a +e 4658771 4658688 a +e 4659987 4659904 a +e 4661139 4661056 a +e 4662739 4662656 a +e 4663955 4663872 a +e 4674131 4667856 b +e 4676179 4667856 b +e 4677331 4667856 b +e 4678611 4667856 b +e 4680275 4667856 b +e 4675336 4667856 b +e 4676552 4667856 b +e 4677768 4667856 b +e 4679432 4667856 b +e 4680648 4667856 b +e 4674048 4667856 a +e 4675475 4675336 b +e 4676691 4676552 b +e 4677907 4677768 b +e 4679571 4679432 b +e 4680787 4680648 b +e 4674131 4674048 a +e 4676179 4674048 a +e 4677331 4674048 a +e 4678611 4674048 a +e 4680275 4674048 a +e 4675392 4674048 a +e 4676608 4674048 a +e 4677824 4674048 a +e 4679488 4674048 a +e 4680704 4674048 a +e 4675475 4675392 a +e 4676691 4676608 a +e 4677907 4677824 a +e 4679571 4679488 a +e 4680787 4680704 a +e 4686867 4684752 b +e 4686784 4684752 a +e 4686867 4686784 a +e 4699091 4698952 b +e 4700371 4700232 b +e 4701651 4701512 b +e 4709843 4709704 b +e 4717651 4717512 b +e 4725075 4724936 b +e 4730579 4728528 b +e 4730496 4728528 a +e 4730579 4730496 a +e 4736979 4734928 b +e 4736896 4734928 a +e 4736979 4736896 a +e 3283 3200 a +e 8275 8192 a +e 9107 9024 a +e 14547 14464 a +e 22355 22272 a +e 27731 27648 a +e 31059 30976 a +e 32467 32384 a +e 37715 37632 a +e 41427 41344 a +e 42195 42112 a +e 50195 50112 a +e 54483 50112 a +e 55763 50112 a +e 53696 50112 a +e 54976 50112 a +e 53779 53696 a +e 55059 54976 a +e 60755 60672 a +e 66963 66880 a +e 74259 74176 a +e 83347 83264 a +e 93523 93440 a +e 99795 99712 a +e 104595 104512 a +e 112083 112000 a +e 114560 112000 a +e 114643 114560 a +e 120403 120320 a +e 126547 126464 a +e 132243 132160 a +e 136467 136384 a +e 141267 141184 a +e 149139 149056 a +e 157267 157184 a +e 163475 163392 a +e 170771 170688 a +e 182675 182592 a +e 188691 188608 a +e 190227 190144 a +e 195667 195584 a +e 200339 200256 a +e 205971 205888 a +e 213139 213056 a +e 219219 219136 a +e 226067 225984 a +e 254099 254016 a +e 261971 261888 a +e 271187 271104 a +e 280659 280576 a +e 286483 286400 a +e 291411 291328 a +e 297683 297600 a +e 302611 302528 a +e 307027 306944 a +e 312979 312896 a +e 315136 312896 a +e 315219 315136 a +e 320659 320576 a +e 325139 325056 a +e 329043 328960 a +e 334995 334912 a +e 337472 334912 a +e 337555 337472 a +e 343635 343552 a +e 344832 343552 a +e 344915 344832 a +e 350355 350272 a +e 356115 356032 a +e 360403 360320 a +e 366227 366144 a +e 368147 366144 a +e 367424 366144 a +e 369088 366144 a +e 367507 367424 a +e 369171 369088 a +e 374931 374848 a +e 381203 381120 a +e 386963 386880 a +e 392339 392256 a +e 397395 397312 a +e 401875 401792 a +e 408595 408512 a +e 409792 408512 a +e 409875 409792 a +e 415251 415168 a +e 416512 415168 a +e 416595 416512 a +e 421267 421184 a +e 426195 426112 a +e 431251 431168 a +e 436755 436672 a +e 443987 443904 a +e 445248 443904 a +e 445331 445248 a +e 452691 452608 a +e 454675 452608 a +e 456339 452608 a +e 458003 452608 a +e 459667 452608 a +e 453888 452608 a +e 455552 452608 a +e 457216 452608 a +e 458880 452608 a +e 460544 452608 a +e 453971 453888 a +e 455635 455552 a +e 457299 457216 a +e 458963 458880 a +e 460627 460544 a +e 466579 466496 a +e 471955 471872 a +e 477907 477824 a +e 486611 486528 a +e 490131 486528 a +e 489344 486528 a +e 489427 489344 a +e 495379 495296 a +e 500563 500480 a +e 508115 508032 a +e 510848 508032 a +e 510931 510848 a +e 516499 516416 a +e 521683 521600 a +e 527251 527168 a +e 534419 534336 a +e 542739 542656 a +e 551699 551616 a +e 560915 560832 a +e 566291 566208 a +e 572051 571968 a +e 579155 579072 a +e 591571 591488 a +e 592403 592320 a +e 596627 596544 a +e 599699 599616 a +e 600403 600320 a +e 604627 604544 a +e 608659 608576 a +e 613651 613568 a +e 619923 619840 a +e 621632 619840 a +e 621715 621632 a +e 626963 626880 a +e 633811 633728 a +e 641747 641664 a +e 647827 647744 a +e 653779 653696 a +e 659923 659840 a +e 666963 666880 a +e 673491 673408 a +e 679315 679232 a +e 684883 684800 a +e 690899 690816 a +e 692563 690816 a +e 691776 690816 a +e 693376 690816 a +e 691859 691776 a +e 693459 693376 a +e 698835 698752 a +e 706515 706432 a +e 714067 713984 a +e 720403 720320 a +e 726995 726912 a +e 735827 735744 a +e 742739 742656 a +e 749395 749312 a +e 751360 749312 a +e 751443 751360 a +e 758227 758144 a +e 760704 758144 a +e 760787 760704 a +e 766419 766336 a +e 772435 772352 a +e 780819 780736 a +e 789587 789504 a +e 792320 789504 a +e 792403 792320 a +e 799443 799360 a +e 801920 799360 a +e 802003 801920 a +e 808147 808064 a +e 813715 813632 a +e 822291 822208 a +e 827155 822208 a +e 826496 822208 a +e 827904 822208 a +e 826563 826496 a +e 827971 827904 a +e 833811 833728 a +e 848915 848832 a +e 854867 854784 a +e 862611 862528 a +e 865024 862528 a +e 865107 865024 a +e 870931 870848 a +e 877139 877056 a +e 883091 883008 a +e 892179 892096 a +e 895827 892096 a +e 897491 892096 a +e 895040 892096 a +e 896704 892096 a +e 898368 892096 a +e 895123 895040 a +e 896787 896704 a +e 898451 898368 a +e 905043 904960 a +e 913875 913792 a +e 916224 913792 a +e 916307 916224 a +e 922003 921920 a +e 927443 927360 a +e 933075 932992 a +e 939155 939072 a +e 946131 946048 a +e 953427 953344 a +e 965203 965120 a +e 967635 965120 a +e 969299 965120 a +e 966848 965120 a +e 968512 965120 a +e 970176 965120 a +e 966931 966848 a +e 968595 968512 a +e 970259 970176 a +e 976019 975936 a +e 981203 981120 a +e 986259 986176 a +e 992083 992000 a +e 994112 992000 a +e 994195 994112 a +e 999827 999744 a +e 1006227 1006144 a +e 1007936 1006144 a +e 1008019 1007936 a +e 1014611 1014528 a +e 1016704 1014528 a +e 1016787 1016704 a +e 1022739 1022656 a +e 1024000 1022656 a +e 1024083 1024000 a +e 1030355 1030272 a +e 1032064 1030272 a +e 1032147 1032064 a +e 1042771 1042688 a +e 1044096 1042688 a +e 1044179 1044096 a +e 1054867 1054784 a +e 1064211 1064128 a +e 1066771 1064128 a +e 1065984 1064128 a +e 1066067 1065984 a +e 1075219 1075136 a +e 1077184 1075136 a +e 1077267 1077184 a +e 1089299 1089216 a +e 1124435 1124352 a +e 1126867 1124352 a +e 1128403 1124352 a +e 1130003 1124352 a +e 1126080 1124352 a +e 1127680 1124352 a +e 1129216 1124352 a +e 1126163 1126080 a +e 1127763 1127680 a +e 1129299 1129216 a +e 1136019 1135936 a +e 1142419 1142336 a +e 1147731 1147648 a +e 1152979 1152896 a +e 1158803 1158720 a +e 1164819 1164736 a +e 1166080 1164736 a +e 1166163 1166080 a +e 1177235 1177152 a +e 1179155 1177152 a +e 1178432 1177152 a +e 1178515 1178432 a +e 1185235 1185152 a +e 1186880 1185152 a +e 1186963 1186880 a +e 1193875 1193792 a +e 1195923 1193792 a +e 1197587 1193792 a +e 1195136 1193792 a +e 1196800 1193792 a +e 1198464 1193792 a +e 1195219 1195136 a +e 1196883 1196800 a +e 1198547 1198464 a +e 1204371 1204288 a +e 1209811 1209728 a +e 1215379 1215296 a +e 1226771 1226688 a +e 1232403 1232320 a +e 1237779 1237696 a +e 1250387 1250304 a +e 1255571 1255488 a +e 1260563 1260480 a +e 1265427 1265344 a +e 1293587 1293504 a +e 1307411 1307328 a +e 1312723 1312640 a +e 1328979 1328896 a +e 1338259 1338176 a +e 1344595 1344512 a +e 1350163 1350080 a +e 1364307 1364224 a +e 1369363 1369280 a +e 1381139 1381056 a +e 1386451 1386368 a +e 1404243 1404160 a +e 1451731 1451648 a +e 1457107 1457024 a +e 1462483 1462400 a +e 1472595 1472512 a +e 1477843 1477760 a +e 1503251 1503168 a +e 1511123 1511040 a +e 1514304 1511040 a +e 1514387 1514304 a +e 1520851 1520768 a +e 1522176 1520768 a +e 1522259 1522176 a +e 1529491 1529408 a +e 1532243 1529408 a +e 1531456 1529408 a +e 1531539 1531456 a +e 1543571 1543488 a +e 1551763 1551680 a +e 1555091 1551680 a +e 1554304 1551680 a +e 1554387 1554304 a +e 1564819 1564736 a +e 1571923 1571840 a +e 1577363 1577280 a +e 1584787 1584704 a +e 1587347 1584704 a +e 1586560 1584704 a +e 1588288 1584704 a +e 1586643 1586560 a +e 1588371 1588288 a +e 1594451 1594368 a +e 1601107 1601024 a +e 1608275 1608192 a +e 1610771 1608192 a +e 1609984 1608192 a +e 1611648 1608192 a +e 1610067 1609984 a +e 1611731 1611648 a +e 1618707 1618624 a +e 1630227 1630144 a +e 1639251 1639168 a +e 1647571 1647488 a +e 1658323 1658240 a +e 1668243 1668160 a +e 1671571 1668160 a +e 1670784 1668160 a +e 1670867 1670784 a +e 1677843 1677760 a +e 1679552 1677760 a +e 1679635 1679552 a +e 1689555 1689472 a +e 1691987 1689472 a +e 1691200 1689472 a +e 1691283 1691200 a +e 1705235 1705152 a +e 1707283 1705152 a +e 1706496 1705152 a +e 1706579 1706496 a +e 1714387 1714304 a +e 1716435 1714304 a +e 1715648 1714304 a +e 1717312 1714304 a +e 1715731 1715648 a +e 1717395 1717312 a +e 1722579 1722496 a +e 1727955 1727872 a +e 1736595 1736512 a +e 1747667 1747584 a +e 1753491 1753408 a +e 1763027 1762944 a +e 1768787 1762944 a +e 1768064 1762944 a +e 1768147 1768064 a +e 1780115 1780032 a +e 1781888 1780032 a +e 1781971 1781888 a +e 1788307 1788224 a +e 1789632 1788224 a +e 1789715 1789632 a +e 1800083 1800000 a +e 1801344 1800000 a +e 1801427 1801344 a +e 1811923 1811840 a +e 1820499 1820416 a +e 1832019 1831936 a +e 1837523 1837440 a +e 1844051 1843968 a +e 1851411 1851328 a +e 1856723 1856640 a +e 1862099 1862016 a +e 1867347 1867264 a +e 1877779 1877696 a +e 1885651 1885568 a +e 1891795 1891712 a +e 1902931 1902848 a +e 1917651 1917568 a +e 1923603 1923520 a +e 1949075 1948992 a +e 1975891 1975808 a +e 1982099 1975808 a +e 1981312 1975808 a +e 1982528 1975808 a +e 1981395 1981312 a +e 1982611 1982528 a +e 1990803 1990720 a +e 1993747 1990720 a +e 1992960 1990720 a +e 1994560 1990720 a +e 1993043 1992960 a +e 1994643 1994560 a +e 2000275 2000192 a +e 2005587 2005504 a +e 2012499 2012416 a +e 2015315 2012416 a +e 2014528 2012416 a +e 2016128 2012416 a +e 2014611 2014528 a +e 2016211 2016128 a +e 2031955 2031872 a +e 2038099 2038016 a +e 2043859 2043776 a +e 2049491 2049408 a +e 2055187 2055104 a +e 2075731 2075648 a +e 2080067 2080000 a +e 2081731 2081664 a +e 2083715 2083648 a +e 2083777 2083648 a +e 2083843 2083777 a +e 2108051 2107968 a +e 2113363 2113280 a +e 2145043 2144960 a +e 2149971 2149888 a +e 2159507 2159424 a +e 2160384 2159424 a +e 2160467 2160384 a +e 2166099 2166016 a +e 2167424 2166016 a +e 2167507 2167424 a +e 2177683 2177600 a +e 2191699 2191616 a +e 2192915 2192832 a +e 2198547 2198464 a +e 2204115 2204032 a +e 2210387 2210304 a +e 2215571 2215488 a +e 2219155 2219072 a +e 2220115 2220032 a +e 2225811 2225728 a +e 2230163 2230080 a +e 2237587 2237504 a +e 2243795 2243712 a +e 2250515 2250432 a +e 2256659 2256576 a +e 2271315 2271232 a +e 2283347 2283264 a +e 2290451 2290368 a +e 2297235 2297152 a +e 2302803 2302720 a +e 2308563 2308480 a +e 2314963 2314880 a +e 2328147 2328064 a +e 2339091 2339008 a +e 2344723 2344640 a +e 2350483 2350400 a +e 2361491 2361408 a +e 2367251 2367168 a +e 2380883 2380800 a +e 2409043 2408960 a +e 2421587 2421504 a +e 2427219 2427136 a +e 2448019 2447936 a +e 2453907 2453824 a +e 2460755 2460672 a +e 2466451 2466368 a +e 2472915 2472832 a +e 2478611 2478528 a +e 2487363 2487296 a +e 2489027 2488960 a +e 2490627 2490560 a +e 2490689 2490560 a +e 2490755 2490689 a +e 2494611 2494528 a +e 2499987 2499904 a +e 2514579 2514496 a +e 2525971 2525888 a +e 2538067 2537984 a +e 2544019 2543936 a +e 2551123 2551040 a +e 2558099 2558016 a +e 2564115 2564032 a +e 2584915 2584832 a +e 2595347 2595264 a +e 2607443 2607360 a +e 2609664 2607360 a +e 2609747 2609664 a +e 2615763 2615680 a +e 2623187 2623104 a +e 2628883 2628800 a +e 2634515 2634432 a +e 2640147 2640064 a +e 2645779 2645696 a +e 2651603 2651520 a +e 2662147 2662080 a +e 2663747 2663680 a +e 2665347 2665280 a +e 2665409 2665280 a +e 2665475 2665409 a +e 2699987 2699904 a +e 2722771 2722688 a +e 2737107 2737024 a +e 2750611 2750528 a +e 2760531 2760448 a +e 2776851 2776768 a +e 2787731 2787648 a +e 2798803 2798720 a +e 2804563 2804480 a +e 2834563 2834496 a +e 2836099 2836032 a +e 2837635 2837568 a +e 2837697 2837568 a +e 2837763 2837697 a +e 2839939 2839872 a +e 2841475 2841408 a +e 2843075 2843008 a +e 2843137 2843008 a +e 2843203 2843137 a +e 2845379 2845312 a +e 2847235 2847168 a +e 2849283 2849216 a +e 2849345 2849216 a +e 2849411 2849345 a +e 2853395 2853312 a +e 2873299 2873216 a +e 2883603 2883520 a +e 2899347 2899264 a +e 2905107 2904960 a +e 2905027 2904960 a +e 2911827 2911744 a +e 2932691 2932608 a +e 2938515 2938432 a +e 2960851 2960768 a +e 2966483 2966400 a +e 2972243 2972160 a +e 2976323 2976256 a +e 2979395 2979328 a +e 2985923 2985856 a +e 2985985 2985856 a +e 2986051 2985985 a +e 2992851 2992768 a +e 3004947 3004864 a +e 3011283 3011200 a +e 3029843 3029760 a +e 3035539 3035456 a +e 3041299 3041216 a +e 3047763 3047680 a +e 3053971 3053888 a +e 3057923 3057856 a +e 3059587 3059520 a +e 3061187 3061120 a +e 3061249 3061120 a +e 3061315 3061249 a +e 3063619 3063552 a +e 3070147 3070080 a +e 3087619 3087552 a +e 3087681 3087552 a +e 3087747 3087681 a +e 3096851 3096768 a +e 3102483 3102400 a +e 3113107 3113024 a +e 3118995 3118912 a +e 3124819 3124736 a +e 3130643 3130560 a +e 3142419 3142336 a +e 3155091 3155008 a +e 3166675 3166592 a +e 3176787 3176704 a +e 3182227 3182144 a +e 3187859 3187776 a +e 3199059 3198976 a +e 3204627 3204544 a +e 3220371 3220288 a +e 3233683 3233600 a +e 3239507 3239424 a +e 3246035 3245952 a +e 3257107 3257024 a +e 3281939 3281856 a +e 3307155 3307072 a +e 3357779 3357696 a +e 3365075 3364992 a +e 3372499 3372416 a +e 3378067 3377984 a +e 3383763 3383680 a +e 3389843 3389760 a +e 3391424 3389760 a +e 3391507 3391424 a +e 3395139 3395072 a +e 3397187 3397120 a +e 3400003 3399936 a +e 3400065 3399936 a +e 3400131 3400065 a +e 3404243 3404160 a +e 3411347 3411264 a +e 3412608 3411264 a +e 3412691 3412608 a +e 3418131 3418048 a +e 3425171 3425088 a +e 3427840 3425088 a +e 3427923 3427840 a +e 3434131 3434048 a +e 3440659 3440576 a +e 3452179 3452096 a +e 3453952 3452096 a +e 3454035 3453952 a +e 3461011 3460928 a +e 3463232 3460928 a +e 3463315 3463232 a +e 3469011 3468928 a +e 3484563 3484480 a +e 3485587 3485504 a +e 3495827 3495744 a +e 3502931 3502848 a +e 3508691 3508608 a +e 3513747 3513664 a +e 3520339 3520256 a +e 3522771 3520256 a +e 3521984 3520256 a +e 3523648 3520256 a +e 3522067 3521984 a +e 3523731 3523648 a +e 3529875 3529792 a +e 3531136 3529792 a +e 3531219 3531136 a +e 3537171 3537088 a +e 3544147 3544064 a +e 3550803 3550720 a +e 3558355 3558272 a +e 3564115 3564032 a +e 3569939 3569856 a +e 3576211 3576128 a +e 3582035 3581952 a +e 3593043 3592960 a +e 3598547 3598464 a +e 3604435 3604352 a +e 3605824 3604352 a +e 3605907 3605824 a +e 3612755 3612672 a +e 3614528 3612672 a +e 3614611 3614528 a +e 3621139 3621056 a +e 3622464 3621056 a +e 3622547 3622464 a +e 3628371 3628288 a +e 3629248 3628288 a +e 3629331 3629248 a +e 3635347 3635264 a +e 3637056 3635264 a +e 3637139 3637056 a +e 3643027 3642944 a +e 3649875 3649792 a +e 3651584 3649792 a +e 3651667 3651584 a +e 3656851 3656768 a +e 3662803 3662720 a +e 3664512 3662720 a +e 3664595 3664512 a +e 3673859 3673792 a +e 3674624 3673792 a +e 3674691 3674624 a +e 3675651 3675584 a +e 3676800 3675584 a +e 3676867 3676800 a +e 3678211 3678144 a +e 3678273 3678144 a +e 3678339 3678273 a +e 3684883 3684800 a +e 3686867 3684800 a +e 3688467 3684800 a +e 3689619 3684800 a +e 3686080 3684800 a +e 3687680 3684800 a +e 3688896 3684800 a +e 3690048 3684800 a +e 3686163 3686080 a +e 3687763 3687680 a +e 3688979 3688896 a +e 3690131 3690048 a +e 3695763 3695680 a +e 3701139 3701056 a +e 3701952 3701056 a +e 3702035 3701952 a +e 3707219 3707136 a +e 3708416 3707136 a +e 3708499 3708416 a +e 3713555 3713472 a +e 3718803 3718720 a +e 3720000 3718720 a +e 3720083 3720000 a +e 3725267 3725184 a +e 3730451 3730368 a +e 3735955 3735872 a +e 3743571 3743488 a +e 3745152 3743488 a +e 3745235 3745152 a +e 3750867 3750784 a +e 3766803 3766720 a +e 3782099 3782016 a +e 3790355 3790272 a +e 3799635 3799552 a +e 3802067 3799552 a +e 3803731 3799552 a +e 3801280 3799552 a +e 3802944 3799552 a +e 3801363 3801280 a +e 3803027 3802944 a +e 3812883 3812800 a +e 3822675 3822592 a +e 3825107 3822592 a +e 3826771 3822592 a +e 3824320 3822592 a +e 3825984 3822592 a +e 3824403 3824320 a +e 3826067 3825984 a +e 3837715 3837632 a +e 3838976 3837632 a +e 3839059 3838976 a +e 3845779 3845696 a +e 3848128 3845696 a +e 3848211 3848128 a +e 3856915 3856832 a +e 3859411 3856832 a +e 3861075 3856832 a +e 3862355 3856832 a +e 3858624 3856832 a +e 3860288 3856832 a +e 3861568 3856832 a +e 3863616 3856832 a +e 3858707 3858624 a +e 3860371 3860288 a +e 3861651 3861568 a +e 3863699 3863616 a +e 3869715 3869632 a +e 3878803 3878720 a +e 3881235 3878720 a +e 3882899 3878720 a +e 3880448 3878720 a +e 3882112 3878720 a +e 3883776 3878720 a +e 3880531 3880448 a +e 3882195 3882112 a +e 3883859 3883776 a +e 3893203 3893120 a +e 3896467 3893120 a +e 3898131 3893120 a +e 3899411 3893120 a +e 3895680 3893120 a +e 3897344 3893120 a +e 3898624 3893120 a +e 3900672 3893120 a +e 3895763 3895680 a +e 3897427 3897344 a +e 3898707 3898624 a +e 3900755 3900672 a +e 3907731 3907648 a +e 3918739 3918656 a +e 3921171 3918656 a +e 3922835 3918656 a +e 3924499 3918656 a +e 3920384 3918656 a +e 3922048 3918656 a +e 3923712 3918656 a +e 3925312 3918656 a +e 3920467 3920384 a +e 3922131 3922048 a +e 3923795 3923712 a +e 3925395 3925312 a +e 3931603 3931520 a +e 3938003 3937920 a +e 3939328 3937920 a +e 3939411 3939328 a +e 3946323 3946240 a +e 3948243 3946240 a +e 3949779 3946240 a +e 3947520 3946240 a +e 3949056 3946240 a +e 3950592 3946240 a +e 3947603 3947520 a +e 3949139 3949056 a +e 3950675 3950592 a +e 3956307 3956224 a +e 3962579 3962496 a +e 3964755 3962496 a +e 3963968 3962496 a +e 3965696 3962496 a +e 3964051 3963968 a +e 3965779 3965696 a +e 3971411 3971328 a +e 3978387 3978304 a +e 3981120 3978304 a +e 3981203 3981120 a +e 3988691 3988608 a +e 4001427 4001344 a +e 4006355 4006272 a +e 4012755 4012672 a +e 4026643 4026560 a +e 4038547 4038464 a +e 4043859 4043776 a +e 4062227 4062144 a +e 4068243 4068160 a +e 4074899 4074816 a +e 4082323 4082240 a +e 4084691 4082240 a +e 4083904 4082240 a +e 4085120 4082240 a +e 4083987 4083904 a +e 4085203 4085120 a +e 4090259 4090176 a +e 4095187 4095104 a +e 4096768 4095104 a +e 4096851 4096768 a +e 4102355 4102272 a +e 4145363 4145280 a +e 4153171 4153088 a +e 4155155 4153088 a +e 4156435 4153088 a +e 4158035 4153088 a +e 4154368 4153088 a +e 4155648 4153088 a +e 4157248 4153088 a +e 4158848 4153088 a +e 4154451 4154368 a +e 4155731 4155648 a +e 4157331 4157248 a +e 4158931 4158848 a +e 4166419 4166336 a +e 4168851 4166336 a +e 4170515 4166336 a +e 4168064 4166336 a +e 4169728 4166336 a +e 4171392 4166336 a +e 4168147 4168064 a +e 4169811 4169728 a +e 4171475 4171392 a +e 4177171 4177088 a +e 4182867 4182784 a +e 4189075 4188992 a +e 4240275 4240192 a +e 4245587 4245504 a +e 4255315 4255232 a +e 4260819 4255232 a +e 4260096 4255232 a +e 4260179 4260096 a +e 4268947 4268864 a +e 4279891 4279808 a +e 4281811 4279808 a +e 4281088 4279808 a +e 4282752 4279808 a +e 4281171 4281088 a +e 4282835 4282752 a +e 4288723 4288640 a +e 4294675 4294592 a +e 4296320 4294592 a +e 4296403 4296320 a +e 4302931 4302848 a +e 4305043 4302848 a +e 4304256 4302848 a +e 4305984 4302848 a +e 4304339 4304256 a +e 4306067 4305984 a +e 4312275 4312192 a +e 4313536 4312192 a +e 4313619 4313536 a +e 4319443 4319360 a +e 4326547 4326464 a +e 4696211 4696128 a +e 4699795 4696128 a +e 4701075 4696128 a +e 4699008 4696128 a +e 4700288 4696128 a +e 4701568 4696128 a +e 4699091 4699008 a +e 4700371 4700288 a +e 4701651 4701568 a +e 4708435 4708352 a +e 4709760 4708352 a +e 4709843 4709760 a +e 4716243 4716160 a +e 4717568 4716160 a +e 4717651 4717568 a +e 4723795 4723712 a +e 4724992 4723712 a +e 4725075 4724992 a diff --git a/src/test/resources/multilinemacros/diffWithComments_expected.lg b/src/test/resources/multilinemacros/diffWithComments_expected.lg index ce94c7e49..c18cf4a5d 100644 --- a/src/test/resources/multilinemacros/diffWithComments_expected.lg +++ b/src/test/resources/multilinemacros/diffWithComments_expected.lg @@ -7,12 +7,12 @@ v 595 NON;ARTIFACT;(old: 6, diff: 8, new: 8);(old: 7, diff: 9, new: 9);; v 723 NON;ARTIFACT;(old: 7, diff: 10, new: 10);(old: 8, diff: 11, new: 11);;foo(); v 131 ADD;ARTIFACT;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);;#define multi \;kulti v 640 ADD;IF;(old: -1, diff: 9, new: 9);(old: -1, diff: 11, new: 11);A&B;#if A & B +e 131 16 a;-1,0 e 275 16 ba;0,1 e 339 16 ba;1,2 e 403 16 ba;2,3 e 467 16 ba;3,4 e 595 16 ba;4,5 e 723 16 b;5,-1 -e 723 640 a;-1,0 -e 131 16 a;-1,0 e 640 16 a;-1,6 +e 723 640 a;-1,0 diff --git a/src/test/resources/multilinemacros/inline_comments_1_expected.lg b/src/test/resources/multilinemacros/inline_comments_1_expected.lg index 241ccd6d1..912fb06b2 100644 --- a/src/test/resources/multilinemacros/inline_comments_1_expected.lg +++ b/src/test/resources/multilinemacros/inline_comments_1_expected.lg @@ -7,10 +7,10 @@ v 843 REM;ARTIFACT;(old: 10, diff: 12, new: -1);(old: 11, diff: 13, new: -1);; v 771 ADD;ARTIFACT;(old: -1, diff: 11, new: 10);(old: -1, diff: 12, new: 11);; baz(); v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);A & C & D;# if A && /* inline; comment */ C \; && D e 136 16 b;0,-1 -e 403 136 b;0,-1 -e 403 128 a;-1,0 +e 128 16 a;-1,0 e 531 16 ba;1,1 e 592 16 ba;2,2 +e 403 136 b;0,-1 e 843 592 b;0,-1 e 771 592 a;-1,0 -e 128 16 a;-1,0 +e 403 128 a;-1,0 diff --git a/src/test/resources/multilinemacros/inline_comments_2_expected.lg b/src/test/resources/multilinemacros/inline_comments_2_expected.lg index cb4af0742..e6d567028 100644 --- a/src/test/resources/multilinemacros/inline_comments_2_expected.lg +++ b/src/test/resources/multilinemacros/inline_comments_2_expected.lg @@ -7,10 +7,10 @@ v 1099 REM;ARTIFACT;(old: 14, diff: 16, new: -1);(old: 15, diff: 17, new: -1);; v 1027 ADD;ARTIFACT;(old: -1, diff: 15, new: 14);(old: -1, diff: 16, new: 15);; baz(); v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 8, new: 7);A & C & D;# if A && \;/* inline;comment */ \; C \; && D e 136 16 b;0,-1 -e 531 136 b;0,-1 -e 531 128 a;-1,0 +e 128 16 a;-1,0 e 659 16 ba;1,1 e 720 16 ba;2,2 +e 531 136 b;0,-1 e 1099 720 b;0,-1 e 1027 720 a;-1,0 -e 128 16 a;-1,0 +e 531 128 a;-1,0 diff --git a/src/test/resources/multilinemacros/inline_comments_3_expected.lg b/src/test/resources/multilinemacros/inline_comments_3_expected.lg index 7ea557356..1ba5cd78c 100644 --- a/src/test/resources/multilinemacros/inline_comments_3_expected.lg +++ b/src/test/resources/multilinemacros/inline_comments_3_expected.lg @@ -7,10 +7,10 @@ v 1355 REM;ARTIFACT;(old: 18, diff: 20, new: -1);(old: 19, diff: 21, new: -1);; v 1283 ADD;ARTIFACT;(old: -1, diff: 19, new: 18);(old: -1, diff: 20, new: 19);; baz(); v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 11, new: 10);A & C & D;# if A && \;/* inline;comment;with multiple;lines;*/ \; C \; && D e 136 16 b;0,-1 -e 723 136 b;0,-1 -e 723 128 a;-1,0 +e 128 16 a;-1,0 e 851 16 ba;1,1 e 912 16 ba;2,2 +e 723 136 b;0,-1 e 1355 912 b;0,-1 e 1283 912 a;-1,0 -e 128 16 a;-1,0 +e 723 128 a;-1,0 diff --git a/src/test/resources/multilinemacros/inline_comments_4_expected.lg b/src/test/resources/multilinemacros/inline_comments_4_expected.lg index a25a1a85c..4e7454a98 100644 --- a/src/test/resources/multilinemacros/inline_comments_4_expected.lg +++ b/src/test/resources/multilinemacros/inline_comments_4_expected.lg @@ -7,10 +7,10 @@ v 1163 REM;ARTIFACT;(old: 15, diff: 17, new: -1);(old: 16, diff: 18, new: -1);; v 1091 ADD;ARTIFACT;(old: -1, diff: 16, new: 15);(old: -1, diff: 17, new: 16);; baz(); v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 9, new: 8);A & B & C & E & D;# if A && /* multiple inline;comments */ B && /* that */ C && /*;are distributed;*/ \; E \; && D e 136 16 b;0,-1 -e 595 136 b;0,-1 -e 595 128 a;-1,0 +e 128 16 a;-1,0 e 723 16 ba;1,1 e 784 16 ba;2,2 +e 595 136 b;0,-1 e 1163 784 b;0,-1 e 1091 784 a;-1,0 -e 128 16 a;-1,0 +e 595 128 a;-1,0 diff --git a/src/test/resources/multilinemacros/inline_comments_5_expected.lg b/src/test/resources/multilinemacros/inline_comments_5_expected.lg index 0c22c138a..c98f54da0 100644 --- a/src/test/resources/multilinemacros/inline_comments_5_expected.lg +++ b/src/test/resources/multilinemacros/inline_comments_5_expected.lg @@ -11,14 +11,14 @@ v 1107 NON;ARTIFACT;(old: 14, diff: 16, new: 14);(old: 15, diff: 17, new: 15);;/ v 1171 NON;ARTIFACT;(old: 15, diff: 17, new: 15);(old: 16, diff: 18, new: 16);;text v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);A & C & D;# if A && /* inline; comment */ C \; && D //* no continuation e 136 16 b;0,-1 -e 403 136 b;0,-1 -e 403 128 a;-1,0 +e 128 16 a;-1,0 e 531 16 ba;1,1 e 592 16 ba;2,2 -e 843 592 b;0,-1 -e 771 592 a;-1,0 e 979 16 ba;3,3 e 1043 16 ba;4,4 e 1107 16 ba;5,5 e 1171 16 ba;6,6 -e 128 16 a;-1,0 +e 403 136 b;0,-1 +e 843 592 b;0,-1 +e 771 592 a;-1,0 +e 403 128 a;-1,0 diff --git a/src/test/resources/multilinemacros/inline_comments_6_expected.lg b/src/test/resources/multilinemacros/inline_comments_6_expected.lg index 91805d3cf..4e80108fa 100644 --- a/src/test/resources/multilinemacros/inline_comments_6_expected.lg +++ b/src/test/resources/multilinemacros/inline_comments_6_expected.lg @@ -3,6 +3,6 @@ v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 6, diff: 7, new: -1);A & B & D;# i v 467 NON;ARTIFACT;(old: 5, diff: 6, new: 5);(old: 6, diff: 7, new: 6);; baz(); v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 7, new: 6);A & C & D;# if A && /* inline;// Some inner line comment; comment */ C \; && D e 136 16 b;0,-1 +e 128 16 a;-1,0 e 467 136 b;0,-1 e 467 128 a;-1,0 -e 128 16 a;-1,0 diff --git a/src/test/resources/multilinemacros/mldiff1_expected.lg b/src/test/resources/multilinemacros/mldiff1_expected.lg index 10ef7f3a1..15471215e 100644 --- a/src/test/resources/multilinemacros/mldiff1_expected.lg +++ b/src/test/resources/multilinemacros/mldiff1_expected.lg @@ -20,24 +20,24 @@ v 1280 ADD;IF;(old: -1, diff: 19, new: 18);(old: -1, diff: 24, new: 22);A & (ADD v 1728 ADD;IF;(old: -1, diff: 26, new: 24);(old: -1, diff: 30, new: 28);X & Y | defined(Z) | W;#if (X && Y) \; || defined(Z) \; || W e 147 16 ba;0,0 e 208 16 ba;1,1 -e 339 208 ba;0,0 e 467 16 ba;2,2 e 659 16 b;3,-1 -e 659 512 a;-1,0 +e 512 16 a;-1,3 e 787 16 ba;4,4 e 840 16 b;5,-1 -e 1107 840 b;0,-1 -e 1107 832 a;-1,0 +e 832 16 a;-1,5 e 1235 16 ba;6,6 e 1288 16 b;7,-1 -e 1555 1288 b;0,-1 -e 1555 1280 a;-1,0 +e 1280 16 a;-1,7 e 1683 16 ba;8,8 e 1736 16 b;9,-1 +e 1728 16 a;-1,9 +e 2067 16 ba;10,10 +e 339 208 ba;0,0 +e 1107 840 b;0,-1 +e 1555 1288 b;0,-1 e 1939 1736 b;0,-1 +e 659 512 a;-1,0 +e 1107 832 a;-1,0 +e 1555 1280 a;-1,0 e 1939 1728 a;-1,0 -e 2067 16 ba;10,10 -e 512 16 a;-1,3 -e 832 16 a;-1,5 -e 1280 16 a;-1,7 -e 1728 16 a;-1,9 diff --git a/src/test/resources/tree-diffing/.gitignore b/src/test/resources/tree-diffing/.gitignore index 0745fb4f5..844a6fbc3 100644 --- a/src/test/resources/tree-diffing/.gitignore +++ b/src/test/resources/tree-diffing/.gitignore @@ -1,2 +1,2 @@ -/tex/ +tex/ *_actual.lg diff --git a/src/test/resources/tree-diffing/06_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/06_gumtree-hybrid_expected.lg deleted file mode 100644 index ed9ff5794..000000000 --- a/src/test/resources/tree-diffing/06_gumtree-hybrid_expected.lg +++ /dev/null @@ -1,10 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 1, new: 4);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line A -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line B -v 322 ADD;ELIF;(old: -1, diff: 4, new: 3);(old: -1, diff: 4, new: 5);B;#elif B -e 144 80 ba;0,0 -e 211 144 ba;0,0 -e 275 144 b;1,-1 -e 275 322 a;-1,0 -e 322 144 a;-1,1 diff --git a/src/test/resources/tree-diffing/06_gumtree_expected.lg b/src/test/resources/tree-diffing/06_gumtree_expected.lg deleted file mode 100644 index ed9ff5794..000000000 --- a/src/test/resources/tree-diffing/06_gumtree_expected.lg +++ /dev/null @@ -1,10 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 1, new: 4);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line A -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line B -v 322 ADD;ELIF;(old: -1, diff: 4, new: 3);(old: -1, diff: 4, new: 5);B;#elif B -e 144 80 ba;0,0 -e 211 144 ba;0,0 -e 275 144 b;1,-1 -e 275 322 a;-1,0 -e 322 144 a;-1,1 diff --git a/src/test/resources/tree-diffing/07_change-distiller-theta_expected.lg b/src/test/resources/tree-diffing/07_change-distiller-theta_expected.lg deleted file mode 100644 index aa4fcbe2b..000000000 --- a/src/test/resources/tree-diffing/07_change-distiller-theta_expected.lg +++ /dev/null @@ -1,12 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(CONFIG_A);#ifdef CONFIG_A -v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(CONFIG_B);#ifdef CONFIG_B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line -v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 -e 384 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_classic-gumtree-theta_expected.lg b/src/test/resources/tree-diffing/07_classic-gumtree-theta_expected.lg deleted file mode 100644 index aa4fcbe2b..000000000 --- a/src/test/resources/tree-diffing/07_classic-gumtree-theta_expected.lg +++ /dev/null @@ -1,12 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(CONFIG_A);#ifdef CONFIG_A -v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(CONFIG_B);#ifdef CONFIG_B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line -v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 -e 384 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/07_gumtree-partition-id_expected.lg deleted file mode 100644 index aa4fcbe2b..000000000 --- a/src/test/resources/tree-diffing/07_gumtree-partition-id_expected.lg +++ /dev/null @@ -1,12 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(CONFIG_A);#ifdef CONFIG_A -v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(CONFIG_B);#ifdef CONFIG_B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line -v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 -e 384 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_gumtree-simple-id-theta_expected.lg b/src/test/resources/tree-diffing/07_gumtree-simple-id-theta_expected.lg deleted file mode 100644 index aa4fcbe2b..000000000 --- a/src/test/resources/tree-diffing/07_gumtree-simple-id-theta_expected.lg +++ /dev/null @@ -1,12 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(CONFIG_A);#ifdef CONFIG_A -v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(CONFIG_B);#ifdef CONFIG_B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line -v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 -e 384 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_theta_expected.lg b/src/test/resources/tree-diffing/07_theta_expected.lg deleted file mode 100644 index aa4fcbe2b..000000000 --- a/src/test/resources/tree-diffing/07_theta_expected.lg +++ /dev/null @@ -1,12 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(CONFIG_A);#ifdef CONFIG_A -v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(CONFIG_B);#ifdef CONFIG_B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line -v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 -e 384 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_change-distiller-theta_expected.lg b/src/test/resources/tree-diffing/08_change-distiller-theta_expected.lg deleted file mode 100644 index 3303e4528..000000000 --- a/src/test/resources/tree-diffing/08_change-distiller-theta_expected.lg +++ /dev/null @@ -1,12 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(A);#ifdef A -v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(B);#ifdef B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line -v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 -e 384 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_classic-gumtree-theta_expected.lg b/src/test/resources/tree-diffing/08_classic-gumtree-theta_expected.lg deleted file mode 100644 index 3303e4528..000000000 --- a/src/test/resources/tree-diffing/08_classic-gumtree-theta_expected.lg +++ /dev/null @@ -1,12 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(A);#ifdef A -v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(B);#ifdef B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line -v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 -e 384 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/08_gumtree-partition-id_expected.lg deleted file mode 100644 index 3303e4528..000000000 --- a/src/test/resources/tree-diffing/08_gumtree-partition-id_expected.lg +++ /dev/null @@ -1,12 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(A);#ifdef A -v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(B);#ifdef B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line -v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 -e 384 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_gumtree-simple-id-theta_expected.lg b/src/test/resources/tree-diffing/08_gumtree-simple-id-theta_expected.lg deleted file mode 100644 index 3303e4528..000000000 --- a/src/test/resources/tree-diffing/08_gumtree-simple-id-theta_expected.lg +++ /dev/null @@ -1,12 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(A);#ifdef A -v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(B);#ifdef B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line -v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 -e 384 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_theta_expected.lg b/src/test/resources/tree-diffing/08_theta_expected.lg deleted file mode 100644 index 3303e4528..000000000 --- a/src/test/resources/tree-diffing/08_theta_expected.lg +++ /dev/null @@ -1,12 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(A);#ifdef A -v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(B);#ifdef B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line -v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 -e 384 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_change-distiller-theta_expected.lg b/src/test/resources/tree-diffing/09_change-distiller-theta_expected.lg deleted file mode 100644 index 30efe1ca9..000000000 --- a/src/test/resources/tree-diffing/09_change-distiller-theta_expected.lg +++ /dev/null @@ -1,23 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 -v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B -v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 -v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 -v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 -v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B -e 144 80 b;0,-1 -e 144 640 a;-1,0 -e 211 144 ba;0,0 -e 275 144 ba;1,1 -e 339 144 ba;2,2 -e 392 144 b;3,-1 -e 467 392 b;0,-1 -e 467 144 a;-1,3 -e 531 392 b;1,-1 -e 531 144 a;-1,4 -e 595 392 b;2,-1 -e 595 144 a;-1,5 -e 640 80 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_change-distiller_expected.lg b/src/test/resources/tree-diffing/09_change-distiller_expected.lg deleted file mode 100644 index 30efe1ca9..000000000 --- a/src/test/resources/tree-diffing/09_change-distiller_expected.lg +++ /dev/null @@ -1,23 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 -v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B -v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 -v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 -v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 -v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B -e 144 80 b;0,-1 -e 144 640 a;-1,0 -e 211 144 ba;0,0 -e 275 144 ba;1,1 -e 339 144 ba;2,2 -e 392 144 b;3,-1 -e 467 392 b;0,-1 -e 467 144 a;-1,3 -e 531 392 b;1,-1 -e 531 144 a;-1,4 -e 595 392 b;2,-1 -e 595 144 a;-1,5 -e 640 80 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_classic-gumtree-theta_expected.lg b/src/test/resources/tree-diffing/09_classic-gumtree-theta_expected.lg deleted file mode 100644 index 30efe1ca9..000000000 --- a/src/test/resources/tree-diffing/09_classic-gumtree-theta_expected.lg +++ /dev/null @@ -1,23 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 -v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B -v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 -v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 -v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 -v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B -e 144 80 b;0,-1 -e 144 640 a;-1,0 -e 211 144 ba;0,0 -e 275 144 ba;1,1 -e 339 144 ba;2,2 -e 392 144 b;3,-1 -e 467 392 b;0,-1 -e 467 144 a;-1,3 -e 531 392 b;1,-1 -e 531 144 a;-1,4 -e 595 392 b;2,-1 -e 595 144 a;-1,5 -e 640 80 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/09_gumtree-partition-id_expected.lg deleted file mode 100644 index 30efe1ca9..000000000 --- a/src/test/resources/tree-diffing/09_gumtree-partition-id_expected.lg +++ /dev/null @@ -1,23 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 -v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B -v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 -v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 -v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 -v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B -e 144 80 b;0,-1 -e 144 640 a;-1,0 -e 211 144 ba;0,0 -e 275 144 ba;1,1 -e 339 144 ba;2,2 -e 392 144 b;3,-1 -e 467 392 b;0,-1 -e 467 144 a;-1,3 -e 531 392 b;1,-1 -e 531 144 a;-1,4 -e 595 392 b;2,-1 -e 595 144 a;-1,5 -e 640 80 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_gumtree-simple-id-theta_expected.lg b/src/test/resources/tree-diffing/09_gumtree-simple-id-theta_expected.lg deleted file mode 100644 index 30efe1ca9..000000000 --- a/src/test/resources/tree-diffing/09_gumtree-simple-id-theta_expected.lg +++ /dev/null @@ -1,23 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 -v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B -v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 -v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 -v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 -v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B -e 144 80 b;0,-1 -e 144 640 a;-1,0 -e 211 144 ba;0,0 -e 275 144 ba;1,1 -e 339 144 ba;2,2 -e 392 144 b;3,-1 -e 467 392 b;0,-1 -e 467 144 a;-1,3 -e 531 392 b;1,-1 -e 531 144 a;-1,4 -e 595 392 b;2,-1 -e 595 144 a;-1,5 -e 640 80 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/09_gumtree-simple-id_expected.lg deleted file mode 100644 index 30efe1ca9..000000000 --- a/src/test/resources/tree-diffing/09_gumtree-simple-id_expected.lg +++ /dev/null @@ -1,23 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 -v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B -v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 -v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 -v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 -v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B -e 144 80 b;0,-1 -e 144 640 a;-1,0 -e 211 144 ba;0,0 -e 275 144 ba;1,1 -e 339 144 ba;2,2 -e 392 144 b;3,-1 -e 467 392 b;0,-1 -e 467 144 a;-1,3 -e 531 392 b;1,-1 -e 531 144 a;-1,4 -e 595 392 b;2,-1 -e 595 144 a;-1,5 -e 640 80 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/09_gumtree-simple_expected.lg deleted file mode 100644 index 30efe1ca9..000000000 --- a/src/test/resources/tree-diffing/09_gumtree-simple_expected.lg +++ /dev/null @@ -1,23 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 -v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B -v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 -v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 -v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 -v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B -e 144 80 b;0,-1 -e 144 640 a;-1,0 -e 211 144 ba;0,0 -e 275 144 ba;1,1 -e 339 144 ba;2,2 -e 392 144 b;3,-1 -e 467 392 b;0,-1 -e 467 144 a;-1,3 -e 531 392 b;1,-1 -e 531 144 a;-1,4 -e 595 392 b;2,-1 -e 595 144 a;-1,5 -e 640 80 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_theta_expected.lg b/src/test/resources/tree-diffing/09_theta_expected.lg deleted file mode 100644 index 30efe1ca9..000000000 --- a/src/test/resources/tree-diffing/09_theta_expected.lg +++ /dev/null @@ -1,23 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 -v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B -v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 -v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 -v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 -v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B -e 144 80 b;0,-1 -e 144 640 a;-1,0 -e 211 144 ba;0,0 -e 275 144 ba;1,1 -e 339 144 ba;2,2 -e 392 144 b;3,-1 -e 467 392 b;0,-1 -e 467 144 a;-1,3 -e 531 392 b;1,-1 -e 531 144 a;-1,4 -e 595 392 b;2,-1 -e 595 144 a;-1,5 -e 640 80 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_xy_expected.lg b/src/test/resources/tree-diffing/09_xy_expected.lg deleted file mode 100644 index 30efe1ca9..000000000 --- a/src/test/resources/tree-diffing/09_xy_expected.lg +++ /dev/null @@ -1,23 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 -v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B -v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 -v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 -v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 -v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B -e 144 80 b;0,-1 -e 144 640 a;-1,0 -e 211 144 ba;0,0 -e 275 144 ba;1,1 -e 339 144 ba;2,2 -e 392 144 b;3,-1 -e 467 392 b;0,-1 -e 467 144 a;-1,3 -e 531 392 b;1,-1 -e 531 144 a;-1,4 -e 595 392 b;2,-1 -e 595 144 a;-1,5 -e 640 80 a;-1,0 diff --git a/src/test/resources/tree-diffing/10_change-distiller_expected.lg b/src/test/resources/tree-diffing/10_change-distiller_expected.lg deleted file mode 100644 index bb645cdad..000000000 --- a/src/test/resources/tree-diffing/10_change-distiller_expected.lg +++ /dev/null @@ -1,9 +0,0 @@ -v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 1, new: 4);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;456 -v 267 REM;ARTIFACT;(old: 3, diff: 3, new: -1);(old: 4, diff: 3, new: -1);;123 -v 323 ADD;ARTIFACT;(old: -1, diff: 4, new: 2);(old: -1, diff: 4, new: 3);;123 -e 144 80 ba;0,0 -e 211 144 ba;0,1 -e 267 144 b;1,-1 -e 323 144 a;-1,0 diff --git a/src/test/resources/tree-diffing/01_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/createMatching/01_gumtree-hybrid_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/01_gumtree-hybrid_expected.lg rename to src/test/resources/tree-diffing/createMatching/01_gumtree-hybrid_expected.lg diff --git a/src/test/resources/tree-diffing/01_gumtree_expected.lg b/src/test/resources/tree-diffing/createMatching/01_gumtree_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/01_gumtree_expected.lg rename to src/test/resources/tree-diffing/createMatching/01_gumtree_expected.lg diff --git a/src/test/resources/tree-diffing/02_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/createMatching/02_gumtree-hybrid_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/02_gumtree-hybrid_expected.lg rename to src/test/resources/tree-diffing/createMatching/02_gumtree-hybrid_expected.lg diff --git a/src/test/resources/tree-diffing/02_gumtree_expected.lg b/src/test/resources/tree-diffing/createMatching/02_gumtree_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/02_gumtree_expected.lg rename to src/test/resources/tree-diffing/createMatching/02_gumtree_expected.lg diff --git a/src/test/resources/tree-diffing/03_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/createMatching/03_gumtree-hybrid_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/03_gumtree-hybrid_expected.lg rename to src/test/resources/tree-diffing/createMatching/03_gumtree-hybrid_expected.lg diff --git a/src/test/resources/tree-diffing/03_gumtree_expected.lg b/src/test/resources/tree-diffing/createMatching/03_gumtree_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/03_gumtree_expected.lg rename to src/test/resources/tree-diffing/createMatching/03_gumtree_expected.lg diff --git a/src/test/resources/tree-diffing/04_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/createMatching/04_gumtree-hybrid_expected.lg similarity index 73% rename from src/test/resources/tree-diffing/04_gumtree-hybrid_expected.lg rename to src/test/resources/tree-diffing/createMatching/04_gumtree-hybrid_expected.lg index 840767659..4824623c9 100644 --- a/src/test/resources/tree-diffing/04_gumtree-hybrid_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/04_gumtree-hybrid_expected.lg @@ -1,6 +1,6 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 1, new: 2);;Line +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 2);(old: 2, diff: 1, new: 3);;Line v 192 ADD;IF;(old: -1, diff: 2, new: 1);(old: -1, diff: 2, new: 3);defined(A);#ifdef A e 147 80 b;0,-1 -e 147 192 a;-1,0 e 192 80 a;-1,0 +e 147 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/04_gumtree_expected.lg b/src/test/resources/tree-diffing/createMatching/04_gumtree_expected.lg similarity index 73% rename from src/test/resources/tree-diffing/04_gumtree_expected.lg rename to src/test/resources/tree-diffing/createMatching/04_gumtree_expected.lg index 840767659..4824623c9 100644 --- a/src/test/resources/tree-diffing/04_gumtree_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/04_gumtree_expected.lg @@ -1,6 +1,6 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 1, new: 2);;Line +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 2);(old: 2, diff: 1, new: 3);;Line v 192 ADD;IF;(old: -1, diff: 2, new: 1);(old: -1, diff: 2, new: 3);defined(A);#ifdef A e 147 80 b;0,-1 -e 147 192 a;-1,0 e 192 80 a;-1,0 +e 147 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/05_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/createMatching/05_gumtree-hybrid_expected.lg similarity index 73% rename from src/test/resources/tree-diffing/05_gumtree-hybrid_expected.lg rename to src/test/resources/tree-diffing/createMatching/05_gumtree-hybrid_expected.lg index 1b1f5340d..a9b885eaa 100644 --- a/src/test/resources/tree-diffing/05_gumtree-hybrid_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/05_gumtree-hybrid_expected.lg @@ -1,6 +1,6 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 1, new: -1);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 2, new: 2);;Line e 136 80 b;0,-1 -e 211 136 b;0,-1 e 211 80 a;-1,0 +e 211 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/05_gumtree_expected.lg b/src/test/resources/tree-diffing/createMatching/05_gumtree_expected.lg similarity index 73% rename from src/test/resources/tree-diffing/05_gumtree_expected.lg rename to src/test/resources/tree-diffing/createMatching/05_gumtree_expected.lg index 1b1f5340d..a9b885eaa 100644 --- a/src/test/resources/tree-diffing/05_gumtree_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/05_gumtree_expected.lg @@ -1,6 +1,6 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 1, new: -1);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 2, new: 2);;Line e 136 80 b;0,-1 -e 211 136 b;0,-1 e 211 80 a;-1,0 +e 211 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/createMatching/06_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/createMatching/06_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..007fe1a88 --- /dev/null +++ b/src/test/resources/tree-diffing/createMatching/06_gumtree-hybrid_expected.lg @@ -0,0 +1,13 @@ +v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 4, diff: 1, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line A +v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 4);(old: 4, diff: 3, new: 5);;Line B +v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 3);defined(A);#ifdef A +v 386 ADD;ELIF;(old: -1, diff: 5, new: 3);(old: -1, diff: 5, new: 5);B;#elif B +e 136 80 b;0,-1 +e 320 80 a;-1,0 +e 211 136 b;0,-1 +e 275 136 b;1,-1 +e 211 320 a;-1,0 +e 386 320 a;-1,1 +e 275 386 a;-1,0 diff --git a/src/test/resources/tree-diffing/createMatching/06_gumtree_expected.lg b/src/test/resources/tree-diffing/createMatching/06_gumtree_expected.lg new file mode 100644 index 000000000..007fe1a88 --- /dev/null +++ b/src/test/resources/tree-diffing/createMatching/06_gumtree_expected.lg @@ -0,0 +1,13 @@ +v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 4, diff: 1, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line A +v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 4);(old: 4, diff: 3, new: 5);;Line B +v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 3);defined(A);#ifdef A +v 386 ADD;ELIF;(old: -1, diff: 5, new: 3);(old: -1, diff: 5, new: 5);B;#elif B +e 136 80 b;0,-1 +e 320 80 a;-1,0 +e 211 136 b;0,-1 +e 275 136 b;1,-1 +e 211 320 a;-1,0 +e 386 320 a;-1,1 +e 275 386 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_change-distiller_expected.lg b/src/test/resources/tree-diffing/createMatching/07_change-distiller_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/07_change-distiller_expected.lg rename to src/test/resources/tree-diffing/createMatching/07_change-distiller_expected.lg index aa4fcbe2b..a07a12b73 100644 --- a/src/test/resources/tree-diffing/07_change-distiller_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/07_change-distiller_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/createMatching/07_gumtree-hybrid-id_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/07_gumtree-hybrid-id_expected.lg rename to src/test/resources/tree-diffing/createMatching/07_gumtree-hybrid-id_expected.lg index aa4fcbe2b..a07a12b73 100644 --- a/src/test/resources/tree-diffing/07_gumtree-hybrid-id_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/07_gumtree-hybrid-id_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/createMatching/07_gumtree-hybrid_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/07_gumtree-hybrid_expected.lg rename to src/test/resources/tree-diffing/createMatching/07_gumtree-hybrid_expected.lg index aa4fcbe2b..a07a12b73 100644 --- a/src/test/resources/tree-diffing/07_gumtree-hybrid_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/07_gumtree-hybrid_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/createMatching/07_gumtree-simple-id_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/07_gumtree-simple-id_expected.lg rename to src/test/resources/tree-diffing/createMatching/07_gumtree-simple-id_expected.lg index aa4fcbe2b..a07a12b73 100644 --- a/src/test/resources/tree-diffing/07_gumtree-simple-id_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/07_gumtree-simple-id_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/createMatching/07_gumtree-simple_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/07_gumtree-simple_expected.lg rename to src/test/resources/tree-diffing/createMatching/07_gumtree-simple_expected.lg index aa4fcbe2b..a07a12b73 100644 --- a/src/test/resources/tree-diffing/07_gumtree-simple_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/07_gumtree-simple_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_gumtree_expected.lg b/src/test/resources/tree-diffing/createMatching/07_gumtree_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/07_gumtree_expected.lg rename to src/test/resources/tree-diffing/createMatching/07_gumtree_expected.lg index aa4fcbe2b..a07a12b73 100644 --- a/src/test/resources/tree-diffing/07_gumtree_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/07_gumtree_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/createMatching/07_longestCommonSequence_expected.lg similarity index 58% rename from src/test/resources/tree-diffing/07_longestCommonSequence_expected.lg rename to src/test/resources/tree-diffing/createMatching/07_longestCommonSequence_expected.lg index aa4fcbe2b..2e680785a 100644 --- a/src/test/resources/tree-diffing/07_longestCommonSequence_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/07_longestCommonSequence_expected.lg @@ -1,12 +1,11 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(CONFIG_A);#ifdef CONFIG_A +v 144 NON;IF;(old: 1, diff: 1, new: 2);(old: 5, diff: 1, new: 4);defined(CONFIG_A);#ifdef CONFIG_A v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(CONFIG_B);#ifdef CONFIG_B v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 +e 144 80 b;0,-1 e 320 80 a;-1,0 -e 384 320 a;-1,0 +e 200 144 b;0,-1 +e 275 144 a;-1,0 +e 275 200 b;0,-1 +e 144 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/07_xy_expected.lg b/src/test/resources/tree-diffing/createMatching/07_xy_expected.lg similarity index 73% rename from src/test/resources/tree-diffing/07_xy_expected.lg rename to src/test/resources/tree-diffing/createMatching/07_xy_expected.lg index aa4fcbe2b..c520a3cf2 100644 --- a/src/test/resources/tree-diffing/07_xy_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/07_xy_expected.lg @@ -1,12 +1,13 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(CONFIG_A);#ifdef CONFIG_A v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(CONFIG_B);#ifdef CONFIG_B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line +v 267 REM;ARTIFACT;(old: 3, diff: 3, new: -1);(old: 4, diff: 3, new: -1);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(CONFIG_B);#ifdef CONFIG_B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A +v 451 ADD;ARTIFACT;(old: -1, diff: 6, new: 3);(old: -1, diff: 6, new: 4);;Line e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 e 320 80 a;-1,0 +e 200 136 b;0,-1 +e 267 200 b;0,-1 e 384 320 a;-1,0 +e 451 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_change-distiller_expected.lg b/src/test/resources/tree-diffing/createMatching/08_change-distiller_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/08_change-distiller_expected.lg rename to src/test/resources/tree-diffing/createMatching/08_change-distiller_expected.lg index 3303e4528..c87160f14 100644 --- a/src/test/resources/tree-diffing/08_change-distiller_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/08_change-distiller_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/createMatching/08_gumtree-hybrid-id_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/08_gumtree-hybrid-id_expected.lg rename to src/test/resources/tree-diffing/createMatching/08_gumtree-hybrid-id_expected.lg index 3303e4528..c87160f14 100644 --- a/src/test/resources/tree-diffing/08_gumtree-hybrid-id_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/08_gumtree-hybrid-id_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/createMatching/08_gumtree-hybrid_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/08_gumtree-hybrid_expected.lg rename to src/test/resources/tree-diffing/createMatching/08_gumtree-hybrid_expected.lg index 3303e4528..c87160f14 100644 --- a/src/test/resources/tree-diffing/08_gumtree-hybrid_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/08_gumtree-hybrid_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/createMatching/08_gumtree-simple-id_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/08_gumtree-simple-id_expected.lg rename to src/test/resources/tree-diffing/createMatching/08_gumtree-simple-id_expected.lg index 3303e4528..c87160f14 100644 --- a/src/test/resources/tree-diffing/08_gumtree-simple-id_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/08_gumtree-simple-id_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/createMatching/08_gumtree-simple_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/08_gumtree-simple_expected.lg rename to src/test/resources/tree-diffing/createMatching/08_gumtree-simple_expected.lg index 3303e4528..c87160f14 100644 --- a/src/test/resources/tree-diffing/08_gumtree-simple_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/08_gumtree-simple_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_gumtree_expected.lg b/src/test/resources/tree-diffing/createMatching/08_gumtree_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/08_gumtree_expected.lg rename to src/test/resources/tree-diffing/createMatching/08_gumtree_expected.lg index 3303e4528..c87160f14 100644 --- a/src/test/resources/tree-diffing/08_gumtree_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/08_gumtree_expected.lg @@ -5,8 +5,8 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A e 136 80 b;0,-1 +e 320 80 a;-1,0 e 200 136 b;0,-1 e 275 200 b;0,-1 -e 275 384 a;-1,0 -e 320 80 a;-1,0 e 384 320 a;-1,0 +e 275 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/createMatching/08_longestCommonSequence_expected.lg similarity index 59% rename from src/test/resources/tree-diffing/08_longestCommonSequence_expected.lg rename to src/test/resources/tree-diffing/createMatching/08_longestCommonSequence_expected.lg index 3303e4528..d537c5e32 100644 --- a/src/test/resources/tree-diffing/08_longestCommonSequence_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/08_longestCommonSequence_expected.lg @@ -1,12 +1,11 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(A);#ifdef A +v 144 NON;IF;(old: 1, diff: 1, new: 2);(old: 5, diff: 1, new: 4);defined(A);#ifdef A v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(B);#ifdef B v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B -v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A -e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 +e 144 80 b;0,-1 e 320 80 a;-1,0 -e 384 320 a;-1,0 +e 200 144 b;0,-1 +e 275 144 a;-1,0 +e 275 200 b;0,-1 +e 144 320 a;-1,0 diff --git a/src/test/resources/tree-diffing/08_xy_expected.lg b/src/test/resources/tree-diffing/createMatching/08_xy_expected.lg similarity index 71% rename from src/test/resources/tree-diffing/08_xy_expected.lg rename to src/test/resources/tree-diffing/createMatching/08_xy_expected.lg index 3303e4528..dadb7225b 100644 --- a/src/test/resources/tree-diffing/08_xy_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/08_xy_expected.lg @@ -1,12 +1,13 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 5, diff: 1, new: -1);defined(A);#ifdef A v 200 REM;IF;(old: 2, diff: 2, new: -1);(old: 4, diff: 2, new: -1);defined(B);#ifdef B -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line +v 267 REM;ARTIFACT;(old: 3, diff: 3, new: -1);(old: 4, diff: 3, new: -1);;Line v 320 ADD;IF;(old: -1, diff: 4, new: 1);(old: -1, diff: 4, new: 5);defined(B);#ifdef B v 384 ADD;IF;(old: -1, diff: 5, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A +v 451 ADD;ARTIFACT;(old: -1, diff: 6, new: 3);(old: -1, diff: 6, new: 4);;Line e 136 80 b;0,-1 -e 200 136 b;0,-1 -e 275 200 b;0,-1 -e 275 384 a;-1,0 e 320 80 a;-1,0 +e 200 136 b;0,-1 +e 267 200 b;0,-1 e 384 320 a;-1,0 +e 451 384 a;-1,0 diff --git a/src/test/resources/tree-diffing/createMatching/09_change-distiller_expected.lg b/src/test/resources/tree-diffing/createMatching/09_change-distiller_expected.lg new file mode 100644 index 000000000..26b79040b --- /dev/null +++ b/src/test/resources/tree-diffing/createMatching/09_change-distiller_expected.lg @@ -0,0 +1,32 @@ +v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 2);(old: 10, diff: 1, new: 9);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 2, new: -1);;Line 1 +v 267 REM;ARTIFACT;(old: 3, diff: 3, new: -1);(old: 4, diff: 3, new: -1);;Line 2 +v 331 REM;ARTIFACT;(old: 4, diff: 4, new: -1);(old: 5, diff: 4, new: -1);;Line 3 +v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B +v 459 REM;ARTIFACT;(old: 6, diff: 6, new: -1);(old: 7, diff: 6, new: -1);;Line 4 +v 523 REM;ARTIFACT;(old: 7, diff: 7, new: -1);(old: 8, diff: 7, new: -1);;Line 5 +v 587 REM;ARTIFACT;(old: 8, diff: 8, new: -1);(old: 9, diff: 8, new: -1);;Line 6 +v 643 ADD;ARTIFACT;(old: -1, diff: 9, new: 3);(old: -1, diff: 9, new: 4);;Line 1 +v 707 ADD;ARTIFACT;(old: -1, diff: 10, new: 4);(old: -1, diff: 10, new: 5);;Line 2 +v 771 ADD;ARTIFACT;(old: -1, diff: 11, new: 5);(old: -1, diff: 11, new: 6);;Line 3 +v 835 ADD;ARTIFACT;(old: -1, diff: 12, new: 6);(old: -1, diff: 12, new: 7);;Line 4 +v 899 ADD;ARTIFACT;(old: -1, diff: 13, new: 7);(old: -1, diff: 13, new: 8);;Line 5 +v 963 ADD;ARTIFACT;(old: -1, diff: 14, new: 8);(old: -1, diff: 14, new: 9);;Line 6 +v 1024 ADD;IF;(old: -1, diff: 15, new: 1);(old: -1, diff: 15, new: 10);defined(B);#ifdef B +e 144 80 b;0,-1 +e 1024 80 a;-1,0 +e 203 144 b;0,-1 +e 267 144 b;1,-1 +e 331 144 b;2,-1 +e 392 144 b;3,-1 +e 643 144 a;-1,0 +e 707 144 a;-1,1 +e 771 144 a;-1,2 +e 835 144 a;-1,3 +e 899 144 a;-1,4 +e 963 144 a;-1,5 +e 459 392 b;0,-1 +e 523 392 b;1,-1 +e 587 392 b;2,-1 +e 144 1024 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/createMatching/09_gumtree-hybrid-id_expected.lg similarity index 68% rename from src/test/resources/tree-diffing/09_gumtree-hybrid-id_expected.lg rename to src/test/resources/tree-diffing/createMatching/09_gumtree-hybrid-id_expected.lg index 30efe1ca9..dd0703090 100644 --- a/src/test/resources/tree-diffing/09_gumtree-hybrid-id_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/09_gumtree-hybrid-id_expected.lg @@ -1,23 +1,23 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 +v 144 NON;IF;(old: 1, diff: 1, new: 2);(old: 10, diff: 1, new: 9);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 3);(old: 3, diff: 2, new: 4);;Line 1 +v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 4);(old: 4, diff: 3, new: 5);;Line 2 +v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 5);(old: 5, diff: 4, new: 6);;Line 3 v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B e 144 80 b;0,-1 -e 144 640 a;-1,0 +e 640 80 a;-1,0 e 211 144 ba;0,0 e 275 144 ba;1,1 e 339 144 ba;2,2 e 392 144 b;3,-1 -e 467 392 b;0,-1 e 467 144 a;-1,3 -e 531 392 b;1,-1 e 531 144 a;-1,4 -e 595 392 b;2,-1 e 595 144 a;-1,5 -e 640 80 a;-1,0 +e 467 392 b;0,-1 +e 531 392 b;1,-1 +e 595 392 b;2,-1 +e 144 640 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/createMatching/09_gumtree-hybrid_expected.lg similarity index 68% rename from src/test/resources/tree-diffing/09_gumtree-hybrid_expected.lg rename to src/test/resources/tree-diffing/createMatching/09_gumtree-hybrid_expected.lg index 30efe1ca9..dd0703090 100644 --- a/src/test/resources/tree-diffing/09_gumtree-hybrid_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/09_gumtree-hybrid_expected.lg @@ -1,23 +1,23 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 +v 144 NON;IF;(old: 1, diff: 1, new: 2);(old: 10, diff: 1, new: 9);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 3);(old: 3, diff: 2, new: 4);;Line 1 +v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 4);(old: 4, diff: 3, new: 5);;Line 2 +v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 5);(old: 5, diff: 4, new: 6);;Line 3 v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B e 144 80 b;0,-1 -e 144 640 a;-1,0 +e 640 80 a;-1,0 e 211 144 ba;0,0 e 275 144 ba;1,1 e 339 144 ba;2,2 e 392 144 b;3,-1 -e 467 392 b;0,-1 e 467 144 a;-1,3 -e 531 392 b;1,-1 e 531 144 a;-1,4 -e 595 392 b;2,-1 e 595 144 a;-1,5 -e 640 80 a;-1,0 +e 467 392 b;0,-1 +e 531 392 b;1,-1 +e 595 392 b;2,-1 +e 144 640 a;-1,0 diff --git a/src/test/resources/tree-diffing/createMatching/09_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/createMatching/09_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..8f1ea0152 --- /dev/null +++ b/src/test/resources/tree-diffing/createMatching/09_gumtree-simple-id_expected.lg @@ -0,0 +1,30 @@ +v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 10, diff: 1, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 2, new: -1);;Line 1 +v 267 REM;ARTIFACT;(old: 3, diff: 3, new: -1);(old: 4, diff: 3, new: -1);;Line 2 +v 331 REM;ARTIFACT;(old: 4, diff: 4, new: -1);(old: 5, diff: 4, new: -1);;Line 3 +v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B +v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 +v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 +v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 +v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B +v 704 ADD;IF;(old: -1, diff: 10, new: 2);(old: -1, diff: 10, new: 9);defined(A);#ifdef A +v 771 ADD;ARTIFACT;(old: -1, diff: 11, new: 3);(old: -1, diff: 11, new: 4);;Line 1 +v 835 ADD;ARTIFACT;(old: -1, diff: 12, new: 4);(old: -1, diff: 12, new: 5);;Line 2 +v 899 ADD;ARTIFACT;(old: -1, diff: 13, new: 5);(old: -1, diff: 13, new: 6);;Line 3 +e 136 80 b;0,-1 +e 640 80 a;-1,0 +e 203 136 b;0,-1 +e 267 136 b;1,-1 +e 331 136 b;2,-1 +e 392 136 b;3,-1 +e 467 392 b;0,-1 +e 531 392 b;1,-1 +e 595 392 b;2,-1 +e 704 640 a;-1,0 +e 771 704 a;-1,0 +e 835 704 a;-1,1 +e 899 704 a;-1,2 +e 467 704 a;-1,3 +e 531 704 a;-1,4 +e 595 704 a;-1,5 diff --git a/src/test/resources/tree-diffing/createMatching/09_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/createMatching/09_gumtree-simple_expected.lg new file mode 100644 index 000000000..8f1ea0152 --- /dev/null +++ b/src/test/resources/tree-diffing/createMatching/09_gumtree-simple_expected.lg @@ -0,0 +1,30 @@ +v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 10, diff: 1, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 2, new: -1);;Line 1 +v 267 REM;ARTIFACT;(old: 3, diff: 3, new: -1);(old: 4, diff: 3, new: -1);;Line 2 +v 331 REM;ARTIFACT;(old: 4, diff: 4, new: -1);(old: 5, diff: 4, new: -1);;Line 3 +v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B +v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 +v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 +v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 +v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B +v 704 ADD;IF;(old: -1, diff: 10, new: 2);(old: -1, diff: 10, new: 9);defined(A);#ifdef A +v 771 ADD;ARTIFACT;(old: -1, diff: 11, new: 3);(old: -1, diff: 11, new: 4);;Line 1 +v 835 ADD;ARTIFACT;(old: -1, diff: 12, new: 4);(old: -1, diff: 12, new: 5);;Line 2 +v 899 ADD;ARTIFACT;(old: -1, diff: 13, new: 5);(old: -1, diff: 13, new: 6);;Line 3 +e 136 80 b;0,-1 +e 640 80 a;-1,0 +e 203 136 b;0,-1 +e 267 136 b;1,-1 +e 331 136 b;2,-1 +e 392 136 b;3,-1 +e 467 392 b;0,-1 +e 531 392 b;1,-1 +e 595 392 b;2,-1 +e 704 640 a;-1,0 +e 771 704 a;-1,0 +e 835 704 a;-1,1 +e 899 704 a;-1,2 +e 467 704 a;-1,3 +e 531 704 a;-1,4 +e 595 704 a;-1,5 diff --git a/src/test/resources/tree-diffing/09_gumtree_expected.lg b/src/test/resources/tree-diffing/createMatching/09_gumtree_expected.lg similarity index 68% rename from src/test/resources/tree-diffing/09_gumtree_expected.lg rename to src/test/resources/tree-diffing/createMatching/09_gumtree_expected.lg index 30efe1ca9..dd0703090 100644 --- a/src/test/resources/tree-diffing/09_gumtree_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/09_gumtree_expected.lg @@ -1,23 +1,23 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 +v 144 NON;IF;(old: 1, diff: 1, new: 2);(old: 10, diff: 1, new: 9);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 3);(old: 3, diff: 2, new: 4);;Line 1 +v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 4);(old: 4, diff: 3, new: 5);;Line 2 +v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 5);(old: 5, diff: 4, new: 6);;Line 3 v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B e 144 80 b;0,-1 -e 144 640 a;-1,0 +e 640 80 a;-1,0 e 211 144 ba;0,0 e 275 144 ba;1,1 e 339 144 ba;2,2 e 392 144 b;3,-1 -e 467 392 b;0,-1 e 467 144 a;-1,3 -e 531 392 b;1,-1 e 531 144 a;-1,4 -e 595 392 b;2,-1 e 595 144 a;-1,5 -e 640 80 a;-1,0 +e 467 392 b;0,-1 +e 531 392 b;1,-1 +e 595 392 b;2,-1 +e 144 640 a;-1,0 diff --git a/src/test/resources/tree-diffing/09_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/createMatching/09_longestCommonSequence_expected.lg similarity index 68% rename from src/test/resources/tree-diffing/09_longestCommonSequence_expected.lg rename to src/test/resources/tree-diffing/createMatching/09_longestCommonSequence_expected.lg index 30efe1ca9..dd0703090 100644 --- a/src/test/resources/tree-diffing/09_longestCommonSequence_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/09_longestCommonSequence_expected.lg @@ -1,23 +1,23 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True -v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 10, diff: 1, new: 10);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;Line 1 -v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;Line 2 -v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 4);(old: 5, diff: 4, new: 5);;Line 3 +v 144 NON;IF;(old: 1, diff: 1, new: 2);(old: 10, diff: 1, new: 9);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 3);(old: 3, diff: 2, new: 4);;Line 1 +v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 4);(old: 4, diff: 3, new: 5);;Line 2 +v 339 NON;ARTIFACT;(old: 4, diff: 4, new: 5);(old: 5, diff: 4, new: 6);;Line 3 v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B v 467 NON;ARTIFACT;(old: 6, diff: 6, new: 6);(old: 7, diff: 6, new: 7);;Line 4 v 531 NON;ARTIFACT;(old: 7, diff: 7, new: 7);(old: 8, diff: 7, new: 8);;Line 5 v 595 NON;ARTIFACT;(old: 8, diff: 8, new: 8);(old: 9, diff: 8, new: 9);;Line 6 v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B e 144 80 b;0,-1 -e 144 640 a;-1,0 +e 640 80 a;-1,0 e 211 144 ba;0,0 e 275 144 ba;1,1 e 339 144 ba;2,2 e 392 144 b;3,-1 -e 467 392 b;0,-1 e 467 144 a;-1,3 -e 531 392 b;1,-1 e 531 144 a;-1,4 -e 595 392 b;2,-1 e 595 144 a;-1,5 -e 640 80 a;-1,0 +e 467 392 b;0,-1 +e 531 392 b;1,-1 +e 595 392 b;2,-1 +e 144 640 a;-1,0 diff --git a/src/test/resources/tree-diffing/createMatching/09_xy_expected.lg b/src/test/resources/tree-diffing/createMatching/09_xy_expected.lg new file mode 100644 index 000000000..fa0eefc85 --- /dev/null +++ b/src/test/resources/tree-diffing/createMatching/09_xy_expected.lg @@ -0,0 +1,33 @@ +v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 10, diff: 1, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 2, new: -1);;Line 1 +v 267 REM;ARTIFACT;(old: 3, diff: 3, new: -1);(old: 4, diff: 3, new: -1);;Line 2 +v 331 REM;ARTIFACT;(old: 4, diff: 4, new: -1);(old: 5, diff: 4, new: -1);;Line 3 +v 392 REM;IF;(old: 5, diff: 5, new: -1);(old: 9, diff: 5, new: -1);defined(B);#ifdef B +v 459 REM;ARTIFACT;(old: 6, diff: 6, new: -1);(old: 7, diff: 6, new: -1);;Line 4 +v 523 REM;ARTIFACT;(old: 7, diff: 7, new: -1);(old: 8, diff: 7, new: -1);;Line 5 +v 587 REM;ARTIFACT;(old: 8, diff: 8, new: -1);(old: 9, diff: 8, new: -1);;Line 6 +v 640 ADD;IF;(old: -1, diff: 9, new: 1);(old: -1, diff: 9, new: 10);defined(B);#ifdef B +v 704 ADD;IF;(old: -1, diff: 10, new: 2);(old: -1, diff: 10, new: 9);defined(A);#ifdef A +v 771 ADD;ARTIFACT;(old: -1, diff: 11, new: 3);(old: -1, diff: 11, new: 4);;Line 1 +v 835 ADD;ARTIFACT;(old: -1, diff: 12, new: 4);(old: -1, diff: 12, new: 5);;Line 2 +v 899 ADD;ARTIFACT;(old: -1, diff: 13, new: 5);(old: -1, diff: 13, new: 6);;Line 3 +v 963 ADD;ARTIFACT;(old: -1, diff: 14, new: 6);(old: -1, diff: 14, new: 7);;Line 4 +v 1027 ADD;ARTIFACT;(old: -1, diff: 15, new: 7);(old: -1, diff: 15, new: 8);;Line 5 +v 1091 ADD;ARTIFACT;(old: -1, diff: 16, new: 8);(old: -1, diff: 16, new: 9);;Line 6 +e 136 80 b;0,-1 +e 640 80 a;-1,0 +e 203 136 b;0,-1 +e 267 136 b;1,-1 +e 331 136 b;2,-1 +e 392 136 b;3,-1 +e 459 392 b;0,-1 +e 523 392 b;1,-1 +e 587 392 b;2,-1 +e 704 640 a;-1,0 +e 771 704 a;-1,0 +e 835 704 a;-1,1 +e 899 704 a;-1,2 +e 963 704 a;-1,3 +e 1027 704 a;-1,4 +e 1091 704 a;-1,5 diff --git a/src/test/resources/tree-diffing/createMatching/10_change-distiller_expected.lg b/src/test/resources/tree-diffing/createMatching/10_change-distiller_expected.lg new file mode 100644 index 000000000..374c4bbd8 --- /dev/null +++ b/src/test/resources/tree-diffing/createMatching/10_change-distiller_expected.lg @@ -0,0 +1,8 @@ +v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 1, new: 4);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 3);(old: 3, diff: 2, new: 4);;456 +v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 2);(old: 4, diff: 3, new: 3);;123 +e 144 80 ba;0,0 +e 275 144 a;1,0 +e 211 144 ba;0,1 +e 275 144 b;1,0 diff --git a/src/test/resources/tree-diffing/10_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/createMatching/10_gumtree-hybrid_expected.lg similarity index 83% rename from src/test/resources/tree-diffing/10_gumtree-hybrid_expected.lg rename to src/test/resources/tree-diffing/createMatching/10_gumtree-hybrid_expected.lg index bb645cdad..d3b568636 100644 --- a/src/test/resources/tree-diffing/10_gumtree-hybrid_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/10_gumtree-hybrid_expected.lg @@ -1,9 +1,9 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 1, new: 4);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;456 +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 3);(old: 3, diff: 2, new: 4);;456 v 267 REM;ARTIFACT;(old: 3, diff: 3, new: -1);(old: 4, diff: 3, new: -1);;123 v 323 ADD;ARTIFACT;(old: -1, diff: 4, new: 2);(old: -1, diff: 4, new: 3);;123 e 144 80 ba;0,0 +e 323 144 a;-1,0 e 211 144 ba;0,1 e 267 144 b;1,-1 -e 323 144 a;-1,0 diff --git a/src/test/resources/tree-diffing/10_gumtree_expected.lg b/src/test/resources/tree-diffing/createMatching/10_gumtree_expected.lg similarity index 83% rename from src/test/resources/tree-diffing/10_gumtree_expected.lg rename to src/test/resources/tree-diffing/createMatching/10_gumtree_expected.lg index bb645cdad..d3b568636 100644 --- a/src/test/resources/tree-diffing/10_gumtree_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/10_gumtree_expected.lg @@ -1,9 +1,9 @@ v 80 NON;IF;(old: -1, diff: 0, new: -1);(old: -1, diff: 0, new: -1);True v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 1, new: 4);defined(A);#ifdef A -v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 2, new: 3);;456 +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 3);(old: 3, diff: 2, new: 4);;456 v 267 REM;ARTIFACT;(old: 3, diff: 3, new: -1);(old: 4, diff: 3, new: -1);;123 v 323 ADD;ARTIFACT;(old: -1, diff: 4, new: 2);(old: -1, diff: 4, new: 3);;123 e 144 80 ba;0,0 +e 323 144 a;-1,0 e 211 144 ba;0,1 e 267 144 b;1,-1 -e 323 144 a;-1,0 diff --git a/src/test/resources/tree-diffing/11_gumtree_expected.lg b/src/test/resources/tree-diffing/createMatching/11_gumtree_expected.lg similarity index 100% rename from src/test/resources/tree-diffing/11_gumtree_expected.lg rename to src/test/resources/tree-diffing/createMatching/11_gumtree_expected.lg index 2a31da89b..dd58e9c3b 100644 --- a/src/test/resources/tree-diffing/11_gumtree_expected.lg +++ b/src/test/resources/tree-diffing/createMatching/11_gumtree_expected.lg @@ -5,5 +5,5 @@ v 275 NON;ARTIFACT;(old: 3, diff: 3, new: 3);(old: 4, diff: 3, new: 4);;3 v 323 ADD;ARTIFACT;(old: -1, diff: 4, new: 2);(old: -1, diff: 4, new: 3);;B e 147 80 ba;0,0 e 203 80 b;1,-1 -e 275 80 ba;2,2 e 323 80 a;-1,1 +e 275 80 ba;2,2 diff --git a/src/test/resources/tree-diffing/improveMatching/01_change-distiller_expected.lg b/src/test/resources/tree-diffing/improveMatching/01_change-distiller_expected.lg new file mode 100644 index 000000000..f398d4d2f --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/01_change-distiller_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 3, diff: 3, new: 3);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line +e 144 16 ba;0,0 +e 211 144 ba;0,0 diff --git a/src/test/resources/tree-diffing/improveMatching/01_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/01_gumtree-hybrid-id_expected.lg new file mode 100644 index 000000000..f398d4d2f --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/01_gumtree-hybrid-id_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 3, diff: 3, new: 3);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line +e 144 16 ba;0,0 +e 211 144 ba;0,0 diff --git a/src/test/resources/tree-diffing/improveMatching/01_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/improveMatching/01_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..f398d4d2f --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/01_gumtree-hybrid_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 3, diff: 3, new: 3);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line +e 144 16 ba;0,0 +e 211 144 ba;0,0 diff --git a/src/test/resources/tree-diffing/improveMatching/01_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/01_gumtree-partition-id_expected.lg new file mode 100644 index 000000000..f398d4d2f --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/01_gumtree-partition-id_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 3, diff: 3, new: 3);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line +e 144 16 ba;0,0 +e 211 144 ba;0,0 diff --git a/src/test/resources/tree-diffing/improveMatching/01_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/01_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..f398d4d2f --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/01_gumtree-simple-id_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 3, diff: 3, new: 3);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line +e 144 16 ba;0,0 +e 211 144 ba;0,0 diff --git a/src/test/resources/tree-diffing/improveMatching/01_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/improveMatching/01_gumtree-simple_expected.lg new file mode 100644 index 000000000..f398d4d2f --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/01_gumtree-simple_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 3, diff: 3, new: 3);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line +e 144 16 ba;0,0 +e 211 144 ba;0,0 diff --git a/src/test/resources/tree-diffing/improveMatching/01_gumtree_expected.lg b/src/test/resources/tree-diffing/improveMatching/01_gumtree_expected.lg new file mode 100644 index 000000000..f398d4d2f --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/01_gumtree_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 3, diff: 3, new: 3);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line +e 144 16 ba;0,0 +e 211 144 ba;0,0 diff --git a/src/test/resources/tree-diffing/improveMatching/01_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/improveMatching/01_longestCommonSequence_expected.lg new file mode 100644 index 000000000..f398d4d2f --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/01_longestCommonSequence_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 3, diff: 3, new: 3);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line +e 144 16 ba;0,0 +e 211 144 ba;0,0 diff --git a/src/test/resources/tree-diffing/improveMatching/01_xy_expected.lg b/src/test/resources/tree-diffing/improveMatching/01_xy_expected.lg new file mode 100644 index 000000000..f398d4d2f --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/01_xy_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 3, diff: 3, new: 3);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line +e 144 16 ba;0,0 +e 211 144 ba;0,0 diff --git a/src/test/resources/tree-diffing/improveMatching/02_change-distiller_expected.lg b/src/test/resources/tree-diffing/improveMatching/02_change-distiller_expected.lg new file mode 100644 index 000000000..ee75963ed --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/02_change-distiller_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;Line +e 128 16 a;-1,0 +e 195 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/02_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/02_gumtree-hybrid-id_expected.lg new file mode 100644 index 000000000..ee75963ed --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/02_gumtree-hybrid-id_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;Line +e 128 16 a;-1,0 +e 195 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/02_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/improveMatching/02_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..ee75963ed --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/02_gumtree-hybrid_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;Line +e 128 16 a;-1,0 +e 195 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/02_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/02_gumtree-partition-id_expected.lg new file mode 100644 index 000000000..ee75963ed --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/02_gumtree-partition-id_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;Line +e 128 16 a;-1,0 +e 195 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/02_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/02_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..ee75963ed --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/02_gumtree-simple-id_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;Line +e 128 16 a;-1,0 +e 195 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/02_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/improveMatching/02_gumtree-simple_expected.lg new file mode 100644 index 000000000..ee75963ed --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/02_gumtree-simple_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;Line +e 128 16 a;-1,0 +e 195 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/02_gumtree_expected.lg b/src/test/resources/tree-diffing/improveMatching/02_gumtree_expected.lg new file mode 100644 index 000000000..ee75963ed --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/02_gumtree_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;Line +e 128 16 a;-1,0 +e 195 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/02_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/improveMatching/02_longestCommonSequence_expected.lg new file mode 100644 index 000000000..ee75963ed --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/02_longestCommonSequence_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;Line +e 128 16 a;-1,0 +e 195 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/02_xy_expected.lg b/src/test/resources/tree-diffing/improveMatching/02_xy_expected.lg new file mode 100644 index 000000000..ee75963ed --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/02_xy_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;Line +e 128 16 a;-1,0 +e 195 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/03_change-distiller_expected.lg b/src/test/resources/tree-diffing/improveMatching/03_change-distiller_expected.lg new file mode 100644 index 000000000..eca44f07a --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/03_change-distiller_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;Line +e 136 16 b;0,-1 +e 203 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/03_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/03_gumtree-hybrid-id_expected.lg new file mode 100644 index 000000000..eca44f07a --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/03_gumtree-hybrid-id_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;Line +e 136 16 b;0,-1 +e 203 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/03_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/improveMatching/03_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..eca44f07a --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/03_gumtree-hybrid_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;Line +e 136 16 b;0,-1 +e 203 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/03_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/03_gumtree-partition-id_expected.lg new file mode 100644 index 000000000..eca44f07a --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/03_gumtree-partition-id_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;Line +e 136 16 b;0,-1 +e 203 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/03_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/03_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..eca44f07a --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/03_gumtree-simple-id_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;Line +e 136 16 b;0,-1 +e 203 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/03_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/improveMatching/03_gumtree-simple_expected.lg new file mode 100644 index 000000000..eca44f07a --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/03_gumtree-simple_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;Line +e 136 16 b;0,-1 +e 203 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/03_gumtree_expected.lg b/src/test/resources/tree-diffing/improveMatching/03_gumtree_expected.lg new file mode 100644 index 000000000..eca44f07a --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/03_gumtree_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;Line +e 136 16 b;0,-1 +e 203 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/03_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/improveMatching/03_longestCommonSequence_expected.lg new file mode 100644 index 000000000..eca44f07a --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/03_longestCommonSequence_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;Line +e 136 16 b;0,-1 +e 203 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/03_xy_expected.lg b/src/test/resources/tree-diffing/improveMatching/03_xy_expected.lg new file mode 100644 index 000000000..eca44f07a --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/03_xy_expected.lg @@ -0,0 +1,5 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;Line +e 136 16 b;0,-1 +e 203 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/04_change-distiller_expected.lg b/src/test/resources/tree-diffing/improveMatching/04_change-distiller_expected.lg new file mode 100644 index 000000000..042594bf8 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/04_change-distiller_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 211 NON;ARTIFACT;(old: 1, diff: 2, new: 2);(old: 2, diff: 3, new: 3);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +e 211 16 b;0,-1 +e 128 16 a;-1,0 +e 211 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/04_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/04_gumtree-hybrid-id_expected.lg new file mode 100644 index 000000000..042594bf8 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/04_gumtree-hybrid-id_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 211 NON;ARTIFACT;(old: 1, diff: 2, new: 2);(old: 2, diff: 3, new: 3);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +e 211 16 b;0,-1 +e 128 16 a;-1,0 +e 211 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/04_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/improveMatching/04_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..042594bf8 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/04_gumtree-hybrid_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 211 NON;ARTIFACT;(old: 1, diff: 2, new: 2);(old: 2, diff: 3, new: 3);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +e 211 16 b;0,-1 +e 128 16 a;-1,0 +e 211 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/04_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/04_gumtree-partition-id_expected.lg new file mode 100644 index 000000000..042594bf8 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/04_gumtree-partition-id_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 211 NON;ARTIFACT;(old: 1, diff: 2, new: 2);(old: 2, diff: 3, new: 3);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +e 211 16 b;0,-1 +e 128 16 a;-1,0 +e 211 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/04_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/04_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..042594bf8 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/04_gumtree-simple-id_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 211 NON;ARTIFACT;(old: 1, diff: 2, new: 2);(old: 2, diff: 3, new: 3);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +e 211 16 b;0,-1 +e 128 16 a;-1,0 +e 211 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/04_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/improveMatching/04_gumtree-simple_expected.lg new file mode 100644 index 000000000..042594bf8 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/04_gumtree-simple_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 211 NON;ARTIFACT;(old: 1, diff: 2, new: 2);(old: 2, diff: 3, new: 3);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +e 211 16 b;0,-1 +e 128 16 a;-1,0 +e 211 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/04_gumtree_expected.lg b/src/test/resources/tree-diffing/improveMatching/04_gumtree_expected.lg new file mode 100644 index 000000000..042594bf8 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/04_gumtree_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 211 NON;ARTIFACT;(old: 1, diff: 2, new: 2);(old: 2, diff: 3, new: 3);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +e 211 16 b;0,-1 +e 128 16 a;-1,0 +e 211 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/04_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/improveMatching/04_longestCommonSequence_expected.lg new file mode 100644 index 000000000..042594bf8 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/04_longestCommonSequence_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 211 NON;ARTIFACT;(old: 1, diff: 2, new: 2);(old: 2, diff: 3, new: 3);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +e 211 16 b;0,-1 +e 128 16 a;-1,0 +e 211 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/04_xy_expected.lg b/src/test/resources/tree-diffing/improveMatching/04_xy_expected.lg new file mode 100644 index 000000000..042594bf8 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/04_xy_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 211 NON;ARTIFACT;(old: 1, diff: 2, new: 2);(old: 2, diff: 3, new: 3);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 3, new: 3);defined(A);#ifdef A +e 211 16 b;0,-1 +e 128 16 a;-1,0 +e 211 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/05_change-distiller_expected.lg b/src/test/resources/tree-diffing/improveMatching/05_change-distiller_expected.lg new file mode 100644 index 000000000..ddbfad5f2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/05_change-distiller_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 3, new: 2);;Line +e 136 16 b;0,-1 +e 211 16 a;-1,0 +e 211 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/05_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/05_gumtree-hybrid-id_expected.lg new file mode 100644 index 000000000..ddbfad5f2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/05_gumtree-hybrid-id_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 3, new: 2);;Line +e 136 16 b;0,-1 +e 211 16 a;-1,0 +e 211 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/05_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/improveMatching/05_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..ddbfad5f2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/05_gumtree-hybrid_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 3, new: 2);;Line +e 136 16 b;0,-1 +e 211 16 a;-1,0 +e 211 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/05_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/05_gumtree-partition-id_expected.lg new file mode 100644 index 000000000..ddbfad5f2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/05_gumtree-partition-id_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 3, new: 2);;Line +e 136 16 b;0,-1 +e 211 16 a;-1,0 +e 211 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/05_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/05_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..ddbfad5f2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/05_gumtree-simple-id_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 3, new: 2);;Line +e 136 16 b;0,-1 +e 211 16 a;-1,0 +e 211 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/05_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/improveMatching/05_gumtree-simple_expected.lg new file mode 100644 index 000000000..ddbfad5f2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/05_gumtree-simple_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 3, new: 2);;Line +e 136 16 b;0,-1 +e 211 16 a;-1,0 +e 211 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/05_gumtree_expected.lg b/src/test/resources/tree-diffing/improveMatching/05_gumtree_expected.lg new file mode 100644 index 000000000..ddbfad5f2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/05_gumtree_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 3, new: 2);;Line +e 136 16 b;0,-1 +e 211 16 a;-1,0 +e 211 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/05_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/improveMatching/05_longestCommonSequence_expected.lg new file mode 100644 index 000000000..ddbfad5f2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/05_longestCommonSequence_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 3, new: 2);;Line +e 136 16 b;0,-1 +e 211 16 a;-1,0 +e 211 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/05_xy_expected.lg b/src/test/resources/tree-diffing/improveMatching/05_xy_expected.lg new file mode 100644 index 000000000..ddbfad5f2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/05_xy_expected.lg @@ -0,0 +1,6 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 3, diff: 3, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 1);(old: 3, diff: 3, new: 2);;Line +e 136 16 b;0,-1 +e 211 16 a;-1,0 +e 211 136 b;0,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/06_change-distiller_expected.lg b/src/test/resources/tree-diffing/improveMatching/06_change-distiller_expected.lg new file mode 100644 index 000000000..ad74b36d2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/06_change-distiller_expected.lg @@ -0,0 +1,13 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 4, diff: 5, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line A +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line B +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 5, new: 3);defined(A);#ifdef A +v 258 ADD;ELIF;(old: -1, diff: 3, new: 3);(old: -1, diff: 6, new: 5);B;#elif B +e 136 16 b;0,-1 +e 128 16 a;-1,0 +e 211 136 b;0,-1 +e 339 136 b;1,-1 +e 211 128 a;-1,0 +e 258 128 a;-1,1 +e 339 258 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/06_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/06_gumtree-hybrid-id_expected.lg new file mode 100644 index 000000000..ad74b36d2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/06_gumtree-hybrid-id_expected.lg @@ -0,0 +1,13 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 4, diff: 5, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line A +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line B +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 5, new: 3);defined(A);#ifdef A +v 258 ADD;ELIF;(old: -1, diff: 3, new: 3);(old: -1, diff: 6, new: 5);B;#elif B +e 136 16 b;0,-1 +e 128 16 a;-1,0 +e 211 136 b;0,-1 +e 339 136 b;1,-1 +e 211 128 a;-1,0 +e 258 128 a;-1,1 +e 339 258 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/06_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/improveMatching/06_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..ad74b36d2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/06_gumtree-hybrid_expected.lg @@ -0,0 +1,13 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 4, diff: 5, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line A +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line B +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 5, new: 3);defined(A);#ifdef A +v 258 ADD;ELIF;(old: -1, diff: 3, new: 3);(old: -1, diff: 6, new: 5);B;#elif B +e 136 16 b;0,-1 +e 128 16 a;-1,0 +e 211 136 b;0,-1 +e 339 136 b;1,-1 +e 211 128 a;-1,0 +e 258 128 a;-1,1 +e 339 258 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/06_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/06_gumtree-partition-id_expected.lg new file mode 100644 index 000000000..ad74b36d2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/06_gumtree-partition-id_expected.lg @@ -0,0 +1,13 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 4, diff: 5, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line A +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line B +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 5, new: 3);defined(A);#ifdef A +v 258 ADD;ELIF;(old: -1, diff: 3, new: 3);(old: -1, diff: 6, new: 5);B;#elif B +e 136 16 b;0,-1 +e 128 16 a;-1,0 +e 211 136 b;0,-1 +e 339 136 b;1,-1 +e 211 128 a;-1,0 +e 258 128 a;-1,1 +e 339 258 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/06_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/06_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..ad74b36d2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/06_gumtree-simple-id_expected.lg @@ -0,0 +1,13 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 4, diff: 5, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line A +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line B +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 5, new: 3);defined(A);#ifdef A +v 258 ADD;ELIF;(old: -1, diff: 3, new: 3);(old: -1, diff: 6, new: 5);B;#elif B +e 136 16 b;0,-1 +e 128 16 a;-1,0 +e 211 136 b;0,-1 +e 339 136 b;1,-1 +e 211 128 a;-1,0 +e 258 128 a;-1,1 +e 339 258 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/06_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/improveMatching/06_gumtree-simple_expected.lg new file mode 100644 index 000000000..ad74b36d2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/06_gumtree-simple_expected.lg @@ -0,0 +1,13 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 4, diff: 5, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line A +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line B +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 5, new: 3);defined(A);#ifdef A +v 258 ADD;ELIF;(old: -1, diff: 3, new: 3);(old: -1, diff: 6, new: 5);B;#elif B +e 136 16 b;0,-1 +e 128 16 a;-1,0 +e 211 136 b;0,-1 +e 339 136 b;1,-1 +e 211 128 a;-1,0 +e 258 128 a;-1,1 +e 339 258 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/06_gumtree_expected.lg b/src/test/resources/tree-diffing/improveMatching/06_gumtree_expected.lg new file mode 100644 index 000000000..ad74b36d2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/06_gumtree_expected.lg @@ -0,0 +1,13 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 4, diff: 5, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line A +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line B +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 5, new: 3);defined(A);#ifdef A +v 258 ADD;ELIF;(old: -1, diff: 3, new: 3);(old: -1, diff: 6, new: 5);B;#elif B +e 136 16 b;0,-1 +e 128 16 a;-1,0 +e 211 136 b;0,-1 +e 339 136 b;1,-1 +e 211 128 a;-1,0 +e 258 128 a;-1,1 +e 339 258 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/06_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/improveMatching/06_longestCommonSequence_expected.lg new file mode 100644 index 000000000..ad74b36d2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/06_longestCommonSequence_expected.lg @@ -0,0 +1,13 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 4, diff: 5, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line A +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line B +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 5, new: 3);defined(A);#ifdef A +v 258 ADD;ELIF;(old: -1, diff: 3, new: 3);(old: -1, diff: 6, new: 5);B;#elif B +e 136 16 b;0,-1 +e 128 16 a;-1,0 +e 211 136 b;0,-1 +e 339 136 b;1,-1 +e 211 128 a;-1,0 +e 258 128 a;-1,1 +e 339 258 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/06_xy_expected.lg b/src/test/resources/tree-diffing/improveMatching/06_xy_expected.lg new file mode 100644 index 000000000..ad74b36d2 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/06_xy_expected.lg @@ -0,0 +1,13 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 136 REM;IF;(old: 1, diff: 1, new: -1);(old: 4, diff: 5, new: -1);defined(A);#ifdef A +v 211 NON;ARTIFACT;(old: 2, diff: 2, new: 2);(old: 3, diff: 3, new: 3);;Line A +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line B +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 5, new: 3);defined(A);#ifdef A +v 258 ADD;ELIF;(old: -1, diff: 3, new: 3);(old: -1, diff: 6, new: 5);B;#elif B +e 136 16 b;0,-1 +e 128 16 a;-1,0 +e 211 136 b;0,-1 +e 339 136 b;1,-1 +e 211 128 a;-1,0 +e 258 128 a;-1,1 +e 339 258 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/07_change-distiller_expected.lg b/src/test/resources/tree-diffing/improveMatching/07_change-distiller_expected.lg new file mode 100644 index 000000000..74202aadf --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/07_change-distiller_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(CONFIG_A);#ifdef CONFIG_A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(CONFIG_B);#ifdef CONFIG_B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(CONFIG_B);#ifdef CONFIG_B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/07_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/07_gumtree-hybrid-id_expected.lg new file mode 100644 index 000000000..74202aadf --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/07_gumtree-hybrid-id_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(CONFIG_A);#ifdef CONFIG_A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(CONFIG_B);#ifdef CONFIG_B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(CONFIG_B);#ifdef CONFIG_B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/07_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/improveMatching/07_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..74202aadf --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/07_gumtree-hybrid_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(CONFIG_A);#ifdef CONFIG_A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(CONFIG_B);#ifdef CONFIG_B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(CONFIG_B);#ifdef CONFIG_B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/07_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/07_gumtree-partition-id_expected.lg new file mode 100644 index 000000000..74202aadf --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/07_gumtree-partition-id_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(CONFIG_A);#ifdef CONFIG_A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(CONFIG_B);#ifdef CONFIG_B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(CONFIG_B);#ifdef CONFIG_B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/07_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/07_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..74202aadf --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/07_gumtree-simple-id_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(CONFIG_A);#ifdef CONFIG_A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(CONFIG_B);#ifdef CONFIG_B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(CONFIG_B);#ifdef CONFIG_B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/07_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/improveMatching/07_gumtree-simple_expected.lg new file mode 100644 index 000000000..74202aadf --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/07_gumtree-simple_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(CONFIG_A);#ifdef CONFIG_A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(CONFIG_B);#ifdef CONFIG_B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(CONFIG_B);#ifdef CONFIG_B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/07_gumtree_expected.lg b/src/test/resources/tree-diffing/improveMatching/07_gumtree_expected.lg new file mode 100644 index 000000000..74202aadf --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/07_gumtree_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(CONFIG_A);#ifdef CONFIG_A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(CONFIG_B);#ifdef CONFIG_B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(CONFIG_B);#ifdef CONFIG_B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/07_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/improveMatching/07_longestCommonSequence_expected.lg new file mode 100644 index 000000000..c9b1545b7 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/07_longestCommonSequence_expected.lg @@ -0,0 +1,11 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 208 NON;IF;(old: 1, diff: 2, new: 2);(old: 5, diff: 6, new: 4);defined(CONFIG_A);#ifdef CONFIG_A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(CONFIG_B);#ifdef CONFIG_B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(CONFIG_B);#ifdef CONFIG_B +e 208 16 b;0,-1 +e 128 16 a;-1,0 +e 264 208 b;0,-1 +e 339 208 a;-1,0 +e 339 264 b;0,-1 +e 208 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/07_xy_expected.lg b/src/test/resources/tree-diffing/improveMatching/07_xy_expected.lg new file mode 100644 index 000000000..74202aadf --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/07_xy_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(CONFIG_A);#ifdef CONFIG_A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(CONFIG_B);#ifdef CONFIG_B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(CONFIG_B);#ifdef CONFIG_B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(CONFIG_A);#ifdef CONFIG_A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/08_change-distiller_expected.lg b/src/test/resources/tree-diffing/improveMatching/08_change-distiller_expected.lg new file mode 100644 index 000000000..1a086a222 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/08_change-distiller_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(A);#ifdef A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(B);#ifdef B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/08_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/08_gumtree-hybrid-id_expected.lg new file mode 100644 index 000000000..1a086a222 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/08_gumtree-hybrid-id_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(A);#ifdef A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(B);#ifdef B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/08_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/improveMatching/08_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..1a086a222 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/08_gumtree-hybrid_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(A);#ifdef A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(B);#ifdef B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/08_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/08_gumtree-partition-id_expected.lg new file mode 100644 index 000000000..1a086a222 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/08_gumtree-partition-id_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(A);#ifdef A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(B);#ifdef B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/08_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/08_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..1a086a222 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/08_gumtree-simple-id_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(A);#ifdef A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(B);#ifdef B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/08_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/improveMatching/08_gumtree-simple_expected.lg new file mode 100644 index 000000000..1a086a222 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/08_gumtree-simple_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(A);#ifdef A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(B);#ifdef B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/08_gumtree_expected.lg b/src/test/resources/tree-diffing/improveMatching/08_gumtree_expected.lg new file mode 100644 index 000000000..1a086a222 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/08_gumtree_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(A);#ifdef A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(B);#ifdef B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/08_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/improveMatching/08_longestCommonSequence_expected.lg new file mode 100644 index 000000000..583cfd7c3 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/08_longestCommonSequence_expected.lg @@ -0,0 +1,11 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 208 NON;IF;(old: 1, diff: 2, new: 2);(old: 5, diff: 6, new: 4);defined(A);#ifdef A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(B);#ifdef B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(B);#ifdef B +e 208 16 b;0,-1 +e 128 16 a;-1,0 +e 264 208 b;0,-1 +e 339 208 a;-1,0 +e 339 264 b;0,-1 +e 208 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/08_xy_expected.lg b/src/test/resources/tree-diffing/improveMatching/08_xy_expected.lg new file mode 100644 index 000000000..1a086a222 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/08_xy_expected.lg @@ -0,0 +1,12 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 5, diff: 6, new: -1);defined(A);#ifdef A +v 264 REM;IF;(old: 2, diff: 3, new: -1);(old: 4, diff: 5, new: -1);defined(B);#ifdef B +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;Line +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 6, new: 5);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 5, new: 4);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 264 200 b;0,-1 +e 339 264 b;0,-1 +e 192 128 a;-1,0 +e 339 192 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/09_change-distiller_expected.lg b/src/test/resources/tree-diffing/improveMatching/09_change-distiller_expected.lg new file mode 100644 index 000000000..254b343c0 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/09_change-distiller_expected.lg @@ -0,0 +1,23 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 208 NON;IF;(old: 1, diff: 2, new: 2);(old: 10, diff: 11, new: 9);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;Line 1 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line 2 +v 403 NON;ARTIFACT;(old: 4, diff: 5, new: 5);(old: 5, diff: 6, new: 6);;Line 3 +v 456 REM;IF;(old: 5, diff: 6, new: -1);(old: 9, diff: 10, new: -1);defined(B);#ifdef B +v 531 NON;ARTIFACT;(old: 6, diff: 7, new: 6);(old: 7, diff: 8, new: 7);;Line 4 +v 595 NON;ARTIFACT;(old: 7, diff: 8, new: 7);(old: 8, diff: 9, new: 8);;Line 5 +v 659 NON;ARTIFACT;(old: 8, diff: 9, new: 8);(old: 9, diff: 10, new: 9);;Line 6 +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 11, new: 10);defined(B);#ifdef B +e 208 16 b;0,-1 +e 128 16 a;-1,0 +e 275 208 ba;0,0 +e 339 208 ba;1,1 +e 403 208 ba;2,2 +e 456 208 b;3,-1 +e 531 208 a;-1,3 +e 595 208 a;-1,4 +e 659 208 a;-1,5 +e 531 456 b;0,-1 +e 595 456 b;1,-1 +e 659 456 b;2,-1 +e 208 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/09_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/09_gumtree-hybrid-id_expected.lg new file mode 100644 index 000000000..44b437996 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/09_gumtree-hybrid-id_expected.lg @@ -0,0 +1,27 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 10, diff: 11, new: -1);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;Line 1 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line 2 +v 403 NON;ARTIFACT;(old: 4, diff: 5, new: 5);(old: 5, diff: 6, new: 6);;Line 3 +v 456 REM;IF;(old: 5, diff: 6, new: -1);(old: 9, diff: 10, new: -1);defined(B);#ifdef B +v 531 NON;ARTIFACT;(old: 6, diff: 7, new: 6);(old: 7, diff: 8, new: 7);;Line 4 +v 595 NON;ARTIFACT;(old: 7, diff: 8, new: 7);(old: 8, diff: 9, new: 8);;Line 5 +v 659 NON;ARTIFACT;(old: 8, diff: 9, new: 8);(old: 9, diff: 10, new: 9);;Line 6 +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 11, new: 10);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 10, new: 9);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 275 200 b;0,-1 +e 339 200 b;1,-1 +e 403 200 b;2,-1 +e 456 200 b;3,-1 +e 531 456 b;0,-1 +e 595 456 b;1,-1 +e 659 456 b;2,-1 +e 192 128 a;-1,0 +e 275 192 a;-1,0 +e 339 192 a;-1,1 +e 403 192 a;-1,2 +e 531 192 a;-1,3 +e 595 192 a;-1,4 +e 659 192 a;-1,5 diff --git a/src/test/resources/tree-diffing/improveMatching/09_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/improveMatching/09_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..44b437996 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/09_gumtree-hybrid_expected.lg @@ -0,0 +1,27 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 10, diff: 11, new: -1);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;Line 1 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line 2 +v 403 NON;ARTIFACT;(old: 4, diff: 5, new: 5);(old: 5, diff: 6, new: 6);;Line 3 +v 456 REM;IF;(old: 5, diff: 6, new: -1);(old: 9, diff: 10, new: -1);defined(B);#ifdef B +v 531 NON;ARTIFACT;(old: 6, diff: 7, new: 6);(old: 7, diff: 8, new: 7);;Line 4 +v 595 NON;ARTIFACT;(old: 7, diff: 8, new: 7);(old: 8, diff: 9, new: 8);;Line 5 +v 659 NON;ARTIFACT;(old: 8, diff: 9, new: 8);(old: 9, diff: 10, new: 9);;Line 6 +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 11, new: 10);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 10, new: 9);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 275 200 b;0,-1 +e 339 200 b;1,-1 +e 403 200 b;2,-1 +e 456 200 b;3,-1 +e 531 456 b;0,-1 +e 595 456 b;1,-1 +e 659 456 b;2,-1 +e 192 128 a;-1,0 +e 275 192 a;-1,0 +e 339 192 a;-1,1 +e 403 192 a;-1,2 +e 531 192 a;-1,3 +e 595 192 a;-1,4 +e 659 192 a;-1,5 diff --git a/src/test/resources/tree-diffing/improveMatching/09_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/09_gumtree-partition-id_expected.lg new file mode 100644 index 000000000..44b437996 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/09_gumtree-partition-id_expected.lg @@ -0,0 +1,27 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 10, diff: 11, new: -1);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;Line 1 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line 2 +v 403 NON;ARTIFACT;(old: 4, diff: 5, new: 5);(old: 5, diff: 6, new: 6);;Line 3 +v 456 REM;IF;(old: 5, diff: 6, new: -1);(old: 9, diff: 10, new: -1);defined(B);#ifdef B +v 531 NON;ARTIFACT;(old: 6, diff: 7, new: 6);(old: 7, diff: 8, new: 7);;Line 4 +v 595 NON;ARTIFACT;(old: 7, diff: 8, new: 7);(old: 8, diff: 9, new: 8);;Line 5 +v 659 NON;ARTIFACT;(old: 8, diff: 9, new: 8);(old: 9, diff: 10, new: 9);;Line 6 +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 11, new: 10);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 10, new: 9);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 275 200 b;0,-1 +e 339 200 b;1,-1 +e 403 200 b;2,-1 +e 456 200 b;3,-1 +e 531 456 b;0,-1 +e 595 456 b;1,-1 +e 659 456 b;2,-1 +e 192 128 a;-1,0 +e 275 192 a;-1,0 +e 339 192 a;-1,1 +e 403 192 a;-1,2 +e 531 192 a;-1,3 +e 595 192 a;-1,4 +e 659 192 a;-1,5 diff --git a/src/test/resources/tree-diffing/improveMatching/09_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/09_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..44b437996 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/09_gumtree-simple-id_expected.lg @@ -0,0 +1,27 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 10, diff: 11, new: -1);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;Line 1 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line 2 +v 403 NON;ARTIFACT;(old: 4, diff: 5, new: 5);(old: 5, diff: 6, new: 6);;Line 3 +v 456 REM;IF;(old: 5, diff: 6, new: -1);(old: 9, diff: 10, new: -1);defined(B);#ifdef B +v 531 NON;ARTIFACT;(old: 6, diff: 7, new: 6);(old: 7, diff: 8, new: 7);;Line 4 +v 595 NON;ARTIFACT;(old: 7, diff: 8, new: 7);(old: 8, diff: 9, new: 8);;Line 5 +v 659 NON;ARTIFACT;(old: 8, diff: 9, new: 8);(old: 9, diff: 10, new: 9);;Line 6 +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 11, new: 10);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 10, new: 9);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 275 200 b;0,-1 +e 339 200 b;1,-1 +e 403 200 b;2,-1 +e 456 200 b;3,-1 +e 531 456 b;0,-1 +e 595 456 b;1,-1 +e 659 456 b;2,-1 +e 192 128 a;-1,0 +e 275 192 a;-1,0 +e 339 192 a;-1,1 +e 403 192 a;-1,2 +e 531 192 a;-1,3 +e 595 192 a;-1,4 +e 659 192 a;-1,5 diff --git a/src/test/resources/tree-diffing/improveMatching/09_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/improveMatching/09_gumtree-simple_expected.lg new file mode 100644 index 000000000..44b437996 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/09_gumtree-simple_expected.lg @@ -0,0 +1,27 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 10, diff: 11, new: -1);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;Line 1 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line 2 +v 403 NON;ARTIFACT;(old: 4, diff: 5, new: 5);(old: 5, diff: 6, new: 6);;Line 3 +v 456 REM;IF;(old: 5, diff: 6, new: -1);(old: 9, diff: 10, new: -1);defined(B);#ifdef B +v 531 NON;ARTIFACT;(old: 6, diff: 7, new: 6);(old: 7, diff: 8, new: 7);;Line 4 +v 595 NON;ARTIFACT;(old: 7, diff: 8, new: 7);(old: 8, diff: 9, new: 8);;Line 5 +v 659 NON;ARTIFACT;(old: 8, diff: 9, new: 8);(old: 9, diff: 10, new: 9);;Line 6 +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 11, new: 10);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 10, new: 9);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 275 200 b;0,-1 +e 339 200 b;1,-1 +e 403 200 b;2,-1 +e 456 200 b;3,-1 +e 531 456 b;0,-1 +e 595 456 b;1,-1 +e 659 456 b;2,-1 +e 192 128 a;-1,0 +e 275 192 a;-1,0 +e 339 192 a;-1,1 +e 403 192 a;-1,2 +e 531 192 a;-1,3 +e 595 192 a;-1,4 +e 659 192 a;-1,5 diff --git a/src/test/resources/tree-diffing/improveMatching/09_gumtree_expected.lg b/src/test/resources/tree-diffing/improveMatching/09_gumtree_expected.lg new file mode 100644 index 000000000..44b437996 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/09_gumtree_expected.lg @@ -0,0 +1,27 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 10, diff: 11, new: -1);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;Line 1 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line 2 +v 403 NON;ARTIFACT;(old: 4, diff: 5, new: 5);(old: 5, diff: 6, new: 6);;Line 3 +v 456 REM;IF;(old: 5, diff: 6, new: -1);(old: 9, diff: 10, new: -1);defined(B);#ifdef B +v 531 NON;ARTIFACT;(old: 6, diff: 7, new: 6);(old: 7, diff: 8, new: 7);;Line 4 +v 595 NON;ARTIFACT;(old: 7, diff: 8, new: 7);(old: 8, diff: 9, new: 8);;Line 5 +v 659 NON;ARTIFACT;(old: 8, diff: 9, new: 8);(old: 9, diff: 10, new: 9);;Line 6 +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 11, new: 10);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 10, new: 9);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 275 200 b;0,-1 +e 339 200 b;1,-1 +e 403 200 b;2,-1 +e 456 200 b;3,-1 +e 531 456 b;0,-1 +e 595 456 b;1,-1 +e 659 456 b;2,-1 +e 192 128 a;-1,0 +e 275 192 a;-1,0 +e 339 192 a;-1,1 +e 403 192 a;-1,2 +e 531 192 a;-1,3 +e 595 192 a;-1,4 +e 659 192 a;-1,5 diff --git a/src/test/resources/tree-diffing/improveMatching/09_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/improveMatching/09_longestCommonSequence_expected.lg new file mode 100644 index 000000000..254b343c0 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/09_longestCommonSequence_expected.lg @@ -0,0 +1,23 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 208 NON;IF;(old: 1, diff: 2, new: 2);(old: 10, diff: 11, new: 9);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;Line 1 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line 2 +v 403 NON;ARTIFACT;(old: 4, diff: 5, new: 5);(old: 5, diff: 6, new: 6);;Line 3 +v 456 REM;IF;(old: 5, diff: 6, new: -1);(old: 9, diff: 10, new: -1);defined(B);#ifdef B +v 531 NON;ARTIFACT;(old: 6, diff: 7, new: 6);(old: 7, diff: 8, new: 7);;Line 4 +v 595 NON;ARTIFACT;(old: 7, diff: 8, new: 7);(old: 8, diff: 9, new: 8);;Line 5 +v 659 NON;ARTIFACT;(old: 8, diff: 9, new: 8);(old: 9, diff: 10, new: 9);;Line 6 +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 11, new: 10);defined(B);#ifdef B +e 208 16 b;0,-1 +e 128 16 a;-1,0 +e 275 208 ba;0,0 +e 339 208 ba;1,1 +e 403 208 ba;2,2 +e 456 208 b;3,-1 +e 531 208 a;-1,3 +e 595 208 a;-1,4 +e 659 208 a;-1,5 +e 531 456 b;0,-1 +e 595 456 b;1,-1 +e 659 456 b;2,-1 +e 208 128 a;-1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/09_xy_expected.lg b/src/test/resources/tree-diffing/improveMatching/09_xy_expected.lg new file mode 100644 index 000000000..44b437996 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/09_xy_expected.lg @@ -0,0 +1,27 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 200 REM;IF;(old: 1, diff: 2, new: -1);(old: 10, diff: 11, new: -1);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;Line 1 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 4);(old: 4, diff: 5, new: 5);;Line 2 +v 403 NON;ARTIFACT;(old: 4, diff: 5, new: 5);(old: 5, diff: 6, new: 6);;Line 3 +v 456 REM;IF;(old: 5, diff: 6, new: -1);(old: 9, diff: 10, new: -1);defined(B);#ifdef B +v 531 NON;ARTIFACT;(old: 6, diff: 7, new: 6);(old: 7, diff: 8, new: 7);;Line 4 +v 595 NON;ARTIFACT;(old: 7, diff: 8, new: 7);(old: 8, diff: 9, new: 8);;Line 5 +v 659 NON;ARTIFACT;(old: 8, diff: 9, new: 8);(old: 9, diff: 10, new: 9);;Line 6 +v 128 ADD;IF;(old: -1, diff: 1, new: 1);(old: -1, diff: 11, new: 10);defined(B);#ifdef B +v 192 ADD;IF;(old: -1, diff: 2, new: 2);(old: -1, diff: 10, new: 9);defined(A);#ifdef A +e 200 16 b;0,-1 +e 128 16 a;-1,0 +e 275 200 b;0,-1 +e 339 200 b;1,-1 +e 403 200 b;2,-1 +e 456 200 b;3,-1 +e 531 456 b;0,-1 +e 595 456 b;1,-1 +e 659 456 b;2,-1 +e 192 128 a;-1,0 +e 275 192 a;-1,0 +e 339 192 a;-1,1 +e 403 192 a;-1,2 +e 531 192 a;-1,3 +e 595 192 a;-1,4 +e 659 192 a;-1,5 diff --git a/src/test/resources/tree-diffing/improveMatching/10_change-distiller_expected.lg b/src/test/resources/tree-diffing/improveMatching/10_change-distiller_expected.lg new file mode 100644 index 000000000..953e56d04 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/10_change-distiller_expected.lg @@ -0,0 +1,8 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 5, new: 4);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;456 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 2);(old: 4, diff: 5, new: 3);;123 +e 144 16 ba;0,0 +e 339 144 a;1,0 +e 275 144 ba;0,1 +e 339 144 b;1,0 diff --git a/src/test/resources/tree-diffing/improveMatching/10_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/10_gumtree-hybrid-id_expected.lg new file mode 100644 index 000000000..b36bd9636 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/10_gumtree-hybrid-id_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 5, new: 4);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;456 +v 331 REM;ARTIFACT;(old: 3, diff: 4, new: -1);(old: 4, diff: 5, new: -1);;123 +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;123 +e 144 16 ba;0,0 +e 195 144 a;-1,0 +e 275 144 ba;0,1 +e 331 144 b;1,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/10_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/improveMatching/10_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..b36bd9636 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/10_gumtree-hybrid_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 5, new: 4);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;456 +v 331 REM;ARTIFACT;(old: 3, diff: 4, new: -1);(old: 4, diff: 5, new: -1);;123 +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;123 +e 144 16 ba;0,0 +e 195 144 a;-1,0 +e 275 144 ba;0,1 +e 331 144 b;1,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/10_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/10_gumtree-partition-id_expected.lg new file mode 100644 index 000000000..b36bd9636 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/10_gumtree-partition-id_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 5, new: 4);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;456 +v 331 REM;ARTIFACT;(old: 3, diff: 4, new: -1);(old: 4, diff: 5, new: -1);;123 +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;123 +e 144 16 ba;0,0 +e 195 144 a;-1,0 +e 275 144 ba;0,1 +e 331 144 b;1,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/10_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/10_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..b36bd9636 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/10_gumtree-simple-id_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 5, new: 4);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;456 +v 331 REM;ARTIFACT;(old: 3, diff: 4, new: -1);(old: 4, diff: 5, new: -1);;123 +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;123 +e 144 16 ba;0,0 +e 195 144 a;-1,0 +e 275 144 ba;0,1 +e 331 144 b;1,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/10_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/improveMatching/10_gumtree-simple_expected.lg new file mode 100644 index 000000000..b36bd9636 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/10_gumtree-simple_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 5, new: 4);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;456 +v 331 REM;ARTIFACT;(old: 3, diff: 4, new: -1);(old: 4, diff: 5, new: -1);;123 +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;123 +e 144 16 ba;0,0 +e 195 144 a;-1,0 +e 275 144 ba;0,1 +e 331 144 b;1,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/10_gumtree_expected.lg b/src/test/resources/tree-diffing/improveMatching/10_gumtree_expected.lg new file mode 100644 index 000000000..b36bd9636 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/10_gumtree_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 5, new: 4);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;456 +v 331 REM;ARTIFACT;(old: 3, diff: 4, new: -1);(old: 4, diff: 5, new: -1);;123 +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;123 +e 144 16 ba;0,0 +e 195 144 a;-1,0 +e 275 144 ba;0,1 +e 331 144 b;1,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/10_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/improveMatching/10_longestCommonSequence_expected.lg new file mode 100644 index 000000000..b36bd9636 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/10_longestCommonSequence_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 5, new: 4);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;456 +v 331 REM;ARTIFACT;(old: 3, diff: 4, new: -1);(old: 4, diff: 5, new: -1);;123 +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;123 +e 144 16 ba;0,0 +e 195 144 a;-1,0 +e 275 144 ba;0,1 +e 331 144 b;1,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/10_xy_expected.lg b/src/test/resources/tree-diffing/improveMatching/10_xy_expected.lg new file mode 100644 index 000000000..b36bd9636 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/10_xy_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 144 NON;IF;(old: 1, diff: 1, new: 1);(old: 4, diff: 5, new: 4);defined(A);#ifdef A +v 275 NON;ARTIFACT;(old: 2, diff: 3, new: 3);(old: 3, diff: 4, new: 4);;456 +v 331 REM;ARTIFACT;(old: 3, diff: 4, new: -1);(old: 4, diff: 5, new: -1);;123 +v 195 ADD;ARTIFACT;(old: -1, diff: 2, new: 2);(old: -1, diff: 3, new: 3);;123 +e 144 16 ba;0,0 +e 195 144 a;-1,0 +e 275 144 ba;0,1 +e 331 144 b;1,-1 diff --git a/src/test/resources/tree-diffing/improveMatching/11_change-distiller_expected.lg b/src/test/resources/tree-diffing/improveMatching/11_change-distiller_expected.lg new file mode 100644 index 000000000..0905a5b78 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/11_change-distiller_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 2, new: 2);;1 +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;2 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;3 +v 259 ADD;ARTIFACT;(old: -1, diff: 3, new: 2);(old: -1, diff: 4, new: 3);;B +e 147 16 ba;0,0 +e 203 16 b;1,-1 +e 259 16 a;-1,1 +e 339 16 ba;2,2 diff --git a/src/test/resources/tree-diffing/improveMatching/11_gumtree-hybrid-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/11_gumtree-hybrid-id_expected.lg new file mode 100644 index 000000000..0905a5b78 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/11_gumtree-hybrid-id_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 2, new: 2);;1 +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;2 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;3 +v 259 ADD;ARTIFACT;(old: -1, diff: 3, new: 2);(old: -1, diff: 4, new: 3);;B +e 147 16 ba;0,0 +e 203 16 b;1,-1 +e 259 16 a;-1,1 +e 339 16 ba;2,2 diff --git a/src/test/resources/tree-diffing/improveMatching/11_gumtree-hybrid_expected.lg b/src/test/resources/tree-diffing/improveMatching/11_gumtree-hybrid_expected.lg new file mode 100644 index 000000000..0905a5b78 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/11_gumtree-hybrid_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 2, new: 2);;1 +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;2 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;3 +v 259 ADD;ARTIFACT;(old: -1, diff: 3, new: 2);(old: -1, diff: 4, new: 3);;B +e 147 16 ba;0,0 +e 203 16 b;1,-1 +e 259 16 a;-1,1 +e 339 16 ba;2,2 diff --git a/src/test/resources/tree-diffing/improveMatching/11_gumtree-partition-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/11_gumtree-partition-id_expected.lg new file mode 100644 index 000000000..0905a5b78 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/11_gumtree-partition-id_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 2, new: 2);;1 +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;2 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;3 +v 259 ADD;ARTIFACT;(old: -1, diff: 3, new: 2);(old: -1, diff: 4, new: 3);;B +e 147 16 ba;0,0 +e 203 16 b;1,-1 +e 259 16 a;-1,1 +e 339 16 ba;2,2 diff --git a/src/test/resources/tree-diffing/improveMatching/11_gumtree-simple-id_expected.lg b/src/test/resources/tree-diffing/improveMatching/11_gumtree-simple-id_expected.lg new file mode 100644 index 000000000..0905a5b78 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/11_gumtree-simple-id_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 2, new: 2);;1 +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;2 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;3 +v 259 ADD;ARTIFACT;(old: -1, diff: 3, new: 2);(old: -1, diff: 4, new: 3);;B +e 147 16 ba;0,0 +e 203 16 b;1,-1 +e 259 16 a;-1,1 +e 339 16 ba;2,2 diff --git a/src/test/resources/tree-diffing/improveMatching/11_gumtree-simple_expected.lg b/src/test/resources/tree-diffing/improveMatching/11_gumtree-simple_expected.lg new file mode 100644 index 000000000..0905a5b78 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/11_gumtree-simple_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 2, new: 2);;1 +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;2 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;3 +v 259 ADD;ARTIFACT;(old: -1, diff: 3, new: 2);(old: -1, diff: 4, new: 3);;B +e 147 16 ba;0,0 +e 203 16 b;1,-1 +e 259 16 a;-1,1 +e 339 16 ba;2,2 diff --git a/src/test/resources/tree-diffing/improveMatching/11_gumtree_expected.lg b/src/test/resources/tree-diffing/improveMatching/11_gumtree_expected.lg new file mode 100644 index 000000000..0905a5b78 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/11_gumtree_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 2, new: 2);;1 +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;2 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;3 +v 259 ADD;ARTIFACT;(old: -1, diff: 3, new: 2);(old: -1, diff: 4, new: 3);;B +e 147 16 ba;0,0 +e 203 16 b;1,-1 +e 259 16 a;-1,1 +e 339 16 ba;2,2 diff --git a/src/test/resources/tree-diffing/improveMatching/11_longestCommonSequence_expected.lg b/src/test/resources/tree-diffing/improveMatching/11_longestCommonSequence_expected.lg new file mode 100644 index 000000000..0905a5b78 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/11_longestCommonSequence_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 2, new: 2);;1 +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;2 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;3 +v 259 ADD;ARTIFACT;(old: -1, diff: 3, new: 2);(old: -1, diff: 4, new: 3);;B +e 147 16 ba;0,0 +e 203 16 b;1,-1 +e 259 16 a;-1,1 +e 339 16 ba;2,2 diff --git a/src/test/resources/tree-diffing/improveMatching/11_xy_expected.lg b/src/test/resources/tree-diffing/improveMatching/11_xy_expected.lg new file mode 100644 index 000000000..0905a5b78 --- /dev/null +++ b/src/test/resources/tree-diffing/improveMatching/11_xy_expected.lg @@ -0,0 +1,9 @@ +v 16 NON;IF;(old: -1, diff: -1, new: -1);(old: -1, diff: -1, new: -1);True +v 147 NON;ARTIFACT;(old: 1, diff: 1, new: 1);(old: 2, diff: 2, new: 2);;1 +v 203 REM;ARTIFACT;(old: 2, diff: 2, new: -1);(old: 3, diff: 3, new: -1);;2 +v 339 NON;ARTIFACT;(old: 3, diff: 4, new: 3);(old: 4, diff: 5, new: 4);;3 +v 259 ADD;ARTIFACT;(old: -1, diff: 3, new: 2);(old: -1, diff: 4, new: 3);;B +e 147 16 ba;0,0 +e 203 16 b;1,-1 +e 259 16 a;-1,1 +e 339 16 ba;2,2