ss: Move selectNextChildren to CoreNode and return sequenceNumber
[deliverable/tracecompass.git] / statesystem / org.eclipse.tracecompass.statesystem.core.tests / stubs / org / eclipse / tracecompass / statesystem / core / tests / stubs / backend / HistoryTreeClassicStub.java
index 49354ea7db5d3c247b20fc18691ac5e4af9ae9c9..2508db537491dd9228a782a0d41288f3bf8fef29 100644 (file)
@@ -18,13 +18,16 @@ import java.io.File;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.nio.channels.ClosedChannelException;
+import java.util.Collection;
 import java.util.List;
 
-import org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.CoreNode;
+import org.eclipse.tracecompass.internal.statesystem.core.Activator;
 import org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.HTConfig;
 import org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.HTNode;
-import org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.HistoryTreeClassic;
 import org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.IHistoryTree;
+import org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.ParentNode;
+import org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.classic.CoreNode;
+import org.eclipse.tracecompass.internal.statesystem.core.backend.historytree.classic.HistoryTreeClassic;
 
 import com.google.common.collect.Iterables;
 
@@ -178,6 +181,7 @@ public class HistoryTreeClassicStub extends HistoryTreeClassic {
                     preOrderPrint(writer, printIntervals, nextNode, curDepth + 1, ts);
                 }
             } catch (ClosedChannelException e) {
+                Activator.getDefault().logError(e.getMessage());
             }
             break;
 
@@ -212,8 +216,8 @@ public class HistoryTreeClassicStub extends HistoryTreeClassic {
      *            The node to check
      */
     private void assertNodeIntegrity(HTNode node) {
-        if (node instanceof CoreNode) {
-            assertChildrenIntegrity((CoreNode) node);
+        if (node instanceof ParentNode) {
+            assertChildrenIntegrity((ParentNode) node);
         }
 
         /* Check that all intervals are within the node's range */
@@ -221,7 +225,7 @@ public class HistoryTreeClassicStub extends HistoryTreeClassic {
 
     }
 
-    private void assertChildrenIntegrity(CoreNode node) {
+    private void assertChildrenIntegrity(ParentNode node) {
         try {
             /*
              * Test that this node's start and end times match the start of the
@@ -254,6 +258,7 @@ public class HistoryTreeClassicStub extends HistoryTreeClassic {
                     assertTrue("Child at index " + i + " of parent " + node.getSequenceNumber() + " has correct start time",
                             childNode.getNodeEnd() <= childNode.getNodeEnd());
                 }
+                testIntersectingChildren(node, childNode);
             }
 
         } catch (ClosedChannelException e) {
@@ -261,4 +266,15 @@ public class HistoryTreeClassicStub extends HistoryTreeClassic {
         }
     }
 
+    private static void testIntersectingChildren(ParentNode parent, HTNode child) {
+        int childSequence = child.getSequenceNumber();
+        boolean shouldBeInCollection;
+        Collection<Integer> nextChildren;
+        for (long t = parent.getNodeStart(); t < parent.getNodeEnd(); t++) {
+            shouldBeInCollection = (t >= child.getNodeStart() && t <= child.getNodeEnd());
+            nextChildren = parent.selectNextChildren(t);
+            assertEquals(shouldBeInCollection, nextChildren.contains(childSequence));
+        }
+    }
+
 }
This page took 0.024661 seconds and 5 git commands to generate.