This is the JUnit 5 solution to cover all kinds of inputs and outputs to find the leader numbers from an array of integers. This Unit test executes tests for the ‘RdInputArray’ function available in the class ‘LeaderNumsJ8’.
package pack1;
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 JUnitTestLeaderNumsJ8 {
LeaderNumbers_Using_Array_Backward LNUAB;
LeaderNumbers_Using_Array_Forward LNUAF;
LeaderNumbers_Using_Streams LNUS;
@BeforeEach
void setUp() throws Exception {
LNUAB = new LeaderNumbers_Using_Array_Backward();
LNUAF = new LeaderNumbers_Using_Array_Forward();
LNUS = new LeaderNumbers_Using_Streams();
}
@Test
@DisplayName("Positive inputs - Exp value and Actual matches")
void test1() {
Integer[] arrNums = { 10, 2, 41, 13, 8, 36, 7, 15, 21 };
Assertions.assertEquals("[21, 36, 41]", LNUAB.RdInputArray(arrNums).toString());
Assertions.assertEquals("[41, 36, 21]", LNUAF.RdInputArray(arrNums).toString());
Assertions.assertEquals("[21, 36, 41]", LNUS.RdInputArray(arrNums).toString());
}
@Test
@DisplayName("Negative inputs - Exp value and Actual matches")
void test2() {
Integer[] arrNums = { 51, 2, 41, 13, 8, 36, 7, 15, 21 };
Assertions.assertNotEquals("[13, 36, 41]", LNUAB.RdInputArray(arrNums).toString());
Assertions.assertNotEquals("[8, 21]", LNUAF.RdInputArray(arrNums).toString());
Assertions.assertNotEquals("[41, 7, 10]", LNUS.RdInputArray(arrNums).toString());
}
@Test
@DisplayName("Null inputs - Exp value and Actual matches")
void test3() {
Assertions.assertEquals("[]", LNUAB.RdInputArray(null).toString());
Assertions.assertEquals("[]", LNUAF.RdInputArray(null).toString());
Assertions.assertEquals("[]", LNUS.RdInputArray(null).toString());
}
@Test
@DisplayName("Empty inputs - Exp value and Actual matches")
void test4() {
Integer[] arrNums = { };
Assertions.assertEquals("[]", LNUAB.RdInputArray(arrNums).toString());
Assertions.assertEquals("[]", LNUAF.RdInputArray(arrNums).toString());
Assertions.assertEquals("[]", LNUS.RdInputArray(arrNums).toString());
}
}
Output:
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Backward RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Array_Backward'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: The provided Input validated Successfully
The leaders numbers from the given array
[21, 36, 41]
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Forward RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Array_Forward'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: The provided Input validated Successfully
The leaders numbers from the given array
[41, 36, 21]
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Streams RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Streams'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: The provided Input validated Successfully
The leaders numbers from the given array
[21, 36, 41]
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Backward RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Array_Backward'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: The provided Input validated Successfully
The leaders numbers from the given array
[21, 36, 41, 51]
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Forward RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Array_Forward'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: The provided Input validated Successfully
The leaders numbers from the given array
[51, 41, 36, 21]
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Streams RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Streams'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: The provided Input validated Successfully
The leaders numbers from the given array
[21, 36, 41, 51]
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Backward RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Array_Backward'
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Backward RdInputArray
INFO: The given Input Array numbers are null
The leaders numbers from the given array
[]
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Forward RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Array_Forward'
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Forward RdInputArray
INFO: The given Input Array numbers are null
The leaders numbers from the given array
[]
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Streams RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Streams'
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Streams RdInputArray
INFO: The given Input Array numbers are null
The leaders numbers from the given array
[]
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Backward RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Array_Backward'
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Backward RdInputArray
INFO: The given Input Array numbers are null
The leaders numbers from the given array
[]
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Forward RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Array_Forward'
The leaders numbers from the given array
[]
The leaders numbers from the given array
[]
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Array_Forward RdInputArray
INFO: The given Input Array numbers are null
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Streams RdInputArray
INFO: This method 'RdInputArray' called from the Class 'pack1.JUnitTestLeaderNumsJ8'
Jun 18, 2023 1:50:01 PM pack1.ReadInputArrayNums validateInputs
INFO: This method 'validateInputs()' called from the Class 'pack1.LeaderNumbers_Using_Streams'
Jun 18, 2023 1:50:01 PM pack1.LeaderNumbers_Using_Streams RdInputArray
INFO: The given Input Array numbers are null


Leave a comment