Skip to content

Commit 0cfda8d

Browse files
author
alxkm
committed
fix: replace tests via parametrized tests
1 parent 1d2e49b commit 0cfda8d

File tree

1 file changed

+37
-32
lines changed

1 file changed

+37
-32
lines changed

src/test/java/com/thealgorithms/stacks/BalancedBracketsTest.java

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,50 +4,55 @@
44
import static org.junit.jupiter.api.Assertions.assertThrows;
55
import static org.junit.jupiter.api.Assertions.assertTrue;
66

7+
import java.util.stream.Stream;
78
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.params.ParameterizedTest;
10+
import org.junit.jupiter.params.provider.Arguments;
11+
import org.junit.jupiter.params.provider.MethodSource;
812

913
class BalancedBracketsTest {
1014

11-
@Test
12-
void testIsPaired() {
13-
assertTrue(BalancedBrackets.isPaired('(', ')'));
14-
assertTrue(BalancedBrackets.isPaired('[', ']'));
15-
assertTrue(BalancedBrackets.isPaired('{', '}'));
16-
assertTrue(BalancedBrackets.isPaired('<', '>'));
15+
@ParameterizedTest
16+
@MethodSource("providePairedBracketsForTrue")
17+
void testIsPairedTrue(char opening, char closing) {
18+
assertTrue(BalancedBrackets.isPaired(opening, closing));
19+
}
1720

18-
assertFalse(BalancedBrackets.isPaired('(', ']'));
19-
assertFalse(BalancedBrackets.isPaired('[', ')'));
20-
assertFalse(BalancedBrackets.isPaired('{', '>'));
21-
assertFalse(BalancedBrackets.isPaired('<', ')'));
21+
@ParameterizedTest
22+
@MethodSource("providePairedBracketsForFalse")
23+
void testIsPairedFalse(char opening, char closing) {
24+
assertFalse(BalancedBrackets.isPaired(opening, closing));
25+
}
2226

23-
assertFalse(BalancedBrackets.isPaired('a', 'b'));
24-
assertFalse(BalancedBrackets.isPaired('!', '@'));
27+
@ParameterizedTest
28+
@MethodSource("provideBalancedStringsForTrue")
29+
void testIsBalancedTrue(String input) {
30+
assertTrue(BalancedBrackets.isBalanced(input));
2531
}
2632

27-
@Test
28-
void testIsBalanced() {
29-
assertTrue(BalancedBrackets.isBalanced("[()]{}{[()()]()}"));
30-
assertTrue(BalancedBrackets.isBalanced("()"));
31-
assertTrue(BalancedBrackets.isBalanced("[]"));
32-
assertTrue(BalancedBrackets.isBalanced("{}"));
33-
assertTrue(BalancedBrackets.isBalanced("<>"));
34-
assertTrue(BalancedBrackets.isBalanced("[{<>}]"));
35-
assertTrue(BalancedBrackets.isBalanced(""));
36-
37-
assertFalse(BalancedBrackets.isBalanced("[(])"));
38-
assertFalse(BalancedBrackets.isBalanced("([)]"));
39-
assertFalse(BalancedBrackets.isBalanced("{[<]>}"));
40-
assertFalse(BalancedBrackets.isBalanced("["));
41-
assertFalse(BalancedBrackets.isBalanced(")"));
42-
assertFalse(BalancedBrackets.isBalanced("[{"));
43-
assertFalse(BalancedBrackets.isBalanced("]"));
44-
45-
assertFalse(BalancedBrackets.isBalanced("[a+b]"));
46-
assertFalse(BalancedBrackets.isBalanced("a+b"));
33+
@ParameterizedTest
34+
@MethodSource("provideBalancedStringsForFalse")
35+
void testIsBalancedFalse(String input) {
36+
assertFalse(BalancedBrackets.isBalanced(input));
4737
}
4838

4939
@Test
5040
void testIsBalancedNull() {
5141
assertThrows(IllegalArgumentException.class, () -> BalancedBrackets.isBalanced(null));
5242
}
43+
44+
private static Stream<Arguments> providePairedBracketsForTrue() {return Stream.of(Arguments.of('(', ')'), Arguments.of('[', ']'), Arguments.of('{', '}'), Arguments.of('<', '>'));
45+
}
46+
47+
private static Stream<Arguments> providePairedBracketsForFalse() {
48+
return Stream.of(Arguments.of('(', ']'), Arguments.of('[', ')'), Arguments.of('{', '>'), Arguments.of('<', ')'), Arguments.of('a', 'b'), Arguments.of('!', '@'));
49+
}
50+
51+
private static Stream<Arguments> provideBalancedStringsForTrue() {
52+
return Stream.of(Arguments.of("[()]{}{[()()]()}"), Arguments.of("()"), Arguments.of("[]"), Arguments.of("{}"), Arguments.of("<>"), Arguments.of("[{<>}]"), Arguments.of(""));
53+
}
54+
55+
private static Stream<Arguments> provideBalancedStringsForFalse() {
56+
return Stream.of(Arguments.of("[(])"), Arguments.of("([)]"), Arguments.of("{[<]>}"), Arguments.of("["), Arguments.of(")"), Arguments.of("[{"), Arguments.of("]"), Arguments.of("[a+b]"), Arguments.of("a+b"));
57+
}
5358
}

0 commit comments

Comments
 (0)