Skip to content

Commit c709251

Browse files
authored
Merge pull request eugenp#7522 from dupirefr/bael-3117
dupirefr/dupire.francois+pro@gmail.com [BAEL-3117] The XOR Operator in Java
2 parents c85be3d + 1b0dea7 commit c709251

File tree

2 files changed

+105
-0
lines changed
  • core-java-modules/core-java-lang-operators/src

2 files changed

+105
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.baeldung.booleanoperators;
2+
3+
public class Car {
4+
5+
private boolean diesel;
6+
private boolean manual;
7+
8+
public Car(boolean diesel, boolean manual) {
9+
this.diesel = diesel;
10+
this.manual = manual;
11+
}
12+
13+
public boolean isDiesel() {
14+
return diesel;
15+
}
16+
17+
public boolean isManual() {
18+
return manual;
19+
}
20+
21+
static Car dieselAndManualCar() {
22+
return new Car(true, true);
23+
}
24+
25+
static Car dieselAndAutomaticCar() {
26+
return new Car(true, false);
27+
}
28+
29+
static Car oilAndManualCar() {
30+
return new Car(false, true);
31+
}
32+
33+
static Car oilAndAutomaticCar() {
34+
return new Car(false, false);
35+
}
36+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.baeldung.booleanoperators;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import static org.assertj.core.api.Assertions.assertThat;
6+
7+
class XorUnitTest {
8+
9+
@Test
10+
void givenDieselManualCar_whenXorOldSchool_thenFalse() {
11+
Car car = Car.dieselAndManualCar();
12+
boolean dieselXorManual = (car.isDiesel() && !car.isManual()) || (!car.isDiesel() && car.isManual());
13+
assertThat(dieselXorManual).isFalse();
14+
}
15+
16+
@Test
17+
void givenDieselAutomaticCar_whenXorOldSchool_thenTrue() {
18+
Car car = Car.dieselAndAutomaticCar();
19+
boolean dieselXorManual = (car.isDiesel() && !car.isManual()) || (!car.isDiesel() && car.isManual());
20+
assertThat(dieselXorManual).isTrue();
21+
}
22+
23+
@Test
24+
void givenNonDieselManualCar_whenXorOldSchool_thenTrue() {
25+
Car car = Car.oilAndManualCar();
26+
boolean dieselXorManual = (car.isDiesel() && !car.isManual()) || (!car.isDiesel() && car.isManual());
27+
assertThat(dieselXorManual).isTrue();
28+
}
29+
30+
@Test
31+
void givenNonDieselAutomaticCar_whenXorOldSchool_thenFalse() {
32+
Car car = Car.oilAndAutomaticCar();
33+
boolean dieselXorManual = (car.isDiesel() && !car.isManual()) || (!car.isDiesel() && car.isManual());
34+
assertThat(dieselXorManual).isFalse();
35+
}
36+
37+
@Test
38+
void givenDieselManualCar_whenXor_thenFalse() {
39+
Car car = Car.dieselAndManualCar();
40+
boolean dieselXorManual = car.isDiesel() ^ car.isManual();
41+
assertThat(dieselXorManual).isFalse();
42+
}
43+
44+
@Test
45+
void givenDieselAutomaticCar_whenXor_thenTrue() {
46+
Car car = Car.dieselAndAutomaticCar();
47+
boolean dieselXorManual = car.isDiesel() ^ car.isManual();
48+
assertThat(dieselXorManual).isTrue();
49+
}
50+
51+
@Test
52+
void givenNonDieselManualCar_whenXor_thenTrue() {
53+
Car car = Car.oilAndManualCar();
54+
boolean dieselXorManual = car.isDiesel() ^ car.isManual();
55+
assertThat(dieselXorManual).isTrue();
56+
}
57+
58+
@Test
59+
void givenNonDieselAutomaticCar_whenXor_thenFalse() {
60+
Car car = Car.oilAndAutomaticCar();
61+
boolean dieselXorManual = car.isDiesel() ^ car.isManual();
62+
assertThat(dieselXorManual).isFalse();
63+
}
64+
65+
@Test
66+
void givenNumbersOneAndThree_whenXor_thenTwo() {
67+
assertThat(1 ^ 3).isEqualTo(2);
68+
}
69+
}

0 commit comments

Comments
 (0)