AuD
Lecture 'Algorithmen und Datenstrukturen' (code examples)
VectorTest.java
Go to the documentation of this file.
1package aud.test;
2
3import aud.Vector;
4import org.junit.*;
5import static org.junit.Assert.*;
6
7public class VectorTest {
8 @Test
9 public void testCtor() {
11 assertTrue(vec.empty());
12 }
13
14 @Test
15 public void testSize() {
17 assertEquals(vec.size(),0);
18 for (int i=0;i<10;++i) {
19 vec.push_back("x");
20 assertEquals(vec.size(),i+1);
21 assertTrue(vec.capacity()>=vec.size());
22 }
23 }
24
25 @Test
26 public void testVec() {
28 vec.push_back(2);
29 vec.push_back(4);
30 vec.push_back(6); // [2,4,6]
31
32 vec.insert(0,1); // [1,2,4,6]
33 vec.insert(2,3); // [1,2,3,4,6]
34 vec.insert(4,5); // [1,2,4,5,6]
35 vec.insert(6,7); // [1,2,4,5,6,7]
36
37 assertTrue(vec.size()==7);
38 assertTrue(vec.capacity()>=vec.size());
39
40 for (int i=0;i<vec.size();++i)
41 assertTrue(vec.at(i).intValue()==i+1);
42
43 assertTrue(vec.front()==1);
44 assertTrue(vec.back()==7);
45
46 vec.pop_back(); // [1,2,3,4,5,6]
47 assertTrue(vec.size()==6);
48 assertTrue(vec.back()==6);
49
50 vec.erase(0); // [2,3,4,5,6]
51 assertTrue(vec.size()==5);
52 assertTrue(vec.front()==2);
53
54 vec.erase(4); // [2,3,4,5]
55 assertTrue(vec.size()==4);
56 assertTrue(vec.back()==5);
57
58 vec.erase(1); // [2,4,5]
59
60 assertTrue(vec.size()==3);
61 vec.erase(1); // [2,5]
62 assertTrue(vec.size()==2);
63
64 assertTrue(vec.front()==2);
65 assertTrue(vec.back()==5);
66
67 vec.pop_back();
68 vec.erase(0);
69 assertTrue(vec.empty());
70
71 vec.push_back(1);
72 vec.pop_back();
73 assertTrue(vec.empty());
74 }
75
76 @Test
77 public void testVecIterator() {
79
80 final int n=10;
81 for (int i=0;i<n;++i) vec.push_back(i);
82
83 int k=0;
84 for (Integer i : vec) {
85 assertTrue(k==i.intValue());
86 ++k;
87 }
88 }
89
90
91 @Test(expected=IndexOutOfBoundsException.class)
92 public void testInvalid_at() {
94 vec.push_back(1);
95 vec.at(1);
96 }
97
98 @Test(expected=IndexOutOfBoundsException.class)
99 public void testInvalid_front() {
101 vec.front();
102 }
103
104 @Test(expected=IndexOutOfBoundsException.class)
105 public void testInvalid_back() {
107 vec.back();
108 }
109
110 @Test(expected=IndexOutOfBoundsException.class)
111 public void testInvalid_erase() {
113 vec.push_back(1);
114 vec.erase(1);
115 }
116
117 @Test(expected=IndexOutOfBoundsException.class)
118 public void testInvalid_pop_back() {
120 vec.pop_back();
121 }
122
123 public static void main(String args[]) {
124 // prefer command line:
125 // > java org.junit.runner.JUnitCore aud.test.VectorTest
126
127 org.junit.runner.JUnitCore.main("aud.test.VectorTest");
128 }
129}
Implementation of an array-based vector.
Definition: Vector.java:44
void pop_back()
remove last enytry [O(1)]
Definition: Vector.java:182
int capacity()
Get Capacity, i.e., the maximum size the vector can grow without allocating new storage.
Definition: Vector.java:67
T back()
get last entry [O(1)]
Definition: Vector.java:84
void insert(int i, T obj)
Insert new entry obj at position i [O(n)].
Definition: Vector.java:166
void push_back(T obj)
insert new entry obj at the end [O(1) for sufficient capacity]
Definition: Vector.java:155
T at(int i)
get i-th entry [O(1)]
Definition: Vector.java:92
int size()
get number of entries [O(1)]
Definition: Vector.java:60
void erase(int i)
remove entry at position i [O(n)]
Definition: Vector.java:192
T front()
get first entry [O(1)]
Definition: Vector.java:78
boolean empty()
Is vector empty? [O(1)].
Definition: Vector.java:73
static void main(String args[])
AuD lecture: Data structures, algorithms, examples.