Skip to content

Commit a70868a

Browse files
committed
Add algo for BooleanGateslogic and test cases
1 parent e0dc8f5 commit a70868a

File tree

1 file changed

+25
-28
lines changed

1 file changed

+25
-28
lines changed

src/test/java/com/thealgorithms/bitmanipulation/BooleanAlgebraGatesTest.java

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
44

5-
import java.util.Arrays;
6-
import java.util.Collections;
7-
import java.util.List;
8-
import java.util.stream.Stream;
95
import com.thealgorithms.bitmanipulation.BooleanAlgebraGates.ANDGate;
106
import com.thealgorithms.bitmanipulation.BooleanAlgebraGates.BooleanGate;
117
import com.thealgorithms.bitmanipulation.BooleanAlgebraGates.NANDGate;
128
import com.thealgorithms.bitmanipulation.BooleanAlgebraGates.NORGate;
139
import com.thealgorithms.bitmanipulation.BooleanAlgebraGates.NOTGate;
1410
import com.thealgorithms.bitmanipulation.BooleanAlgebraGates.ORGate;
1511
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;
1616
import org.junit.jupiter.params.ParameterizedTest;
1717
import org.junit.jupiter.params.provider.CsvSource;
1818
import org.junit.jupiter.params.provider.MethodSource;
@@ -34,10 +34,7 @@ void testORGate(List<Boolean> inputs, boolean expected) {
3434
}
3535

3636
@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"})
4138
void testNOTGate(boolean input, boolean expected) {
4239
NOTGate gate = new NOTGate();
4340
assertEquals(expected, gate.evaluate(input));
@@ -68,46 +65,46 @@ void testNORGate(List<Boolean> inputs, boolean expected) {
6865

6966
static Stream<Object[]> provideAndGateTestCases() {
7067
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
7572
);
7673
}
7774

7875
static Stream<Object[]> provideOrGateTestCases() {
7976
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
8481
);
8582
}
8683

8784
static Stream<Object[]> provideXorGateTestCases() {
8885
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
9390
);
9491
}
9592

9693
static Stream<Object[]> provideNandGateTestCases() {
9794
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)
10299
);
103100
}
104101

105102
static Stream<Object[]> provideNorGateTestCases() {
106103
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)
111108
);
112109
}
113110
}

0 commit comments

Comments
 (0)