Skip to content

Commit 5c888ed

Browse files
committed
add Test junit
1 parent 2d81ec7 commit 5c888ed

File tree

8 files changed

+348
-8
lines changed

8 files changed

+348
-8
lines changed

group02/106614649/106614649Learnin/src/com/github/Ven13/coding2017/basic/ArrayList.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ public Object remove(int index) {
5454
};
5555

5656
int moveSize = size - index - 1;
57+
5758
if (moveSize > 0) {
5859
System.arraycopy(elementData, index + 1, elementData, index, size - index - 1);
5960
}
6061
elementData[--size] = null;
6162

62-
for(int i = index; i < elementData.length; i++) {
63-
elementData[i] = elementData[i+1];
64-
}
65-
size--;
63+
//for(int i = index; i < elementData.length; i++) {
64+
// elementData[i] = elementData[i+1];
65+
//}
6666

6767
return elementData;
6868
}

group02/106614649/106614649Learnin/src/com/github/Ven13/coding2017/basic/LinkedList.java

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,11 @@ public Object get(int index) {
8686
@Override
8787
public Object remove(int index) {
8888
if(index == 0) {
89-
head.next = head;
90-
return head.data;
89+
Node node = head;
90+
Node temp = node.next;
91+
head = temp;
92+
size--;
93+
return node.data;
9194
} else {
9295
if(index >= size) {
9396
throw new java.util.NoSuchElementException();
@@ -111,11 +114,30 @@ public int size() {
111114
}
112115

113116
public Object removeFirst() {
114-
return remove(0);
117+
//通过头指针创建头节点
118+
Node hNode = head;
119+
if (hNode == null) {
120+
throw new java.util.NoSuchElementException();
121+
}
122+
Node nNode = hNode.next;
123+
Object element = hNode.data;
124+
125+
//移除
126+
hNode.data = null;
127+
hNode.next = null;
128+
head = nNode;
129+
//判断是否为尾节点
130+
if (nNode == null) {
131+
tail = null;
132+
}else {
133+
nNode = null;
134+
}
135+
size --;
136+
return element;
115137
}
116138

117139
public Object removeLast() {
118-
return remove(size);
140+
return remove(size - 1);
119141
}
120142

121143
public Iterator iterator() {

group02/106614649/106614649Learnin/src/com/github/Ven13/coding2017/basic/List.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@ public interface List {
66
public Object get(int index);
77
public Object remove(int index);
88
public int size();
9+
10+
public Iterator iterator();
911
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.github.Ven13.coding2017.basic.test;
2+
3+
import org.junit.Before;
4+
5+
import com.github.Ven13.coding2017.basic.*;
6+
7+
public class ArrayListTest extends ListTest{
8+
9+
10+
11+
}
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
package com.github.Ven13.coding2017.basic.test;
2+
3+
import static org.junit.Assert.*;
4+
5+
import org.junit.Before;
6+
import org.junit.Test;
7+
8+
import com.github.Ven13.coding2017.basic.ArrayList;
9+
import com.github.Ven13.coding2017.basic.LinkedList;
10+
import com.github.Ven13.coding2017.basic.List;
11+
12+
public class LinkedListTest extends ListTest {
13+
14+
private LinkedList aLinkedList;
15+
16+
@Before
17+
public void setUpLinkedList() {
18+
List aList = new ArrayList();
19+
aList = new LinkedList();
20+
aLinkedList = new LinkedList();
21+
}
22+
23+
@Test
24+
public void testAddFirst() {
25+
aLinkedList.addFirst(5);
26+
assertEquals(5, aLinkedList.get(0));
27+
28+
aLinkedList.addFirst(6);
29+
assertEquals(6, aLinkedList.get(0));
30+
assertEquals(5, aLinkedList.get(1));
31+
assertEquals(2, aLinkedList.size());
32+
}
33+
34+
@Test
35+
public void testAddLast() {
36+
aLinkedList.addLast("hello");
37+
assertEquals("hello", aLinkedList.get(0));
38+
39+
aLinkedList.addLast("world");
40+
assertEquals("hello", aLinkedList.get(0));
41+
assertEquals("world", aLinkedList.get(1));
42+
assertEquals(2, aLinkedList.size());
43+
}
44+
45+
@Test
46+
public void testRemoveFirst() {
47+
aLinkedList.addLast("hello");
48+
aLinkedList.addLast("world");
49+
50+
aLinkedList.removeFirst();
51+
assertEquals("world", aLinkedList.get(0));
52+
assertEquals(1, aLinkedList.size());
53+
54+
aLinkedList.removeFirst();
55+
assertEquals(0, aLinkedList.size());
56+
}
57+
58+
@Test
59+
public void testRemoveLast() {
60+
aLinkedList.addFirst("world");
61+
aLinkedList.addFirst("hello");
62+
63+
aLinkedList.removeLast();
64+
//assertEquals("hello", aLinkedList.get(0));
65+
assertEquals(1, aLinkedList.size());
66+
67+
aLinkedList.removeLast();
68+
assertEquals(0, aLinkedList.size());
69+
}
70+
71+
@Test
72+
public void testLinkedListFunctional() {
73+
for (int i = 1; i < 4; i++) {
74+
aLinkedList.add(i); // [1,2,3]
75+
}
76+
aLinkedList.remove(1); // [1,3]
77+
78+
aLinkedList.add(1, 0); // [1,0,3]
79+
for (int i=4; i<6; i++) {
80+
aLinkedList.addFirst(i); // [5, 4, 1, 0, 3]
81+
}
82+
assertEquals(5, aLinkedList.size());
83+
assertEquals(5, aLinkedList.get(0));
84+
assertEquals(1, aLinkedList.get(2));
85+
assertEquals(0, aLinkedList.get(3));
86+
87+
88+
aLinkedList.remove(3); // [5, 4, 1, 3]
89+
assertEquals(3, aLinkedList.get(aLinkedList.size()-1));
90+
aLinkedList.removeLast(); // [5, 4, 1]
91+
assertEquals(1, aLinkedList.get(aLinkedList.size()-1));
92+
aLinkedList.removeFirst(); // [4,1]
93+
94+
assertEquals(4, aLinkedList.get(0));
95+
assertEquals(1, aLinkedList.get(1));
96+
assertEquals(2, aLinkedList.size());
97+
98+
}
99+
100+
}
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
package com.github.Ven13.coding2017.basic.test;
2+
3+
import static org.junit.Assert.*;
4+
5+
import org.junit.Test;
6+
import org.junit.rules.ExpectedException;
7+
import org.junit.*;
8+
9+
import com.github.Ven13.coding2017.basic.ArrayList;
10+
import com.github.Ven13.coding2017.basic.Iterator;
11+
import com.github.Ven13.coding2017.basic.List;
12+
13+
public class ListTest {
14+
15+
//protected static List aList;
16+
17+
@Test
18+
public void testFunctional() {
19+
20+
List aList = new ArrayList();
21+
22+
aList.add(1);
23+
aList.add(2);
24+
assertEquals(1, aList.get(0));
25+
assertEquals(2, aList.get(1));
26+
27+
aList.add(3);
28+
aList.add(0, 5);
29+
aList.add(2, 11);
30+
assertEquals(5, aList.get(0));
31+
assertEquals(11, aList.get(2));
32+
33+
aList.add("hi");
34+
assertEquals("hi", aList.get(5));
35+
assertEquals(6, aList.size());
36+
37+
aList.remove(1);
38+
assertEquals(11, aList.get(1));
39+
assertEquals(2, aList.get(2));
40+
41+
assertEquals(5, aList.size());
42+
}
43+
44+
@Test
45+
public void testAdd() {
46+
47+
List aList = new ArrayList();
48+
49+
for (int i = 0; i < 100; i++) {
50+
aList.add(i);
51+
}
52+
53+
assertEquals(0, aList.get(0));
54+
assertEquals(99, aList.get(99));
55+
assertEquals(44, aList.get(44));
56+
}
57+
58+
@Test
59+
public void testRemove() {
60+
61+
List aList = new ArrayList();
62+
63+
aList.add(1);
64+
aList.add(2);
65+
aList.add(3);
66+
aList.remove(3);
67+
assertEquals(2, aList.size());
68+
69+
}
70+
71+
@Test
72+
public void testSize() {
73+
74+
List aList = new ArrayList();
75+
76+
for (int i = 0; i < 10; i++) {
77+
aList.add(i * 2);
78+
}
79+
80+
assertEquals(10, aList.size());
81+
}
82+
83+
@Rule
84+
public ExpectedException expectedEx = ExpectedException.none();
85+
86+
@Test
87+
public void testException() {
88+
89+
List aList = new ArrayList();
90+
91+
expectedEx.expect(Exception.class);
92+
93+
aList.remove(1);
94+
aList.add(3);
95+
aList.add(2, 5);
96+
}
97+
98+
@Test
99+
public void testIterator() {
100+
101+
List aList = new ArrayList();
102+
103+
Iterator it = aList.iterator();
104+
105+
assertEquals(false, it.hasNext());
106+
107+
aList.add(1);
108+
aList.add(2);
109+
aList.add(3);
110+
111+
it = aList.iterator();
112+
assertEquals(true, it.hasNext());
113+
assertEquals(1, it.next());
114+
assertEquals(2, it.next());
115+
assertEquals(3, it.next());
116+
assertEquals(false, it.hasNext());
117+
118+
aList.remove(1);
119+
it = aList.iterator();
120+
assertEquals(true, it.hasNext());
121+
assertEquals(1, it.next());
122+
assertEquals(3, it.next());
123+
assertEquals(false, it.hasNext());
124+
125+
expectedEx.expect(Exception.class);
126+
it.next();
127+
}
128+
129+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.github.Ven13.coding2017.basic.test;
2+
3+
import static org.junit.Assert.*;
4+
5+
import org.junit.Before;
6+
import org.junit.Test;
7+
8+
import com.github.Ven13.coding2017.basic.Queue;
9+
10+
public class QueueTest {
11+
12+
private Queue queue;
13+
14+
@Before
15+
public void setUpQueue() {
16+
queue = new Queue();
17+
}
18+
19+
@Test
20+
public void testQueueFunctional() {
21+
assertEquals(true, queue.isEmpty());
22+
queue.enQueue(4);
23+
queue.enQueue(2);
24+
assertEquals(2, queue.size());
25+
assertEquals(false, queue.isEmpty());
26+
27+
int i = (Integer)queue.deQueue();
28+
assertEquals(4, i);
29+
i = (Integer)queue.deQueue();
30+
assertEquals(2, i);
31+
32+
assertEquals(0, queue.size());
33+
assertEquals(true, queue.isEmpty());
34+
}
35+
36+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.github.Ven13.coding2017.basic.test;
2+
3+
import static org.junit.Assert.*;
4+
5+
import org.junit.Before;
6+
import org.junit.Test;
7+
8+
import com.github.Ven13.coding2017.basic.Stack;
9+
10+
public class StackTest {
11+
12+
private Stack stack;
13+
14+
@Before
15+
public void setUpStack() {
16+
stack = new Stack();
17+
}
18+
19+
@Test
20+
public void testStackFunctional() {
21+
assertEquals(true, stack.isEmpty());
22+
stack.push(4);
23+
stack.push(2);
24+
assertEquals(2, stack.size());
25+
assertEquals(false, stack.isEmpty());
26+
27+
int i = (Integer)stack.pop();
28+
assertEquals(2, i);
29+
30+
i = (Integer)stack.peek();
31+
assertEquals(4, i);
32+
33+
i = (Integer)stack.pop();
34+
assertEquals(4, i);
35+
36+
assertEquals(0, stack.size());
37+
assertEquals(true, stack.isEmpty());
38+
}
39+
40+
}

0 commit comments

Comments
 (0)