?? testfilterlistiterator.java
字號:
/*
* Copyright 1999-2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.collections.iterators;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.framework.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.Random;
import org.apache.commons.collections.Predicate;
/**
* @version $Revision: 1.2.2.1 $ $Date: 2004/05/22 12:14:04 $
* @author Rodney Waldhoff
*/
public class TestFilterListIterator extends TestCase {
public TestFilterListIterator(String testName) {
super(testName);
}
public static Test suite() {
return new TestSuite(TestFilterListIterator.class);
}
public static void main(String args[]) {
String[] testCaseName = { TestFilterListIterator.class.getName() };
junit.textui.TestRunner.main(testCaseName);
}
private ArrayList list = null;
private ArrayList odds = null;
private ArrayList evens = null;
private ArrayList threes = null;
private ArrayList fours = null;
private ArrayList sixes = null;
private Predicate truePred = null;
private Predicate falsePred = null;
private Predicate evenPred = null;
private Predicate oddPred = null;
private Predicate threePred = null;
private Predicate fourPred = null;
private Random random = new Random();
public void setUp() {
list = new ArrayList();
odds = new ArrayList();
evens = new ArrayList();
threes = new ArrayList();
fours = new ArrayList();
sixes = new ArrayList();
for(int i=0;i<20;i++) {
list.add(new Integer(i));
if(i%2 == 0) { evens.add(new Integer(i)); }
if(i%2 == 1) { odds.add(new Integer(i)); }
if(i%3 == 0) { threes.add(new Integer(i)); }
if(i%4 == 0) { fours.add(new Integer(i)); }
if(i%6 == 0) { sixes.add(new Integer(i)); }
}
truePred = new Predicate() {
public boolean evaluate(Object x) {
return true;
}
};
falsePred = new Predicate() {
public boolean evaluate(Object x) {
return true;
}
};
evenPred = new Predicate() {
public boolean evaluate(Object x) {
return (((Integer)x).intValue()%2 == 0);
}
};
oddPred = new Predicate() {
public boolean evaluate(Object x) {
return (((Integer)x).intValue()%2 == 1);
}
};
threePred = new Predicate() {
public boolean evaluate(Object x) {
return (((Integer)x).intValue()%3 == 0);
}
};
fourPred = new Predicate() {
public boolean evaluate(Object x) {
return (((Integer)x).intValue()%4 == 0);
}
};
}
public void tearDown() {
list = null;
odds = null;
evens = null;
threes = null;
fours = null;
sixes = null;
truePred = null;
falsePred = null;
evenPred = null;
oddPred = null;
threePred = null;
fourPred = null;
}
public void testWalkLists() {
// this just confirms that our walkLists method works OK
walkLists(list,list.listIterator());
}
public void testManual() {
// do this one "by hand" as a sanity check
FilterListIterator filtered = new FilterListIterator(list.listIterator(),threePred);
assertEquals(new Integer(0),filtered.next());
assertEquals(new Integer(3),filtered.next());
assertEquals(new Integer(6),filtered.next());
assertEquals(new Integer(9),filtered.next());
assertEquals(new Integer(12),filtered.next());
assertEquals(new Integer(15),filtered.next());
assertEquals(new Integer(18),filtered.next());
assertEquals(new Integer(18),filtered.previous());
assertEquals(new Integer(15),filtered.previous());
assertEquals(new Integer(12),filtered.previous());
assertEquals(new Integer(9),filtered.previous());
assertEquals(new Integer(6),filtered.previous());
assertEquals(new Integer(3),filtered.previous());
assertEquals(new Integer(0),filtered.previous());
assertTrue(!filtered.hasPrevious());
assertEquals(new Integer(0),filtered.next());
assertEquals(new Integer(3),filtered.next());
assertEquals(new Integer(6),filtered.next());
assertEquals(new Integer(9),filtered.next());
assertEquals(new Integer(12),filtered.next());
assertEquals(new Integer(15),filtered.next());
assertEquals(new Integer(18),filtered.next());
assertTrue(!filtered.hasNext());
assertEquals(new Integer(18),filtered.previous());
assertEquals(new Integer(15),filtered.previous());
assertEquals(new Integer(12),filtered.previous());
assertEquals(new Integer(9),filtered.previous());
assertEquals(new Integer(6),filtered.previous());
assertEquals(new Integer(3),filtered.previous());
assertEquals(new Integer(0),filtered.previous());
assertEquals(new Integer(0),filtered.next());
assertEquals(new Integer(0),filtered.previous());
assertEquals(new Integer(0),filtered.next());
assertEquals(new Integer(3),filtered.next());
assertEquals(new Integer(6),filtered.next());
assertEquals(new Integer(6),filtered.previous());
assertEquals(new Integer(3),filtered.previous());
assertEquals(new Integer(3),filtered.next());
assertEquals(new Integer(6),filtered.next());
assertEquals(new Integer(9),filtered.next());
assertEquals(new Integer(12),filtered.next());
assertEquals(new Integer(15),filtered.next());
assertEquals(new Integer(15),filtered.previous());
assertEquals(new Integer(12),filtered.previous());
assertEquals(new Integer(9),filtered.previous());
}
public void testTruePredicate() {
FilterListIterator filtered = new FilterListIterator(list.listIterator(),truePred);
walkLists(list,filtered);
}
public void testFalsePredicate() {
FilterListIterator filtered = new FilterListIterator(list.listIterator(),falsePred);
walkLists(new ArrayList(),filtered);
}
public void testEvens() {
FilterListIterator filtered = new FilterListIterator(list.listIterator(),evenPred);
walkLists(evens,filtered);
}
public void testOdds() {
FilterListIterator filtered = new FilterListIterator(list.listIterator(),oddPred);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -