forked from IF-LK-2020/arrays2
Initial commit
This commit is contained in:
187
ArraysTest.java
Normal file
187
ArraysTest.java
Normal file
@@ -0,0 +1,187 @@
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class ArraysTest {
|
||||
|
||||
private static int n = 0;
|
||||
|
||||
private class MockupWuerfel extends Wuerfel {
|
||||
|
||||
public int mockupValue;
|
||||
|
||||
public int rolls = 0;
|
||||
|
||||
public MockupWuerfel(int pValue) {
|
||||
super("W" + (n++));
|
||||
mockupValue = pValue;
|
||||
rolls = 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAugenzahl() {
|
||||
return mockupValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void werfen() {
|
||||
rolls = rolls + 1;
|
||||
}
|
||||
}
|
||||
|
||||
private Arrays arrays;
|
||||
|
||||
/**
|
||||
* Setzt das Testgerüst fuer den Test.
|
||||
*
|
||||
* Wird vor jeder Testfall-Methode aufgerufen.
|
||||
*/
|
||||
@Before
|
||||
public void setUp() {
|
||||
arrays = new Arrays();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDiceSum() {
|
||||
Random rand = new Random();
|
||||
|
||||
Wuerfel[] dice;
|
||||
|
||||
dice = new Wuerfel[]{
|
||||
new MockupWuerfel(1),
|
||||
new MockupWuerfel(6),
|
||||
new MockupWuerfel(4),
|
||||
};
|
||||
assertEquals("Falsche Summe berechnet.", 11, arrays.diceSum(dice));
|
||||
|
||||
for( int i = 0; i < 10; i++ ) {
|
||||
int sum = 0;
|
||||
dice = new Wuerfel[rand.nextInt(18)+2];
|
||||
for( int j = 0; j < dice.length; j++ ) {
|
||||
int w = rand.nextInt(6)+1;
|
||||
dice[j] = new MockupWuerfel(w);
|
||||
sum += w;
|
||||
}
|
||||
|
||||
assertEquals("Falsche Summe berechnet.", sum, arrays.diceSum(dice));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRollAll() {
|
||||
Wuerfel[] dice = new Wuerfel[50];
|
||||
for( int i = 0; i < dice.length; i++ ) {
|
||||
dice[i] = new MockupWuerfel(0);
|
||||
}
|
||||
|
||||
arrays.rollAll(dice);
|
||||
|
||||
for( int i = 0; i < dice.length; i++ ) {
|
||||
MockupWuerfel die = (MockupWuerfel)dice[i];
|
||||
assertTrue( "Der Würfel "+die.getName()+" wurde nicht geworfen.", die.rolls == 1);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTwoDimSum() {
|
||||
Random rand = new Random();
|
||||
|
||||
Wuerfel[][] dice;
|
||||
|
||||
dice = new Wuerfel[][]{
|
||||
new Wuerfel[]{
|
||||
new MockupWuerfel(1),
|
||||
new MockupWuerfel(6),
|
||||
new MockupWuerfel(4)
|
||||
},
|
||||
new Wuerfel[]{
|
||||
new MockupWuerfel(5),
|
||||
new MockupWuerfel(5),
|
||||
new MockupWuerfel(5)
|
||||
},
|
||||
new Wuerfel[]{
|
||||
new MockupWuerfel(1),
|
||||
new MockupWuerfel(1),
|
||||
new MockupWuerfel(0)
|
||||
},
|
||||
new Wuerfel[]{
|
||||
new MockupWuerfel(-3),
|
||||
new MockupWuerfel(-2),
|
||||
new MockupWuerfel(-4)
|
||||
}
|
||||
};
|
||||
assertEquals("Falsche Summe berechnet.", 19, arrays.twoDimSum(dice));
|
||||
|
||||
for( int i = 0; i < 10; i++ ) {
|
||||
int sum = 0;
|
||||
dice = new Wuerfel[rand.nextInt(18)+2][rand.nextInt(18)+2];
|
||||
for( int j = 0; j < dice.length; j++ ) {
|
||||
for( int k = 0; k < dice[j].length; k++ ) {
|
||||
int w = rand.nextInt(6)+1;
|
||||
dice[j][k] = new MockupWuerfel(w);
|
||||
sum += w;
|
||||
}
|
||||
}
|
||||
|
||||
assertEquals("Falsche Summe berechnet.", sum, arrays.twoDimSum(dice));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTwoDimRoll() {
|
||||
Wuerfel[][] dice = new Wuerfel[50][45];
|
||||
for( int i = 0; i < dice.length; i++ ) {
|
||||
for( int j = 0; j < dice[i].length; j++ ) {
|
||||
dice[i][j] = new MockupWuerfel(0);
|
||||
}
|
||||
}
|
||||
|
||||
arrays.twoDimRoll(dice);
|
||||
|
||||
for( int i = 0; i < dice.length; i++ ) {
|
||||
for( int j = 0; j < dice[i].length; j++ ) {
|
||||
MockupWuerfel die = (MockupWuerfel)dice[i][j];
|
||||
assertTrue( "Der Würfel "+die.getName()+" wurde nicht geworfen.", die.rolls == 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRowSum() {
|
||||
Wuerfel[][] dice;
|
||||
|
||||
dice = new Wuerfel[][]{
|
||||
new Wuerfel[]{
|
||||
new MockupWuerfel(1),
|
||||
new MockupWuerfel(6),
|
||||
new MockupWuerfel(4)
|
||||
},
|
||||
new Wuerfel[]{
|
||||
new MockupWuerfel(5),
|
||||
new MockupWuerfel(5),
|
||||
new MockupWuerfel(5)
|
||||
},
|
||||
new Wuerfel[]{
|
||||
new MockupWuerfel(1),
|
||||
new MockupWuerfel(1),
|
||||
new MockupWuerfel(0)
|
||||
},
|
||||
new Wuerfel[]{
|
||||
new MockupWuerfel(-3),
|
||||
new MockupWuerfel(-2),
|
||||
new MockupWuerfel(-4)
|
||||
}
|
||||
};
|
||||
|
||||
int[] sums = arrays.rowSum(dice);
|
||||
assertEquals("Ergebnisarray hat die falsche Größe", 4, sums.length);
|
||||
assertEquals("Erste Zeilensumme nicht korrekt", 11, sums[0]);
|
||||
assertEquals("Zweite Zeilensumme nicht korrekt", 15, sums[1]);
|
||||
assertEquals("Dritte Zeilensumme nicht korrekt", 2, sums[2]);
|
||||
assertEquals("Vierte Zeilensumme nicht korrekt", -9, sums[3]);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user