[BAEL-3117] XOR implementations

This commit is contained in:
dupirefr 2019-08-02 08:07:39 +02:00
parent 87ba90d455
commit 13da8b8cee
2 changed files with 84 additions and 0 deletions

View File

@ -0,0 +1,20 @@
package com.baeldung.java.booleanoperators;
public class Car {
private boolean diesel;
private boolean manual;
public Car(boolean diesel, boolean manual) {
this.diesel = diesel;
this.manual = manual;
}
public boolean isDiesel() {
return diesel;
}
public boolean isManual() {
return manual;
}
}

View File

@ -0,0 +1,64 @@
package com.baeldung.java.booleanoperators;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
class XorUnitTest {
@Test
void givenDieselManualCar_whenXorOldSchool_ThenFalse() {
Car car = new Car(true, true);
boolean dieselXorManual = (car.isDiesel() && !car.isManual()) || (!car.isDiesel() && car.isManual());
assertThat(dieselXorManual).isFalse();
}
@Test
void givenDieselAutomaticCar_whenXorOldSchool_ThenTrue() {
Car car = new Car(true, false);
boolean dieselXorManual = (car.isDiesel() && !car.isManual()) || (!car.isDiesel() && car.isManual());
assertThat(dieselXorManual).isTrue();
}
@Test
void givenNonDieselManualCar_whenXorOldSchool_ThenTrue() {
Car car = new Car(false, true);
boolean dieselXorManual = (car.isDiesel() && !car.isManual()) || (!car.isDiesel() && car.isManual());
assertThat(dieselXorManual).isTrue();
}
@Test
void givenNonDieselAutomaticCar_whenXorOldSchool_ThenFalse() {
Car car = new Car(false, false);
boolean dieselXorManual = (car.isDiesel() && !car.isManual()) || (!car.isDiesel() && car.isManual());
assertThat(dieselXorManual).isFalse();
}
@Test
void givenDieselManualCar_whenXor_ThenFalse() {
Car car = new Car(true, true);
boolean dieselXorManual = car.isDiesel() ^ car.isManual();
assertThat(dieselXorManual).isFalse();
}
@Test
void givenDieselAutomaticCar_whenXor_ThenTrue() {
Car car = new Car(true, false);
boolean dieselXorManual = car.isDiesel() ^ car.isManual();
assertThat(dieselXorManual).isTrue();
}
@Test
void givenNonDieselManualCar_whenXor_ThenTrue() {
Car car = new Car(false, true);
boolean dieselXorManual = car.isDiesel() ^ car.isManual();
assertThat(dieselXorManual).isTrue();
}
@Test
void givenNonDieselAutomaticCar_whenXor_ThenFalse() {
Car car = new Car(false, false);
boolean dieselXorManual = car.isDiesel() ^ car.isManual();
assertThat(dieselXorManual).isFalse();
}
}