--- /dev/null
+package org.eclipse.linuxtools.tmf.ui.tests.statistics;
+
+import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfStatistics;
+
+import junit.framework.TestCase;
+
+/**
+ * TmfStatistics Test Cases.
+ */
+public class TmfStatisticsTest extends TestCase {
+
+ // ------------------------------------------------------------------------
+ // Fields
+ // ------------------------------------------------------------------------
+
+ TmfStatistics stats = new TmfStatistics();
+
+ // ------------------------------------------------------------------------
+ // Checks initial state
+ // ------------------------------------------------------------------------
+
+ /**
+ * Test the initial state of the counters
+ */
+ public void testInitialState() {
+ assertEquals(0, stats.getTotal());
+ assertEquals(0, stats.getPartial());
+ }
+
+ // ------------------------------------------------------------------------
+ // Increment Total no parameter
+ // ------------------------------------------------------------------------
+
+ /**
+ * Test incrementing the total counter
+ */
+ public void testIncrementTotal() {
+ for (int i = 1; i < 10; ++i) {
+ stats.incrementTotal();
+ assertEquals(i, stats.getTotal());
+ }
+ // Checks if the partial counter was affected
+ assertEquals(0, stats.getPartial());
+ }
+
+ /**
+ * Test incrementing the total counter by an amount
+ */
+ public void testIncrementTotal1Arg() {
+ int i = 1, expected = 0;
+ while (expected < 100) {
+ expected += i;
+ stats.incrementTotal(i);
+ assertEquals(expected, stats.getTotal());
+ i += i;
+ }
+ // Increment by a negative number do nothing
+ stats.incrementTotal(-10);
+ assertEquals(expected, stats.getTotal());
+
+ // Checks if the partial counter was affected
+ assertEquals(0, stats.getPartial());
+ }
+
+ /**
+ * Test incrementing the partial counter
+ */
+ public void testIncrementPartial() {
+ for (int i = 1; i < 10; ++i) {
+ stats.incrementPartial();
+ assertEquals(i, stats.getPartial());
+ }
+ // Checks if the total counter was affected
+ assertEquals(0, stats.getTotal());
+ }
+
+ /**
+ * Test incrementing the partial counter by a certain amount
+ */
+ public void testIncrementPartial1Arg() {
+ int i = 1, expected = 0;
+ while (expected < 100) {
+ expected += i;
+ stats.incrementPartial(i);
+ assertEquals(expected, stats.getPartial());
+ i += i;
+ }
+ // Increment by a negative number. It should do nothing.
+ stats.incrementPartial(-10);
+ assertEquals(expected, stats.getPartial());
+
+ // Checks if the total counter was affected
+ assertEquals(0, stats.getTotal());
+ }
+
+ /**
+ * Test of the reset for the total counter
+ */
+ public void testResetTotal() {
+ stats.incrementTotal(123);
+ assertEquals(123, stats.getTotal());
+
+ stats.resetTotalCount();
+ assertEquals(0, stats.getTotal());
+
+ // test when already at 0
+ stats.resetTotalCount();
+ assertEquals(0, stats.getTotal());
+
+ // The counters should still be in a usable state
+ stats.incrementPartial();
+ stats.incrementPartial(3);
+ assertEquals(4, stats.getPartial());
+
+ stats.incrementTotal();
+ stats.incrementTotal(2);
+ assertEquals(3, stats.getTotal());
+ }
+
+ /**
+ * Test of the reset for the partial counter
+ */
+ public void testResetPartial() {
+ stats.incrementPartial(456);
+ assertEquals(456, stats.getPartial());
+
+ stats.resetPartialCount();
+ assertEquals(0, stats.getPartial());
+
+ // test when already at 0
+ stats.resetPartialCount();
+ assertEquals(0, stats.getPartial());
+
+ // The counters should still be in a usable state
+ stats.incrementPartial();
+ stats.incrementPartial(2);
+ assertEquals(3, stats.getPartial());
+
+ stats.incrementTotal();
+ stats.incrementTotal(3);
+ assertEquals(4, stats.getTotal());
+ }
+}
private final String fSource = "Source";
private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels));
- private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels));
- private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, TmfEventField.makeRoot(fLabels));
+ private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId2, TmfEventField.makeRoot(fLabels));
private final String fReference = "Some reference";
fEvent1 = new TmfEvent(null, fTimestamp1, fSource, fType1, fContent1, fReference);
fContent2 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some other content");
- fEvent2 = new TmfEvent(null, fTimestamp2, fSource, fType2, fContent2, fReference);
+ fEvent2 = new TmfEvent(null, fTimestamp2, fSource, fType1, fContent2, fReference);
fContent3 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some other different content");
- fEvent3 = new TmfEvent(null, fTimestamp3, fSource, fType3, fContent3, fReference);
+ fEvent3 = new TmfEvent(null, fTimestamp3, fSource, fType2, fContent3, fReference);
fStatsData = new TmfBaseStatisticsTree();
fExtraInfo = new ITmfExtraEventInfo() {
@Override
public String getTraceName() {
- return name;
+ return fTestName;
}
};
fStatsData.registerEvent(fEvent1, fExtraInfo);
fStatsData.registerEvent(fEvent2, fExtraInfo);
fStatsData.registerEvent(fEvent3, fExtraInfo);
+
+ // Registers some events in time range
+ fStatsData.registerEventInTimeRange(fEvent1, fExtraInfo);
+ fStatsData.registerEventInTimeRange(fEvent1, fExtraInfo);
+ fStatsData.registerEventInTimeRange(fEvent1, fExtraInfo);
+ fStatsData.registerEventInTimeRange(fEvent1, fExtraInfo);
+
+ fStatsData.registerEventInTimeRange(fEvent2, fExtraInfo);
+ fStatsData.registerEventInTimeRange(fEvent2, fExtraInfo);
+ fStatsData.registerEventInTimeRange(fEvent2, fExtraInfo);
+
+ fStatsData.registerEventInTimeRange(fEvent3, fExtraInfo);
+ fStatsData.registerEventInTimeRange(fEvent3, fExtraInfo);
}
// ------------------------------------------------------------------------
assertFalse("containsChild", rootNode.containsChild(null));
assertTrue("containsChild", traceNode.containsChild(catNode.getKey()));
- assertFalse("containsChild", traceNode.containsChild(fEvent1.getType().toString()));
+ assertFalse("containsChild", traceNode.containsChild(fType1.toString()));
assertFalse("containsChild", traceNode.containsChild(null));
- assertTrue("containsChild", catNode.containsChild(fEvent1.getType().toString()));
- assertTrue("containsChild", catNode.containsChild(fEvent3.getType().toString()));
+ assertTrue("containsChild", catNode.containsChild(fType1.toString()));
+ assertTrue("containsChild", catNode.containsChild(fType2.toString()));
assertFalse("containsChild", catNode.containsChild(null));
}
assertEquals("getChildren", Messages.TmfStatisticsData_EventTypes, treeNode.getKey());
Vector<String> keyExpected = new Vector<String>();
- keyExpected.add(fEvent1.getType().toString());
- keyExpected.add(fEvent3.getType().toString());
+ keyExpected.add(fType1.toString());
+ keyExpected.add(fType2.toString());
// Getting children of a category
childrenTreeNode = treeNode.getChildren();
assertEquals("getChildren", 2, childrenTreeNode.size());
assertEquals("getChildren", Messages.TmfStatisticsData_EventTypes, treeNode.getKey());
Vector<String> keyExpected = new Vector<String>();
- keyExpected.add(fEvent1.getType().toString());
- keyExpected.add(fEvent3.getType().toString());
+ keyExpected.add(fType1.toString());
+ keyExpected.add(fType2.toString());
/*
* It should return the eventType even though the number of events
* equals 0
*/
- fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString())).reset();
+ fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.toString())).reset();
// Getting children of a category
childrenTreeNode = treeNode.getAllChildren();
assertEquals("getChildren", 2, childrenTreeNode.size());
TmfStatisticsTreeNode rootNode = fStatsData.get(AbsTmfStatisticsTree.ROOT);
TmfStatisticsTreeNode traceNode = fStatsData.get(new TmfFixedArray<String>(fTestName));
TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next();
- TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString()));
+ TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.toString()));
assertEquals("getNbChildren", 1, rootNode.getNbChildren());
assertEquals("getNbChildren", 1, traceNode.getNbChildren());
TmfStatisticsTreeNode rootNode = fStatsData.get(AbsTmfStatisticsTree.ROOT);
TmfStatisticsTreeNode traceNode = fStatsData.get(new TmfFixedArray<String>(fTestName));
TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next();
- TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString()));
+ TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.toString()));
assertTrue("hasChildren", rootNode.hasChildren());
assertTrue("hasChildren", traceNode.hasChildren());
// ------------------------------------------------------------------------
/**
- * Test geting oft parent.
+ * Test getting of parent.
*/
public void testGetParent() {
TmfStatisticsTreeNode rootNode = fStatsData.get(AbsTmfStatisticsTree.ROOT);
parentNode = newNode.getParent();
assertNull("getParent", parentNode);
- TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString()));
+ TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.toString()));
parentNode = elementNode.getParent();
assertNull("getParent", parentNode);
TmfStatisticsTreeNode rootNode = fStatsData.get(AbsTmfStatisticsTree.ROOT);
TmfStatisticsTreeNode traceNode = fStatsData.get(new TmfFixedArray<String>(fTestName));
TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next();
- TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString()));
+ TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.toString()));
assertEquals("getKey", 0, rootNode.getKey().compareTo(AbsTmfStatisticsTree.ROOT.get(0)));
assertEquals("getKey", 0, traceNode.getKey().compareTo(fTestName));
assertEquals("getKey", 0, catNode.getKey().compareTo(Messages.TmfStatisticsData_EventTypes));
- assertEquals("getKey", 0, elementNode.getKey().compareTo(fEvent1.getType().toString()));
+ assertEquals("getKey", 0, elementNode.getKey().compareTo(fType1.toString()));
}
// ------------------------------------------------------------------------
TmfStatisticsTreeNode rootNode = fStatsData.get(AbsTmfStatisticsTree.ROOT);
TmfStatisticsTreeNode traceNode = fStatsData.get(new TmfFixedArray<String>(fTestName));
TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next();
- TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString()));
+ TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.toString()));
assertTrue("getPath", rootNode.getPath().equals(AbsTmfStatisticsTree.ROOT));
assertTrue("getPath", traceNode.getPath().equals(new TmfFixedArray<String>(fTestName)));
assertTrue("getPath", catNode.getPath().equals(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes)));
- assertTrue("getPath", elementNode.getPath().equals(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString())));
+ assertTrue("getPath", elementNode.getPath().equals(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.toString())));
}
// ------------------------------------------------------------------------
// ------------------------------------------------------------------------
/**
- * Test gettomg statistic value.
+ * Test getting statistic value.
*/
public void testGetValue() {
TmfStatisticsTreeNode rootNode = fStatsData.get(AbsTmfStatisticsTree.ROOT);
TmfStatisticsTreeNode traceNode = fStatsData.get(new TmfFixedArray<String>(fTestName));
TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next();
- TmfStatisticsTreeNode elementNode1 = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString()));
- TmfStatisticsTreeNode elementNode2 = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent3.getType().toString()));
+ TmfStatisticsTreeNode elementNode1 = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.toString()));
+ TmfStatisticsTreeNode elementNode3 = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType2.toString()));
assertEquals("getValue", 0, rootNode.getValue().getTotal());
assertEquals("getValue", 3, traceNode.getValue().getTotal());
assertEquals("getValue", 0, catNode.getValue().getTotal());
assertEquals("getValue", 2, elementNode1.getValue().getTotal());
- assertEquals("getValue", 1, elementNode2.getValue().getTotal());
+ assertEquals("getValue", 1, elementNode3.getValue().getTotal());
}
// ------------------------------------------------------------------------
TmfStatisticsTreeNode rootNode = fStatsData.get(AbsTmfStatisticsTree.ROOT);
TmfStatisticsTreeNode traceNode = fStatsData.get(new TmfFixedArray<String>(fTestName));
TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next();
- TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString()));
+ TmfStatisticsTreeNode elementNode = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.toString()));
elementNode.reset();
assertEquals("reset", 0, elementNode.getValue().getTotal());
catNode.reset();
assertEquals("reset", 0, catNode.getValue().getTotal());
assertEquals("reset", 0, catNode.getNbChildren());
- assertNull("reset", fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString())));
+ assertNull("reset", fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.toString())));
traceNode.reset();
assertEquals("reset", 0, traceNode.getValue().getTotal());
assertEquals("reset", 0, rootNode.getValue().getTotal());
assertEquals("reset", 1, rootNode.getNbChildren());
}
+
+ /**
+ * Test reset time range value of the node in the tree. It should only clear
+ * the time range value without removing any node from the tree.
+ */
+ public void testResetTimeRangeValue() {
+ TmfStatisticsTreeNode rootNode = fStatsData.get(AbsTmfStatisticsTree.ROOT);
+ TmfStatisticsTreeNode traceNode = fStatsData.get(new TmfFixedArray<String>(fTestName));
+ TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next();
+ TmfStatisticsTreeNode eventTypeNode1 = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.toString()));
+ TmfStatisticsTreeNode eventTypeNode2 = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType2.toString()));
+
+ rootNode.resetTimeRangeValue();
+
+ assertEquals(0, rootNode.getValue().getPartial());
+ assertEquals(0, traceNode.getValue().getPartial());
+ assertEquals(0, catNode.getValue().getPartial());
+ assertEquals(0, eventTypeNode1.getValue().getPartial());
+ assertEquals(0, eventTypeNode2.getValue().getPartial());
+
+ // Checks the state of the statistics tree
+ Collection<TmfStatisticsTreeNode> rootChildren = rootNode.getAllChildren();
+ assertEquals(1, rootChildren.size());
+ assertTrue(rootChildren.contains(traceNode));
+
+ Collection<TmfStatisticsTreeNode> traceChildren = traceNode.getAllChildren();
+ assertEquals(1, traceChildren.size());
+ assertTrue(traceChildren.contains(catNode));
+
+ Collection<TmfStatisticsTreeNode> catChildren = catNode.getAllChildren();
+ assertEquals(2, catChildren.size());
+ assertTrue(catChildren.contains(eventTypeNode1));
+ assertTrue(catChildren.contains(eventTypeNode2));
+ }
}