Add UTs for multiply

main
Alexis Drai 2 years ago
parent 11d3023e09
commit 9c8238095d

@ -23,7 +23,7 @@ public class Operations {
res *= num; res *= num;
} }
} }
System.out.println(res);
return res; return res;
} }

@ -4,6 +4,7 @@ import static org.junit.jupiter.api.Assertions.*;
import java.util.Random; import java.util.Random;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -12,14 +13,24 @@ import fr.iut.uca.Operations;
class OperationsTests { class OperationsTests {
private Operations op; private Operations op;
private static Random rdm;
@BeforeAll
static void initAll() {
rdm = new Random();
}
@BeforeEach @BeforeEach
void init() { void initEach() {
op = new Operations(); op = new Operations();
} }
// --------------
// add
// --------------
@Test @Test
void basicAdd() { void addBasic() {
// Arrange // Arrange
long x = 1; long x = 1;
@ -36,7 +47,7 @@ class OperationsTests {
} }
@Test @Test
void beyondMax() { void addBeyondMax() {
// Arrange // Arrange
long x = Long.MAX_VALUE; long x = Long.MAX_VALUE;
@ -53,7 +64,7 @@ class OperationsTests {
} }
@Test @Test
void belowMin() { void addBelowMin() {
// Arrange // Arrange
long x = Long.MIN_VALUE; long x = Long.MIN_VALUE;
@ -70,7 +81,7 @@ class OperationsTests {
} }
@Test @Test
void allZeros() { void addAllZeros() {
// Arrange // Arrange
long x = 0; long x = 0;
@ -87,7 +98,7 @@ class OperationsTests {
} }
@Test @Test
void withZeroLeft() { void addWithZeroLeft() {
// Arrange // Arrange
long x = 0; long x = 0;
@ -104,7 +115,7 @@ class OperationsTests {
} }
@Test @Test
void withZeroRight() { void addWithZeroRight() {
// Arrange // Arrange
long x = 4; long x = 4;
@ -121,7 +132,7 @@ class OperationsTests {
} }
@Test @Test
void allNegatives() { void addAllNegatives() {
// Arrange // Arrange
long x = -3; long x = -3;
@ -138,7 +149,7 @@ class OperationsTests {
} }
@Test @Test
void oppositesCancelOut() { void addOppositesCancelOut() {
// Arrange // Arrange
long x = -4; long x = -4;
@ -155,7 +166,7 @@ class OperationsTests {
} }
@Test @Test
void manyNumbers() { void addManyNumbers() {
// Arrange // Arrange
long x = 1; long x = 1;
@ -175,8 +186,7 @@ class OperationsTests {
} }
@Test @Test
void rdm() { void addRdm() {
Random rdm = new Random();
for(int i = 0 ; i <10; i++) { for(int i = 0 ; i <10; i++) {
// Arrange // Arrange
@ -205,4 +215,184 @@ class OperationsTests {
assertEquals(expected, actual); assertEquals(expected, actual);
} }
} }
// --------------
// multiply
// --------------
@Test
void multBasic() {
// Arrange
long x = 2;
long y = 3;
long expected = 6;
// Act
long actual = op.multiply(x, y, null);
// Assert
assertEquals(expected, actual);
}
@Test
void multWithOne() {
// Arrange
long x = 8;
long y = 1;
long expected = 8;
// Act
long actual = op.multiply(x, y, null);
// Assert
assertEquals(expected, actual);
}
@Test
void multWithZero() {
// Arrange
long x = 0;
long y = 2;
long expected = 0;
// Act
long actual = op.multiply(x, y, null);
// Assert
assertEquals(expected, actual);
}
@Test
void multWithNegLeft() {
// Arrange
long x = 4;
long y = -2;
long expected = -8;
// Act
long actual = op.multiply(x, y, null);
// Assert
assertEquals(expected, actual);
}
@Test
void multWithNegRight() {
// Arrange
long x = -7;
long y = 4;
long expected = -28;
// Act
long actual = op.multiply(x, y, null);
// Assert
assertEquals(expected, actual);
}
@Test
void multWithMany() {
// Arrange
long x = 1;
long y = 2;
long z1 = 3;
long z2 = 4;
long z3 = 5;
long expected = 120;
// Act
long actual = op.multiply(x, y, z1, z2, z3);
// Assert
assertEquals(expected, actual);
}
@Test
void multRdmEquals() {
Random rdm = new Random();
for(int i = 0 ; i <10; i++) {
// Arrange
long rdmX = rdm.nextLong();
long rdmY = rdm.nextLong();
long expected;
if(rdmX == 1) {
expected = rdmY;
} else if(rdmY == 1) {
expected = rdmX;
} else if(rdmX == 0) {
expected = 0;
} else if(rdmY == 0) {
expected = 0;
} else {
expected = rdmX * rdmY;
}
// Act
long actual = op.multiply(rdmX, rdmY, null);
// Assert
assertEquals(expected, actual);
}
}
@Test
void multRdmIntervals() {
for(int i = 0 ; i < 10 ; i++) {
// Arrange
long right = 3037000500L;
long left = -3037000499L;
long rdmX = rdm.nextLong(left, right);
long rdmY = rdm.nextLong(left, right);
// Act
long actual = op.multiply(rdmX, rdmY, null);
// Assert
if((rdmX > 0 && rdmY > 0)
|| (rdmX < 0 && rdmY < 0)) {
assertTrue(actual > 0);
} else if((rdmX < 0 && rdmY > 0)
|| (rdmX > 0 && rdmY < 0)) {
assertTrue(actual < 0);
} else { // rdmX == 0 || rdmY == 0
assertTrue(actual == 0);
}
}
}
// --------------
// divide
// --------------
} }

Loading…
Cancel
Save