///* // * Licensed to the Apache Software Foundation (ASF) under one or more // * contributor license agreements. See the NOTICE file distributed with // * this work for additional information regarding copyright ownership. // * The ASF licenses this file to You 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.collections4.list; // //import java.util.ArrayList; //import java.util.List; //import java.util.ListIterator; // //import junit.framework.Test; // //import org.apache.commons.collections4.BulkTest; // ///** // * JUnit tests // * // * @version $Id$ // * @since 3.1 // */ //public class TreeListTest<E> extends AbstractListTest<E> { // // public TreeListTest(final String name) { // super(name); // } // //// public static void main(String[] args) { //// junit.textui.TestRunner.run(suite()); //// System.out.println(" add; toArray; iterator; insert; get; indexOf; remove"); //// System.out.print(" TreeList = "); //// benchmark(new TreeList()); //// System.out.print("\n ArrayList = "); //// benchmark(new java.util.ArrayList()); //// System.out.print("\n LinkedList = "); //// benchmark(new java.util.LinkedList()); //// System.out.print("\n NodeCachingLinkedList = "); //// benchmark(new NodeCachingLinkedList()); //// } // // public static Test suite() { // return BulkTest.makeSuite(TreeListTest.class); // } // // public static void benchmark(final List<? super Integer> l) { // long start = System.currentTimeMillis(); // for (int i = 0; i < 100000; i++) { // l.add(Integer.valueOf(i)); // } // System.out.print(System.currentTimeMillis() - start + ";"); // // start = System.currentTimeMillis(); // for (int i = 0; i < 200; i++) { // l.toArray(); // } // System.out.print(System.currentTimeMillis() - start + ";"); // // start = System.currentTimeMillis(); // for (int i = 0; i < 100; i++) { // final java.util.Iterator<? super Integer> it = l.iterator(); // while (it.hasNext()) { // it.next(); // } // } // System.out.print(System.currentTimeMillis() - start + ";"); // // start = System.currentTimeMillis(); // for (int i = 0; i < 10000; i++) { // final int j = (int) (Math.random() * 100000); // l.add(j, Integer.valueOf(-j)); // } // System.out.print(System.currentTimeMillis() - start + ";"); // // start = System.currentTimeMillis(); // for (int i = 0; i < 50000; i++) { // final int j = (int) (Math.random() * 110000); // l.get(j); // } // System.out.print(System.currentTimeMillis() - start + ";"); // // start = System.currentTimeMillis(); // for (int i = 0; i < 200; i++) { // final int j = (int) (Math.random() * 100000); // l.indexOf(Integer.valueOf(j)); // } // System.out.print(System.currentTimeMillis() - start + ";"); // // start = System.currentTimeMillis(); // for (int i = 0; i < 10000; i++) { // final int j = (int) (Math.random() * 100000); // l.remove(j); // } // System.out.print(System.currentTimeMillis() - start + ";"); // } // // //----------------------------------------------------------------------- // @Override // public TreeList<E> makeObject() { // return new TreeList<E>(); // } // // //----------------------------------------------------------------------- // @SuppressWarnings("unchecked") // public void testAddMultiple() { // final List<E> l = makeObject(); // l.add((E) "hugo"); // l.add((E) "erna"); // l.add((E) "daniel"); // l.add((E) "andres"); // l.add((E) "harald"); // l.add(0, null); // assertEquals(null, l.get(0)); // assertEquals("hugo", l.get(1)); // assertEquals("erna", l.get(2)); // assertEquals("daniel", l.get(3)); // assertEquals("andres", l.get(4)); // assertEquals("harald", l.get(5)); // } // // @SuppressWarnings("unchecked") // public void testRemove() { // final List<E> l = makeObject(); // l.add((E) "hugo"); // l.add((E) "erna"); // l.add((E) "daniel"); // l.add((E) "andres"); // l.add((E) "harald"); // l.add(0, null); // int i = 0; // assertEquals(null, l.get(i++)); // assertEquals("hugo", l.get(i++)); // assertEquals("erna", l.get(i++)); // assertEquals("daniel", l.get(i++)); // assertEquals("andres", l.get(i++)); // assertEquals("harald", l.get(i++)); // // l.remove(0); // i = 0; // assertEquals("hugo", l.get(i++)); // assertEquals("erna", l.get(i++)); // assertEquals("daniel", l.get(i++)); // assertEquals("andres", l.get(i++)); // assertEquals("harald", l.get(i++)); // // i = 0; // l.remove(1); // assertEquals("hugo", l.get(i++)); // assertEquals("daniel", l.get(i++)); // assertEquals("andres", l.get(i++)); // assertEquals("harald", l.get(i++)); // // i = 0; // l.remove(2); // assertEquals("hugo", l.get(i++)); // assertEquals("daniel", l.get(i++)); // assertEquals("harald", l.get(i++)); // } // // @SuppressWarnings("unchecked") // public void testInsertBefore() { // final List<E> l = makeObject(); // l.add((E) "erna"); // l.add(0, (E) "hugo"); // assertEquals("hugo", l.get(0)); // assertEquals("erna", l.get(1)); // } // // @SuppressWarnings("unchecked") // public void testIndexOf() { // final List<E> l = makeObject(); // l.add((E) "0"); // l.add((E) "1"); // l.add((E) "2"); // l.add((E) "3"); // l.add((E) "4"); // l.add((E) "5"); // l.add((E) "6"); // assertEquals(0, l.indexOf("0")); // assertEquals(1, l.indexOf("1")); // assertEquals(2, l.indexOf("2")); // assertEquals(3, l.indexOf("3")); // assertEquals(4, l.indexOf("4")); // assertEquals(5, l.indexOf("5")); // assertEquals(6, l.indexOf("6")); // // l.set(1, (E) "0"); // assertEquals(0, l.indexOf("0")); // // l.set(3, (E) "3"); // assertEquals(3, l.indexOf("3")); // l.set(2, (E) "3"); // assertEquals(2, l.indexOf("3")); // l.set(1, (E) "3"); // assertEquals(1, l.indexOf("3")); // l.set(0, (E) "3"); // assertEquals(0, l.indexOf("3")); // } // //// public void testCheck() { //// List l = makeEmptyList(); //// l.add("A1"); //// l.add("A2"); //// l.add("A3"); //// l.add("A4"); //// l.add("A5"); //// l.add("A6"); //// } // // public void testBug35258() { // final Object objectToRemove = Integer.valueOf(3); // // final List<Integer> treelist = new TreeList<Integer>(); // treelist.add(Integer.valueOf(0)); // treelist.add(Integer.valueOf(1)); // treelist.add(Integer.valueOf(2)); // treelist.add(Integer.valueOf(3)); // treelist.add(Integer.valueOf(4)); // // // this cause inconsistence of ListIterator() // treelist.remove(objectToRemove); // // final ListIterator<Integer> li = treelist.listIterator(); // assertEquals(Integer.valueOf(0), li.next()); // assertEquals(Integer.valueOf(0), li.previous()); // assertEquals(Integer.valueOf(0), li.next()); // assertEquals(Integer.valueOf(1), li.next()); // // this caused error in bug 35258 // assertEquals(Integer.valueOf(1), li.previous()); // assertEquals(Integer.valueOf(1), li.next()); // assertEquals(Integer.valueOf(2), li.next()); // assertEquals(Integer.valueOf(2), li.previous()); // assertEquals(Integer.valueOf(2), li.next()); // assertEquals(Integer.valueOf(4), li.next()); // assertEquals(Integer.valueOf(4), li.previous()); // assertEquals(Integer.valueOf(4), li.next()); // assertEquals(false, li.hasNext()); // } // // public void testBugCollections447() { // final List<String> treeList = new TreeList<String>(); // treeList.add("A"); // treeList.add("B"); // treeList.add("C"); // treeList.add("D"); // // final ListIterator<String> li = treeList.listIterator(); // assertEquals("A", li.next()); // assertEquals("B", li.next()); // // assertEquals("B", li.previous()); // // li.remove(); // Deletes "B" // // // previous() after remove() should move to // // the element before the one just removed // assertEquals("A", li.previous()); // } // // @SuppressWarnings("boxing") // OK in test code // public void testIterationOrder() { // // COLLECTIONS-433: // // ensure that the iteration order of elements is correct // // when initializing the TreeList with another collection // // for (int size = 1; size < 1000; size++) { // List<Integer> other = new ArrayList<Integer>(size); // for (int i = 0; i < size; i++) { // other.add(i); // } // TreeList<Integer> l = new TreeList<Integer>(other); // ListIterator<Integer> it = l.listIterator(); // int i = 0; // while (it.hasNext()) { // Integer val = it.next(); // assertEquals(i++, val.intValue()); // } // // while (it.hasPrevious()) { // Integer val = it.previous(); // assertEquals(--i, val.intValue()); // } // } // } // // @SuppressWarnings("boxing") // OK in test code // public void testIterationOrderAfterAddAll() { // // COLLECTIONS-433: // // ensure that the iteration order of elements is correct // // when calling addAll on the TreeList // // // to simulate different cases in addAll, do different runs where // // the number of elements already in the list and being added by addAll differ // // int size = 1000; // for (int i = 0; i < 100; i++) { // List<Integer> other = new ArrayList<Integer>(size); // for (int j = i; j < size; j++) { // other.add(j); // } // TreeList<Integer> l = new TreeList<Integer>(); // for (int j = 0; j < i; j++) { // l.add(j); // } // // l.addAll(other); // // ListIterator<Integer> it = l.listIterator(); // int cnt = 0; // while (it.hasNext()) { // Integer val = it.next(); // assertEquals(cnt++, val.intValue()); // } // // while (it.hasPrevious()) { // Integer val = it.previous(); // assertEquals(--cnt, val.intValue()); // } // } // } // //}