This is the JUnit 5 solution to cover all kinds of inputs provided to find the Doublets whose sum divisible by 9 from an array of integers. This Unit test executes tests for the ‘ParseAnArrayInput’ function available in the class ‘DoubletsSumDivBy9J8’.
package pack1;
import java.util.Arrays;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
class JUnitTestDoubletsSumDivBy9J8 {
DoubletsSumDivBy9_Using_Arrays DSDBUA;
DoubletsSumDivBy9_Using_Predicates DSDBUP;
DoubletsSumDivBy9_Using_Stream_and_Predicates DSDBUSP;
@BeforeEach
void setUp() throws Exception {
DSDBUA = new DoubletsSumDivBy9_Using_Arrays();
DSDBUP = new DoubletsSumDivBy9_Using_Predicates();
DSDBUSP = new DoubletsSumDivBy9_Using_Stream_and_Predicates();
}
@Test
@DisplayName("Positive inputs - Exp value and Actual matches")
void test1() {
Assertions.assertEquals("[[14, 58], [5, 58]]", DSDBUA.ParseAnArrayInput(new Integer[] { 14, 20, 11, 5, 29, 17, 58 }).toString());
Assertions.assertEquals("[[90, 9], [90, 0], [90, 54], [9, 0], [9, 54], [0, 54]]", DSDBUP.ParseAnArrayInput(new Integer[] { 90, 9, 0, 54, 32, 51 }).toString());
Assertions.assertEquals("[[4, 14], [4, 5]]", DSDBUSP.ParseAnArrayInput(new Integer[] { 4, 14, 10, 15, 2, 37, 5}).toString());
}
@Test
@DisplayName("Negative inputs - Exp value and Actual does not matches")
void test2() {
Assertions.assertNotEquals("[[4, 8], [15, 8], [9, 23]]", DSDBUA.ParseAnArrayInput(new Integer[] { 14, 20, 11, 5, 29, 17, 58 }).toString());
Assertions.assertNotEquals("[[19, 0], [9, 45], [10, 54]]", DSDBUP.ParseAnArrayInput(new Integer[] { 90, 9, 0, 54, 32, 51 }).toString());
Assertions.assertNotEquals("[[24, 4], [45, 3]]", DSDBUSP.ParseAnArrayInput(new Integer[] { 4, 14, 10, 15, 2, 37, 5}).toString());
}
@Test
@DisplayName("Null Array inputs")
void test3() {
Assertions.assertEquals(Arrays.asList(), DSDBUA.ParseAnArrayInput(null));
Assertions.assertEquals(Arrays.asList(), DSDBUP.ParseAnArrayInput(null));
Assertions.assertEquals(Arrays.asList(), DSDBUSP.ParseAnArrayInput(null));
}
@Test
@DisplayName("Empty Array inputs")
void test4() {
Assertions.assertEquals(Arrays.asList(), DSDBUA.ParseAnArrayInput(new Integer[] {}));
Assertions.assertEquals(Arrays.asList(), DSDBUP.ParseAnArrayInput(new Integer[] {}));
Assertions.assertEquals(Arrays.asList(), DSDBUSP.ParseAnArrayInput(new Integer[] {}));
}
}
Output:
Jun 14, 2023 7:45:26 PM pack1.DoubletsSumDivBy9_Using_Arrays ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:26 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Arrays'
Jun 14, 2023 7:45:26 PM pack1.ArrayInputNum validateInputs
INFO: The provided Input validated Successfully
The given input Array values are
[ 14 20 11 5 29 17 58 ]
[[14, 58], [5, 58]]
Jun 14, 2023 7:45:26 PM pack1.DoubletsSumDivBy9_Using_Predicates ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:26 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Predicates'
Jun 14, 2023 7:45:26 PM pack1.ArrayInputNum validateInputs
INFO: The provided Input validated Successfully
The given input Array values are
[ 90 9 0 54 32 51 ]
[[90, 9], [90, 0], [90, 54], [9, 0], [9, 54], [0, 54]]
Jun 14, 2023 7:45:26 PM pack1.DoubletsSumDivBy9_Using_Stream_and_Predicates ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:26 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Stream_and_Predicates'
Jun 14, 2023 7:45:26 PM pack1.ArrayInputNum validateInputs
INFO: The provided Input validated Successfully
The given input Array values are
4 14 10 15 2 37 5
The triplets of numbers which are divisible by 9
[[4, 14], [4, 5]]
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Arrays ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Arrays'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: The provided Input validated Successfully
The given input Array values are
[ 14 20 11 5 29 17 58 ]
[[14, 58], [5, 58]]
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Predicates ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Predicates'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: The provided Input validated Successfully
The given input Array values are
[ 90 9 0 54 32 51 ]
[[90, 9], [90, 0], [90, 54], [9, 0], [9, 54], [0, 54]]
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Stream_and_Predicates ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Stream_and_Predicates'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: The provided Input validated Successfully
The given input Array values are
4 14 10 15 2 37 5
The triplets of numbers which are divisible by 9
[[4, 14], [4, 5]]
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Arrays ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Arrays'
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Arrays ParseAnArrayInput
INFO: The given Input Array is null
[]
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Predicates ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Predicates'
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Predicates ParseAnArrayInput
INFO: The given Input Array is null
[]
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Stream_and_Predicates ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Stream_and_Predicates'
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Stream_and_Predicates ParseAnArrayInput
INFO: The given Input Array is null
[]
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Arrays ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Arrays'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: The provided Input validated Successfully
The given input Array values are
[ ]
[]
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Predicates ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Predicates'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: The provided Input validated Successfully
The given input Array values are
[ ]
[]
Jun 14, 2023 7:45:27 PM pack1.DoubletsSumDivBy9_Using_Stream_and_Predicates ParseAnArrayInput
INFO: This method 'ParseAnArrayInput' called from the Class 'pack1.JUnitTestDoubletsSumDivBy9J8'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.DoubletsSumDivBy9_Using_Stream_and_Predicates'
Jun 14, 2023 7:45:27 PM pack1.ArrayInputNum validateInputs
INFO: The provided Input validated Successfully
The given input Array values are
The triplets of numbers which are divisible by 9
[]


Leave a comment