1
package org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui.tests.datasets.row;
3
import org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui.datasets.IDataEntry;
4
import org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui.datasets.row.FilteredRowDataSet;
5
import org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui.datasets.row.RowDataSet;
6
import org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui.datasets.row.RowEntry;
7
import org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui.filters.IDataSetFilter;
8
import org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui.filters.RangeFilter;
9
import org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui.filters.SortFilter;
11
import junit.framework.TestCase;
13
public class FilteredRowDataSetTest extends TestCase {
14
public FilteredRowDataSetTest(String name) {
18
protected void setUp() throws Exception {
21
data = new RowDataSet(new String[] {"a", "b", "c"});
22
fdata = new FilteredRowDataSet(data);
23
new FilteredRowDataSet(data.getTitles());
25
entry0 = new RowEntry();
26
entry0.putRow(0, new String[] {"1", "2", "3"});
28
RowEntry entry = new RowEntry();
29
entry.putRow(0, new String[] {"4", "5", "6"});
33
//Overwrite methods to insure data is removed from the original DataSet
34
public void testAppend() {
35
assertEquals(2, data.getEntryCount());
36
RowEntry entry = new RowEntry();
37
entry.putRow(0, new String[] {"1", "2", "3"});
39
assertEquals(3, data.getEntryCount());
42
public void testRemove() {
43
assertFalse(fdata.remove(null));
44
assertFalse(fdata.remove(new RowEntry()));
45
assertFalse(fdata.remove(-1));
46
assertFalse(fdata.remove(10));
47
assertEquals(2, fdata.getEntryCount());
49
IDataEntry entry = data.getEntry(0);
50
assertTrue(fdata.remove(entry));
51
assertEquals(1, fdata.getEntryCount());
52
assertFalse(fdata.remove(entry));
53
assertTrue(fdata.remove(0));
55
//End overwrite methods to insure data is removed from the original DataSet
57
//Overwrite to ensure the data returned has all the filters applied
58
public void testGetColumn() {
59
assertNull(fdata.getColumn(-3));
60
assertNull(fdata.getColumn(10));
62
assertNull(fdata.getColumn(-3, 0, 1));
63
assertNull(fdata.getColumn(10, 0, 1));
64
assertNull(fdata.getColumn(1, 3, 1));
65
assertNull(fdata.getColumn(1, -2, 1));
66
assertNull(fdata.getColumn(1, 0, 20));
68
Object[] col = fdata.getColumn(0);
69
assertEquals(2, col.length);
70
assertSame("1", col[0]);
71
assertSame("4", col[1]);
73
col = fdata.getColumn(RowDataSet.COL_ROW_NUM);
74
assertEquals(2, col.length);
75
assertEquals("1", col[0].toString());
76
assertEquals("2", col[1].toString());
78
col = fdata.getColumn(1, 0, 1);
79
assertEquals(1, col.length);
80
assertSame("2", col[0]);
83
public void testGetRow() {
84
assertNull(fdata.getRow(-3));
85
assertNull(fdata.getRow(10));
87
Object[] row = fdata.getRow(1);
88
assertEquals(3, row.length);
89
assertSame("5", row[1]);
92
public void testGetHistoricalData() {
93
assertNull(fdata.getHistoricalData(null, -3));
94
assertNull(fdata.getHistoricalData(null, 10));
96
assertNull(fdata.getHistoricalData(null, -3, 0, 1));
97
assertNull(fdata.getHistoricalData(null, 10, 0, 1));
98
assertNull(fdata.getHistoricalData(null, 1, 3, 1));
99
assertNull(fdata.getHistoricalData(null, 1, -2, 1));
100
assertNull(fdata.getHistoricalData(null, 1, 0, 20));
102
Object[] col = fdata.getHistoricalData(null, 0);
103
assertEquals(2, col.length);
104
assertSame("1", col[0]);
105
assertSame("4", col[1]);
107
col = fdata.getHistoricalData(null, RowDataSet.COL_ROW_NUM);
108
assertEquals(2, col.length);
109
assertEquals("1", col[0].toString());
110
assertEquals("2", col[1].toString());
112
col = fdata.getHistoricalData(null, 1, 0, 1);
113
assertEquals(1, col.length);
114
assertSame("2", col[0]);
117
public void testGetEntryCount() {
118
assertEquals(2, fdata.getEntryCount());
121
public void testGetEntry() {
122
assertNull(fdata.getEntry(-1));
123
assertNull(fdata.getEntry(20));
124
assertEquals(entry0, data.getEntry(0));
126
//End overwrite to ensure the data returned has all the filters applied
128
//IFilteredDataSet Methods
129
public void testAddFilter() {
135
entry = new RowEntry();
136
entry.putRow(0, new Integer[] {new Integer(3), new Integer(2), new Integer(5)});
138
entry = new RowEntry();
139
entry.putRow(0, new Integer[] {new Integer(4), new Integer(2), new Integer(3)});
141
entry = new RowEntry();
142
entry.putRow(0, new Integer[] {new Integer(7), new Integer(2), new Integer(9)});
144
entry = new RowEntry();
145
entry.putRow(0, new Integer[] {new Integer(2), new Integer(2), new Integer(6)});
147
entry = new RowEntry();
148
entry.putRow(0, new Integer[] {new Integer(5), new Integer(2), new Integer(2)});
151
fdata.addFilter(new RangeFilter(0, new Integer(3), new Integer(5), RangeFilter.INCLUSIVE | RangeFilter.INSIDE_BOUNDS));
153
assertEquals(3, fdata.getRowCount());
154
Object[] row = fdata.getRow(1);
155
assertEquals(4, ((Integer)row[0]).intValue());
156
assertEquals(3, ((Integer)row[2]).intValue());
158
row = fdata.getRow(2);
159
assertEquals(5, ((Integer)row[0]).intValue());
160
assertEquals(2, ((Integer)row[1]).intValue());
163
fdata.addFilter(new SortFilter(2, SortFilter.ASCENDING));
165
assertEquals(3, fdata.getRowCount());
166
row = fdata.getRow(0);
167
assertEquals(5, ((Integer)row[0]).intValue());
168
assertEquals(2, ((Integer)row[2]).intValue());
170
row = fdata.getRow(1);
171
assertEquals(4, ((Integer)row[0]).intValue());
172
assertEquals(3, ((Integer)row[2]).intValue());
175
public void testRemoveFilter() {
181
entry = new RowEntry();
182
entry.putRow(0, new Integer[] {new Integer(3), new Integer(2), new Integer(5)});
184
entry = new RowEntry();
185
entry.putRow(0, new Integer[] {new Integer(4), new Integer(2), new Integer(3)});
187
entry = new RowEntry();
188
entry.putRow(0, new Integer[] {new Integer(7), new Integer(2), new Integer(9)});
190
entry = new RowEntry();
191
entry.putRow(0, new Integer[] {new Integer(2), new Integer(2), new Integer(6)});
193
entry = new RowEntry();
194
entry.putRow(0, new Integer[] {new Integer(5), new Integer(2), new Integer(2)});
197
RangeFilter filter = new RangeFilter(0, new Integer(3), new Integer(5), RangeFilter.INCLUSIVE | RangeFilter.INSIDE_BOUNDS);
198
fdata.addFilter(filter);
199
fdata.addFilter(new SortFilter(2, SortFilter.ASCENDING));
200
fdata.removeFilter(filter);
203
assertEquals(5, fdata.getRowCount());
204
Object[] row = fdata.getRow(0);
205
assertEquals(5, ((Integer)row[0]).intValue());
206
assertEquals(2, ((Integer)row[2]).intValue());
208
row = fdata.getRow(1);
209
assertEquals(4, ((Integer)row[0]).intValue());
210
assertEquals(3, ((Integer)row[2]).intValue());
213
public void testClearFilters() {
219
entry = new RowEntry();
220
entry.putRow(0, new Integer[] {new Integer(3), new Integer(2), new Integer(5)});
222
entry = new RowEntry();
223
entry.putRow(0, new Integer[] {new Integer(4), new Integer(2), new Integer(3)});
225
entry = new RowEntry();
226
entry.putRow(0, new Integer[] {new Integer(7), new Integer(2), new Integer(9)});
228
entry = new RowEntry();
229
entry.putRow(0, new Integer[] {new Integer(2), new Integer(2), new Integer(6)});
231
entry = new RowEntry();
232
entry.putRow(0, new Integer[] {new Integer(5), new Integer(2), new Integer(2)});
235
RangeFilter filter = new RangeFilter(0, new Integer(3), new Integer(5), RangeFilter.INCLUSIVE | RangeFilter.INSIDE_BOUNDS);
236
fdata.addFilter(filter);
237
fdata.addFilter(new SortFilter(2, SortFilter.ASCENDING));
239
fdata.clearFilters();
241
assertEquals(5, fdata.getRowCount());
242
Object[] row = fdata.getRow(0);
243
assertEquals(3, ((Integer)row[0]).intValue());
244
assertEquals(5, ((Integer)row[2]).intValue());
246
row = fdata.getRow(1);
247
assertEquals(4, ((Integer)row[0]).intValue());
248
assertEquals(3, ((Integer)row[2]).intValue());
251
public void testGetFilters() {
252
assertEquals(0, fdata.getFilters().length);
254
RangeFilter filter1 = new RangeFilter(0, new Integer(3), new Integer(5), RangeFilter.INCLUSIVE | RangeFilter.INSIDE_BOUNDS);
255
SortFilter filter2 = new SortFilter(2, SortFilter.ASCENDING);
257
fdata.addFilter(filter1);
258
fdata.addFilter(filter2);
260
IDataSetFilter[] filters = fdata.getFilters();
261
assertEquals(2, filters.length);
264
protected void tearDown() throws Exception {
268
private RowDataSet data;
269
private FilteredRowDataSet fdata;
270
private RowEntry entry0;