1717package gr .geompokon .bitarray ;
1818
1919import org .junit .jupiter .api .BeforeEach ;
20- import org .junit .jupiter .api .Test ;
20+ import org .junit .jupiter .api .DisplayName ;
21+ import org .junit .jupiter .params .ParameterizedTest ;
22+ import org .junit .jupiter .params .provider .ValueSource ;
2123
2224import java .util .ArrayList ;
2325import java .util .List ;
2729
2830class BitArrayInterfaceTest {
2931
30- final static int MAX_TEST_SIZE = 200 ;
31-
3232 static List <Boolean > bitArray ;
3333 static List <Boolean > boolArray ;
3434 static Random random ;
@@ -71,9 +71,11 @@ void myAssertSameArrays() {
7171 /**
7272 * Random insertions at random indices
7373 */
74- @ Test
75- void addAtIndex () {
76- for (int i = 0 ; i < MAX_TEST_SIZE ; i ++) {
74+ @ ParameterizedTest
75+ @ ValueSource (ints = {0 , 1 , 5 , 10 , 50 , 100 })
76+ @ DisplayName ("Lists should be the same when doing the same insertions" )
77+ void addAtIndex (int elementsToAdd ) {
78+ for (int i = 0 ; i < elementsToAdd ; i ++) {
7779 int index = random .nextInt (bitArray .size () + 1 ); // bound is exclusive
7880 boolean element = random .nextBoolean ();
7981 bitArray .add (index , element );
@@ -85,15 +87,17 @@ void addAtIndex() {
8587 /**
8688 * Modification of elements at random indices
8789 */
88- @ Test
89- void set () {
90+ @ ParameterizedTest
91+ @ ValueSource (ints = {0 , 1 , 5 , 10 , 50 , 100 })
92+ @ DisplayName ("Lists should be the same when doing the same set operations" )
93+ void set (int elementsToAdd ) {
9094 // test empty array behaviour
9195 assertThrows (IndexOutOfBoundsException .class , () -> bitArray .set (0 , true ));
9296
9397 // test with elements
94- initArrays (MAX_TEST_SIZE );
98+ initArrays (elementsToAdd );
9599
96- for (int i = 0 ; i < MAX_TEST_SIZE ; i ++) {
100+ for (int i = 0 ; i < elementsToAdd ; i ++) {
97101 int index = random .nextInt (bitArray .size ());
98102 Boolean negatedElement = !bitArray .get (index ); // to ensure contents change
99103 bitArray .set (index , negatedElement );
@@ -106,49 +110,35 @@ void set() {
106110 /**
107111 * Remove of elements at random indices
108112 */
109- @ Test
110- void remove () {
113+ @ ParameterizedTest
114+ @ ValueSource (ints = {0 , 1 , 5 , 10 , 50 , 100 })
115+ @ DisplayName ("Lists should be the same at any point while doing the same removes" )
116+ void remove (int elementsToAdd ) {
111117 // test empty array behaviour
112118 assertThrows (IndexOutOfBoundsException .class , () -> bitArray .remove (0 ));
113119
114120 // test with elements
115- initArrays (MAX_TEST_SIZE );
116- for (int i = 0 ; i < MAX_TEST_SIZE ; i ++) {
121+ initArrays (elementsToAdd );
122+ for (int i = 0 ; i < elementsToAdd ; i ++) {
117123 int index = random .nextInt (boolArray .size ());
118124 assertEquals (boolArray .remove (index ), bitArray .remove (index ));
119125 }
120126 }
121127
122- @ Test
123- void clear () {
124- initArrays (10 );
128+ @ ParameterizedTest
129+ @ ValueSource (ints = {0 , 1 , 5 , 10 , 50 , 100 })
130+ @ DisplayName ("Cleared array should be empty" )
131+ void clear (int elementsToAdd ) {
132+ initArrays (elementsToAdd );
125133 bitArray .clear ();
126134 assertTrue (bitArray .isEmpty ());
127135 }
128136
129- @ Test
130- void size () {
131- // test newly created array size
132- assertEquals (0 , bitArray .size ());
133-
134- // add some elements
135- initArrays (MAX_TEST_SIZE );
136- int expectedSize = MAX_TEST_SIZE ;
137- assertEquals (expectedSize , bitArray .size ());
138-
139- // remove some
140- int noToRemove = MAX_TEST_SIZE / 2 ;
141- bitArray .subList (0 , noToRemove ).clear ();
142-
143- expectedSize -= noToRemove ;
144- assertEquals (expectedSize , bitArray .size ());
145-
146- // add back some
147- int noToAdd = MAX_TEST_SIZE / 2 ;
148- for (int i = 0 ; i < noToAdd ; i ++) {
149- bitArray .add (random .nextBoolean ());
150- }
151- expectedSize += noToAdd ;
152- assertEquals (expectedSize , bitArray .size ());
137+ @ ParameterizedTest
138+ @ ValueSource (ints = {0 , 1 , 5 , 10 , 50 , 100 })
139+ @ DisplayName ("Number of elements should be the same as the number of insertions on new arrays" )
140+ void size (int elementsToAdd ) {
141+ initArrays (elementsToAdd );
142+ assertEquals (elementsToAdd , bitArray .size ());
153143 }
154144}
0 commit comments