Compare commits
2 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
|
|
959bd7dd66 | ||
|
|
0938645cd0 |
@@ -29,8 +29,8 @@ repositories {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// The test classes are compiled with these:
|
// The test classes are compiled with these:
|
||||||
implementation("com.r35157.libs:random-api:0.0.0")
|
implementation("com.r35157.libs:random-api:0.1-dev")
|
||||||
implementation("com.r35157.libs:random-impl-ref:0.0.0")
|
implementation("com.r35157.libs:random-impl-ref:0.1-dev")
|
||||||
implementation("org.jetbrains:annotations:26.0.1")
|
implementation("org.jetbrains:annotations:26.0.1")
|
||||||
|
|
||||||
// The JUnit platform will not be included in the JAR file but are needed for running the tests:
|
// The JUnit platform will not be included in the JAR file but are needed for running the tests:
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
package com.r35157.libs.random.tests;
|
|
||||||
|
|
||||||
import com.r35157.libs.random.SomeInterface;
|
|
||||||
import com.r35157.libs.random.impl.ref.SomeImpl;
|
|
||||||
import org.junit.jupiter.api.*;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
||||||
|
|
||||||
@DisplayName("Happy Initialization Tests")
|
|
||||||
public class HappyInitializationTests {
|
|
||||||
|
|
||||||
@BeforeAll
|
|
||||||
public static void beforeAll() {
|
|
||||||
System.out.println("==== Before All");
|
|
||||||
}
|
|
||||||
|
|
||||||
@BeforeEach
|
|
||||||
public void beforeEach() {
|
|
||||||
System.out.println("---- Before Each");
|
|
||||||
}
|
|
||||||
|
|
||||||
@DisplayName("Just a basic test")
|
|
||||||
@Test
|
|
||||||
void someBasicTest() {
|
|
||||||
// Arrange
|
|
||||||
String a = "abc";
|
|
||||||
String b = "def";
|
|
||||||
String expected = "abcdef";
|
|
||||||
SomeInterface sut = new SomeImpl();
|
|
||||||
|
|
||||||
// Act
|
|
||||||
String actual = sut.concat(a, b);
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
assertTrue(actual.equals(expected));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Disabled("Test disabled")
|
|
||||||
@Test
|
|
||||||
void dummyTest2() {
|
|
||||||
assertTrue(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterEach
|
|
||||||
public void afterEach() {
|
|
||||||
System.out.println("**** After Each");
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterAll
|
|
||||||
public static void afterAll() {
|
|
||||||
System.out.println("==== After All");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
package com.r35157.libs.random.tests;
|
|
||||||
|
|
||||||
import com.r35157.libs.random.SomeInterface;
|
|
||||||
import com.r35157.libs.random.impl.ref.SomeImpl;
|
|
||||||
import org.junit.jupiter.api.*;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
|
|
||||||
@DisplayName("Sad Initialization Tests")
|
|
||||||
public class SadInitializationTests {
|
|
||||||
|
|
||||||
@BeforeAll
|
|
||||||
public static void beforeAll() {
|
|
||||||
System.out.println("==== Before All");
|
|
||||||
}
|
|
||||||
|
|
||||||
@BeforeEach
|
|
||||||
public void beforeEach() {
|
|
||||||
System.out.println("---- Before Each");
|
|
||||||
}
|
|
||||||
|
|
||||||
@DisplayName("Just another basic test")
|
|
||||||
@Test
|
|
||||||
void anotherBasicTest() {
|
|
||||||
|
|
||||||
// Arrange + act
|
|
||||||
SomeInterface sut = new SomeImpl();
|
|
||||||
String expectedErrorMsg = "/ by zero";
|
|
||||||
|
|
||||||
ArithmeticException thrown = assertThrows(
|
|
||||||
ArithmeticException.class,
|
|
||||||
sut::divideByZero,
|
|
||||||
"Expected an exception to be thrown while dividing by zero, but it didn't"
|
|
||||||
);
|
|
||||||
String actualErrorMsg = thrown.getMessage();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
assertEquals(expectedErrorMsg, actualErrorMsg);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Disabled("Test disabled")
|
|
||||||
@Test
|
|
||||||
void dummyTest2() {
|
|
||||||
assertTrue(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterEach
|
|
||||||
public void afterEach() {
|
|
||||||
System.out.println("**** After Each");
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterAll
|
|
||||||
public static void afterAll() {
|
|
||||||
System.out.println("==== After All");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
package com.r35157.libs.random.tests.happy;
|
||||||
|
|
||||||
|
import com.r35157.libs.random.RandomValueGeneratorInt;
|
||||||
|
import com.r35157.libs.random.impl.ref.RandomValueGeneratorIntImpl;
|
||||||
|
import org.junit.jupiter.api.DisplayName;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
@DisplayName("Happy Random Ints Tests")
|
||||||
|
public class CorrectRandomIntsTests {
|
||||||
|
|
||||||
|
@DisplayName("Extreme narrow band works - always only one value possible")
|
||||||
|
@Test
|
||||||
|
void testThatEqualMinMaxBoundsWorks() {
|
||||||
|
// Arrange
|
||||||
|
int minBound = 7;
|
||||||
|
int maxBound = 7;
|
||||||
|
int expected = 7;
|
||||||
|
RandomValueGeneratorInt sut = new RandomValueGeneratorIntImpl();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
int actual = sut.getSomeInt(minBound, maxBound);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
assertEquals(expected, actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DisplayName("Produces different values over multiple calls")
|
||||||
|
@Test
|
||||||
|
void producesDifferentValuesOverMultipleCalls() {
|
||||||
|
// Arrange
|
||||||
|
int iterations = 5;
|
||||||
|
RandomValueGeneratorInt sut = new RandomValueGeneratorIntImpl();
|
||||||
|
Set<Integer> seen = new HashSet<>();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
for (int i = 0; i < iterations; i++) {
|
||||||
|
seen.add(sut.getSomeInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arrange
|
||||||
|
assertTrue(seen.size() > 1, "Int generator returned the same value every time");
|
||||||
|
}
|
||||||
|
|
||||||
|
@DisplayName("Will never throw")
|
||||||
|
@Test
|
||||||
|
void noArgsMethodNeverThrows() {
|
||||||
|
// Arrange
|
||||||
|
int iterations = 10_000;
|
||||||
|
RandomValueGeneratorIntImpl sut = new RandomValueGeneratorIntImpl();
|
||||||
|
|
||||||
|
// Act + Assert
|
||||||
|
for (int i = 0; i < iterations; i++) {
|
||||||
|
assertDoesNotThrow(() -> sut.getSomeInt());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void returnsBothPositiveAndNegative() {
|
||||||
|
// Arrange
|
||||||
|
int iterations = 1_000_000;
|
||||||
|
boolean seenPos = false, seenNeg = false;
|
||||||
|
RandomValueGeneratorIntImpl sut = new RandomValueGeneratorIntImpl();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
for (int i = 0; i < iterations; i++) {
|
||||||
|
int v = sut.getSomeInt();
|
||||||
|
if (v > 0) seenPos = true;
|
||||||
|
if (v < 0) seenNeg = true;
|
||||||
|
if (seenPos && seenNeg) break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
assertTrue(seenPos, "Never saw positive number");
|
||||||
|
assertTrue(seenNeg, "Never saw negative number");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package com.r35157.libs.random.tests.sad;
|
||||||
|
|
||||||
|
import com.r35157.libs.random.RandomValueGeneratorInt;
|
||||||
|
import com.r35157.libs.random.impl.ref.RandomValueGeneratorIntImpl;
|
||||||
|
import org.junit.jupiter.api.DisplayName;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
|
||||||
|
@DisplayName("Sad Random Ints Tests")
|
||||||
|
public class IncorrectRandomIntsTests {
|
||||||
|
|
||||||
|
@DisplayName("RandomInts.getSomeInts()")
|
||||||
|
@Test
|
||||||
|
void testThatMinBoundIsGreaterThanMaxBoundThrows() {
|
||||||
|
// Arrange
|
||||||
|
int minBound = 10;
|
||||||
|
int maxBound = 5;
|
||||||
|
String expectedErrorMsg = String.format("'minInclusive' (%d) must be less than or equal to 'maxInclusive' (%d)",
|
||||||
|
minBound, maxBound);
|
||||||
|
RandomValueGeneratorInt sut = new RandomValueGeneratorIntImpl();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
IllegalArgumentException thrown = assertThrows(
|
||||||
|
IllegalArgumentException.class,
|
||||||
|
() -> sut.getSomeInt(minBound, maxBound)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
String actualErrorMsg = thrown.getMessage();
|
||||||
|
assertEquals(expectedErrorMsg, actualErrorMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user