sqt/SQ-2021-A4/src/test/java/org/usi/sq/util/numbers/NumberCheckerBranchCoverage...

71 lines
1.6 KiB
Java

package org.usi.sq.util.numbers;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class NumberCheckerBranchCoverageTest {
INumberChecker nc = null;
@BeforeEach
public void createNumberChecker(){
nc = NumberCheckerFactory.create();
}
@Test
public void emptyStringNotHex() {
assertFalse(nc.isHexNumber(""));
}
@Test
public void plusNotHex() {
assertFalse(nc.isHexNumber("+"));
}
@Test
public void oneOneNotHex() {
assertFalse(nc.isHexNumber("11"));
}
@Test
public void zeroBNotHex() {
assertFalse(nc.isHexNumber("0B"));
}
@Test
public void zeroXNotHex() {
assertFalse(nc.isHexNumber("0x"));
}
@Test
public void zeroXGNotHex() {
assertFalse(nc.isHexNumber("0xG"));
}
@Test
public void zeroXZeroHex() {
assertTrue(nc.isHexNumber("0x0"));
}
// NOTE: JaCoCo does not really measure branch coverage, but modified condition coverage (MCC). The following tests
// are needed to satisfy MCC, remove them for a minimal 100% branch coverage test suite
@Test
public void nullIsNotHex() {
assertFalse(nc.isHexNumber(null));
}
@Test
public void offByOneNotHex() {
assertFalse(nc.isHexNumber("-0X!"));
assertFalse(nc.isHexNumber("-0Xg"));
}
@Test
public void zeroXBIsHex() {
assertTrue(nc.isHexNumber("0xB"));
assertTrue(nc.isHexNumber("0xb"));
}
}