1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.collections.primitives;
18
19 import java.util.Iterator;
20 import java.util.NoSuchElementException;
21
22 import org.apache.commons.collections.iterators.AbstractTestIterator;
23 import org.apache.commons.collections.primitives.adapters.DoubleIteratorIterator;
24
25
26
27
28
29 public abstract class TestDoubleIterator extends AbstractTestIterator {
30
31
32
33
34 public TestDoubleIterator(String testName) {
35 super(testName);
36 }
37
38
39
40
41 public Iterator makeEmptyIterator() {
42 return DoubleIteratorIterator.wrap(makeEmptyDoubleIterator());
43 }
44
45 public Iterator makeFullIterator() {
46 return DoubleIteratorIterator.wrap(makeFullDoubleIterator());
47 }
48
49
50 protected abstract DoubleIterator makeEmptyDoubleIterator();
51 protected abstract DoubleIterator makeFullDoubleIterator();
52 protected abstract double[] getFullElements();
53
54
55
56
57 public void testNextHasNextRemove() {
58 double[] elements = getFullElements();
59 DoubleIterator iter = makeFullDoubleIterator();
60 for(int i=0;i<elements.length;i++) {
61 assertTrue(iter.hasNext());
62 assertEquals(elements[i],iter.next(),0f);
63 if(supportsRemove()) {
64 iter.remove();
65 }
66 }
67 assertTrue(! iter.hasNext() );
68 }
69
70 public void testEmptyDoubleIterator() {
71 assertTrue( ! makeEmptyDoubleIterator().hasNext() );
72 try {
73 makeEmptyDoubleIterator().next();
74 fail("Expected NoSuchElementException");
75 } catch(NoSuchElementException e) {
76
77 }
78 if(supportsRemove()) {
79 try {
80 makeEmptyDoubleIterator().remove();
81 fail("Expected IllegalStateException");
82 } catch(IllegalStateException e) {
83
84 }
85 }
86 }
87
88 public void testRemoveBeforeNext() {
89 if(supportsRemove()) {
90 try {
91 makeFullDoubleIterator().remove();
92 fail("Expected IllegalStateException");
93 } catch(IllegalStateException e) {
94
95 }
96 }
97 }
98
99 public void testRemoveAfterRemove() {
100 if(supportsRemove()) {
101 DoubleIterator iter = makeFullDoubleIterator();
102 iter.next();
103 iter.remove();
104 try {
105 iter.remove();
106 fail("Expected IllegalStateException");
107 } catch(IllegalStateException e) {
108
109 }
110 }
111 }
112 }