Skip to content

Commit 8b8d628

Browse files
FridaTveitstkent
authored andcommitted
binary-search: make test class less DRY [Fix exercism#602] (exercism#603)
* binary-search: make test class less DRY * binary-search: use collections emptylist and singletonlist
1 parent 04e4702 commit 8b8d628

1 file changed

Lines changed: 70 additions & 78 deletions

File tree

Lines changed: 70 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,136 +1,128 @@
11

2+
import org.junit.Ignore;
3+
import org.junit.Test;
4+
25
import java.util.ArrayList;
36
import java.util.Arrays;
47
import java.util.Collections;
58
import java.util.List;
9+
610
import static org.junit.Assert.assertEquals;
7-
import org.junit.Ignore;
8-
import org.junit.Test;
911

1012
public class BinarySearchTest {
1113

12-
public static final List<Integer> EMPTY_LIST
13-
= Collections.unmodifiableList(new ArrayList<Integer>(0));
14-
15-
public static final List<Integer> LIST_OF_UNIT_LENGTH
16-
= Collections.unmodifiableList(
17-
Arrays.asList(6)
18-
);
19-
20-
private static final List<Integer> SORTED_LIST
21-
= Collections.unmodifiableList(
22-
Arrays.asList(1, 3, 4, 6, 8, 9, 11)
23-
);
24-
25-
public static final List<Integer> SORTED_LIST_OF_ODD_LENGTH
26-
= Collections.unmodifiableList(
27-
Arrays.asList(1, 3, 5, 8, 13, 21, 34, 55,
28-
89, 144, 233, 377, 634)
29-
);
30-
31-
public static final List<Integer> SORTED_LIST_OF_EVEN_LENGTH
32-
= Collections.unmodifiableList(
33-
Arrays.asList(1, 3, 5, 8, 13, 21, 34, 55,
34-
89, 144, 233, 377)
35-
);
36-
3714
@Test
3815
public void findsAValueInAnArrayWithOneElement() {
39-
BinarySearch<Integer> sut = new BinarySearch<>(LIST_OF_UNIT_LENGTH);
40-
final int value = 6;
41-
final int actual = sut.indexOf(value);
42-
final int expected = 0;
43-
assertEquals(expected, actual);
16+
List<Integer> listOfUnitLength = Collections.singletonList(6);
17+
18+
BinarySearch<Integer> sut = new BinarySearch<>(listOfUnitLength);
19+
20+
assertEquals(0, sut.indexOf(6));
4421
}
4522

4623
@Ignore("Remove to run test")
4724
@Test
4825
public void findsAValueInTheMiddleOfAnArray() {
49-
BinarySearch<Integer> sut = new BinarySearch<>(SORTED_LIST);
50-
final int value = 6;
51-
final int actual = sut.indexOf(value);
52-
final int expected = 3;
53-
assertEquals(expected, actual);
26+
List<Integer> sortedList = Collections.unmodifiableList(
27+
Arrays.asList(1, 3, 4, 6, 8, 9, 11)
28+
);
29+
30+
BinarySearch<Integer> sut = new BinarySearch<>(sortedList);
31+
32+
assertEquals(3, sut.indexOf(6));
5433
}
5534

5635
@Ignore("Remove to run test")
5736
@Test
5837
public void findsAValueAtTheBeginningOfAnArray() {
59-
BinarySearch<Integer> sut = new BinarySearch<>(SORTED_LIST);
60-
final int value = 1;
61-
final int actual = sut.indexOf(value);
62-
final int expected = 0;
63-
assertEquals(expected, actual);
38+
List<Integer> sortedList = Collections.unmodifiableList(
39+
Arrays.asList(1, 3, 4, 6, 8, 9, 11)
40+
);
41+
42+
BinarySearch<Integer> sut = new BinarySearch<>(sortedList);
43+
44+
assertEquals(0, sut.indexOf(1));
6445
}
6546

6647
@Ignore("Remove to run test")
6748
@Test
6849
public void findsAValueAtTheEndOfAnArray() {
69-
BinarySearch<Integer> sut = new BinarySearch<>(SORTED_LIST);
70-
final int value = 11;
71-
final int actual = sut.indexOf(value);
72-
final int expected = 6;
73-
assertEquals(expected, actual);
50+
List<Integer> sortedList = Collections.unmodifiableList(
51+
Arrays.asList(1, 3, 4, 6, 8, 9, 11)
52+
);
53+
54+
BinarySearch<Integer> sut = new BinarySearch<>(sortedList);
55+
56+
assertEquals(6, sut.indexOf(11));
7457
}
7558

7659
@Ignore("Remove to run test")
7760
@Test
7861
public void findsAValueInAnArrayOfOddLength() {
79-
BinarySearch<Integer> sut = new BinarySearch<>(SORTED_LIST_OF_ODD_LENGTH);
80-
final int value = 144;
81-
final int actual = sut.indexOf(value);
82-
final int expected = 9;
83-
assertEquals(expected, actual);
62+
List<Integer> sortedListOfOddLength = Collections.unmodifiableList(
63+
Arrays.asList(1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 634)
64+
);
65+
66+
BinarySearch<Integer> sut = new BinarySearch<>(sortedListOfOddLength);
67+
68+
assertEquals(9, sut.indexOf(144));
8469
}
8570

8671
@Ignore("Remove to run test")
8772
@Test
8873
public void findsAValueInAnArrayOfEvenLength() {
89-
BinarySearch<Integer> sut
90-
= new BinarySearch<>(SORTED_LIST_OF_EVEN_LENGTH);
91-
final int value = 21;
92-
final int actual = sut.indexOf(value);
93-
final int expected = 5;
94-
assertEquals(expected, actual);
74+
List<Integer> sortedListOfEvenLength = Collections.unmodifiableList(
75+
Arrays.asList(1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377)
76+
);
77+
78+
BinarySearch<Integer> sut = new BinarySearch<>(sortedListOfEvenLength);
79+
80+
assertEquals(5, sut.indexOf(21));
9581
}
9682

9783
@Ignore("Remove to run test")
9884
@Test
9985
public void identifiesThatAValueIsNotIncludedInTheArray() {
100-
BinarySearch<Integer> sut = new BinarySearch<>(SORTED_LIST);
101-
final int value = 7;
102-
final int actual = sut.indexOf(value);
103-
final int expected = -1;
104-
assertEquals(expected, actual);
86+
List<Integer> sortedList = Collections.unmodifiableList(
87+
Arrays.asList(1, 3, 4, 6, 8, 9, 11)
88+
);
89+
90+
BinarySearch<Integer> sut = new BinarySearch<>(sortedList);
91+
92+
assertEquals(-1, sut.indexOf(7));
10593
}
10694

10795
@Ignore("Remove to run test")
10896
@Test
10997
public void aValueSmallerThanTheArraysSmallestValueIsNotIncluded() {
110-
BinarySearch<Integer> sut = new BinarySearch<>(SORTED_LIST);
111-
final int value = 0;
112-
final int actual = sut.indexOf(value);
113-
final int expected = -1;
114-
assertEquals(expected, actual);
98+
List<Integer> sortedList = Collections.unmodifiableList(
99+
Arrays.asList(1, 3, 4, 6, 8, 9, 11)
100+
);
101+
102+
BinarySearch<Integer> sut = new BinarySearch<>(sortedList);
103+
104+
assertEquals(-1, sut.indexOf(0));
115105
}
116106

117107
@Ignore("Remove to run test")
118108
@Test
119109
public void aValueLargerThanTheArraysSmallestValueIsNotIncluded() {
120-
BinarySearch<Integer> sut = new BinarySearch<>(SORTED_LIST);
121-
final int value = 13;
122-
final int actual = sut.indexOf(value);
123-
final int expected = -1;
124-
assertEquals(expected, actual);
110+
List<Integer> sortedList = Collections.unmodifiableList(
111+
Arrays.asList(1, 3, 4, 6, 8, 9, 11)
112+
);
113+
114+
BinarySearch<Integer> sut = new BinarySearch<>(sortedList);
115+
116+
assertEquals(-1, sut.indexOf(13));
125117
}
126118

127119
@Ignore("Remove to run test")
128120
@Test
129121
public void nothingIsIncludedInAnEmptyArray() {
130-
BinarySearch<Integer> sut = new BinarySearch<>(EMPTY_LIST);
131-
final int value = 1;
132-
final int actual = sut.indexOf(value);
133-
final int expected = -1;
134-
assertEquals(expected, actual);
122+
List<Integer> emptyList = Collections.emptyList();
123+
124+
BinarySearch<Integer> sut = new BinarySearch<>(emptyList);
125+
126+
assertEquals(-1, sut.indexOf(1));
135127
}
136128
}

0 commit comments

Comments
 (0)