2
2
3
3
import static org .junit .jupiter .api .Assertions .assertEquals ;
4
4
5
- import java .util .Arrays ;
6
- import java .util .Collections ;
7
- import java .util .List ;
8
- import java .util .stream .Stream ;
9
5
import com .thealgorithms .bitmanipulation .BooleanAlgebraGates .ANDGate ;
10
6
import com .thealgorithms .bitmanipulation .BooleanAlgebraGates .BooleanGate ;
11
7
import com .thealgorithms .bitmanipulation .BooleanAlgebraGates .NANDGate ;
12
8
import com .thealgorithms .bitmanipulation .BooleanAlgebraGates .NORGate ;
13
9
import com .thealgorithms .bitmanipulation .BooleanAlgebraGates .NOTGate ;
14
10
import com .thealgorithms .bitmanipulation .BooleanAlgebraGates .ORGate ;
15
11
import com .thealgorithms .bitmanipulation .BooleanAlgebraGates .XORGate ;
12
+ import java .util .Arrays ;
13
+ import java .util .Collections ;
14
+ import java .util .List ;
15
+ import java .util .stream .Stream ;
16
16
import org .junit .jupiter .params .ParameterizedTest ;
17
17
import org .junit .jupiter .params .provider .CsvSource ;
18
18
import org .junit .jupiter .params .provider .MethodSource ;
@@ -34,10 +34,7 @@ void testORGate(List<Boolean> inputs, boolean expected) {
34
34
}
35
35
36
36
@ ParameterizedTest (name = "NOTGate Test Case {index}: input={0} -> expected={1}" )
37
- @ CsvSource ({
38
- "true, false" ,
39
- "false, true"
40
- })
37
+ @ CsvSource ({"true, false" , "false, true" })
41
38
void testNOTGate (boolean input , boolean expected ) {
42
39
NOTGate gate = new NOTGate ();
43
40
assertEquals (expected , gate .evaluate (input ));
@@ -68,46 +65,46 @@ void testNORGate(List<Boolean> inputs, boolean expected) {
68
65
69
66
static Stream <Object []> provideAndGateTestCases () {
70
67
return Stream .of (
71
- new Object []{Arrays .asList (true , true , true ), true },
72
- new Object []{Arrays .asList (true , false , true ), false },
73
- new Object []{Arrays .asList (false , false , false ), false },
74
- new Object []{Collections .emptyList (), true } // AND over no inputs is true
68
+ new Object []{Arrays .asList (true , true , true ), true },
69
+ new Object []{Arrays .asList (true , false , true ), false },
70
+ new Object []{Arrays .asList (false , false , false ), false },
71
+ new Object []{Collections .emptyList (), true } // AND over no inputs is true
75
72
);
76
73
}
77
74
78
75
static Stream <Object []> provideOrGateTestCases () {
79
76
return Stream .of (
80
- new Object []{Arrays .asList (true , false , false ), true },
81
- new Object []{Arrays .asList (false , false , false ), false },
82
- new Object []{Arrays .asList (true , true , true ), true },
83
- new Object []{Collections .emptyList (), false } // OR over no inputs is false
77
+ new Object []{Arrays .asList (true , false , false ), true },
78
+ new Object []{Arrays .asList (false , false , false ), false },
79
+ new Object []{Arrays .asList (true , true , true ), true },
80
+ new Object []{Collections .emptyList (), false } // OR over no inputs is false
84
81
);
85
82
}
86
83
87
84
static Stream <Object []> provideXorGateTestCases () {
88
85
return Stream .of (
89
- new Object []{Arrays .asList (true , false , true ), false }, // XOR over odd true
90
- new Object []{Arrays .asList (true , false , false ), true }, // XOR over single true
91
- new Object []{Arrays .asList (false , false , false ), false },// XOR over all false
92
- new Object []{Arrays .asList (true , true ), false } // XOR over even true
86
+ new Object []{Arrays .asList (true , false , true ), false }, // XOR over odd true
87
+ new Object []{Arrays .asList (true , false , false ), true }, // XOR over single true
88
+ new Object []{Arrays .asList (false , false , false ), false },// XOR over all false
89
+ new Object []{Arrays .asList (true , true ), false } // XOR over even true
93
90
);
94
91
}
95
92
96
93
static Stream <Object []> provideNandGateTestCases () {
97
94
return Stream .of (
98
- new Object []{Arrays .asList (true , true , true ), false }, // NAND of all true is false
99
- new Object []{Arrays .asList (true , false ), true }, // NAND with one false is true
100
- new Object []{Arrays .asList (false , false ), true }, // NAND of all false is true
101
- new Object []{Collections .emptyList (), false } // NAND over no inputs is false (negation of AND)
95
+ new Object []{Arrays .asList (true , true , true ), false }, // NAND of all true is false
96
+ new Object []{Arrays .asList (true , false ), true }, // NAND with one false is true
97
+ new Object []{Arrays .asList (false , false ), true }, // NAND of all false is true
98
+ new Object []{Collections .emptyList (), false } // NAND over no inputs is false (negation of AND)
102
99
);
103
100
}
104
101
105
102
static Stream <Object []> provideNorGateTestCases () {
106
103
return Stream .of (
107
- new Object []{Arrays .asList (false , false ), true }, // NOR of all false is true
108
- new Object []{Arrays .asList (false , true ), false }, // NOR with one true is false
109
- new Object []{Arrays .asList (true , true ), false }, // NOR of all true is false
110
- new Object []{Collections .emptyList (), true } // NOR over no inputs is true (negation of OR)
104
+ new Object []{Arrays .asList (false , false ), true }, // NOR of all false is true
105
+ new Object []{Arrays .asList (false , true ), false }, // NOR with one true is false
106
+ new Object []{Arrays .asList (true , true ), false }, // NOR of all true is false
107
+ new Object []{Collections .emptyList (), true } // NOR over no inputs is true (negation of OR)
111
108
);
112
109
}
113
110
}
0 commit comments