Compare commits
No commits in common. "93fb940a8c72d3bd6dedbed172f5ead5ebb999c8" and "e59cbb88f1a1d38aaa498c4aef6b9a48788bb0c7" have entirely different histories.
93fb940a8c
...
e59cbb88f1
BIN
bin/test/oop/ch03/chess/ChessTest.class
Normal file
BIN
bin/test/oop/ch03/chess/ChessTest.class
Normal file
Binary file not shown.
BIN
bin/test/oop/ch05/generic/mensa/MensaTest.class
Normal file
BIN
bin/test/oop/ch05/generic/mensa/MensaTest.class
Normal file
Binary file not shown.
BIN
bin/test/oop/ch08/gui/mvc/TestModel.class
Normal file
BIN
bin/test/oop/ch08/gui/mvc/TestModel.class
Normal file
Binary file not shown.
BIN
bin/test/oop/ch09/calc/test/AdHocCalculatorEdgePairTest.class
Normal file
BIN
bin/test/oop/ch09/calc/test/AdHocCalculatorEdgePairTest.class
Normal file
Binary file not shown.
BIN
bin/test/oop/ch09/calc/test/AdHocCalculatorEdgeTest.class
Normal file
BIN
bin/test/oop/ch09/calc/test/AdHocCalculatorEdgeTest.class
Normal file
Binary file not shown.
BIN
bin/test/oop/ch09/calc/test/CalculatorEdgePairTest.class
Normal file
BIN
bin/test/oop/ch09/calc/test/CalculatorEdgePairTest.class
Normal file
Binary file not shown.
BIN
bin/test/oop/ch09/testing/ExceptionTest.class
Normal file
BIN
bin/test/oop/ch09/testing/ExceptionTest.class
Normal file
Binary file not shown.
BIN
bin/test/uebung/uebung04/tournament/TournamentTest.class
Normal file
BIN
bin/test/uebung/uebung04/tournament/TournamentTest.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/uebung07/quantities/plain/TimeUnit.class
Normal file
BIN
bin/uebung07/quantities/plain/TimeUnit.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
168
src/test/oop/ch03/chess/ChessTest.java
Normal file
168
src/test/oop/ch03/chess/ChessTest.java
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
package oop.ch03.chess;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
public class ChessTest {
|
||||||
|
// Das Zeilenende wird auf Windows-Systemen anders codiert als auf Nicht-Windows-Systemen.
|
||||||
|
// Die folgende Zeile ermittelt die aktuelle Codierung.
|
||||||
|
// EOL = "End of Line"
|
||||||
|
private static final String LS = System.lineSeparator();
|
||||||
|
private static final String HE = " 1 2 3 4 5 6 7 8" + LS;
|
||||||
|
private static final String LI = " +---+---+---+---+---+---+---+---+" + LS;
|
||||||
|
private static final String EMP = " | | | | | | | | |" + LS;
|
||||||
|
private static final String WK1 = " | n | | | | | | | |" + LS;
|
||||||
|
private static final String WQ3 = " | | | q | | | | | |" + LS;
|
||||||
|
private static final String CO1 = " | | | n | | N | Q | | |" + LS;
|
||||||
|
private static final String INIT_BOARD = board(EMP, EMP, EMP, EMP, EMP, EMP, EMP, EMP);
|
||||||
|
private static final String WK61_BOARD = board(EMP, EMP, EMP, EMP, EMP, WK1, EMP, EMP);
|
||||||
|
private static final String APP1_BOARD = board(EMP, EMP, EMP, EMP, WQ3, CO1, EMP, EMP);
|
||||||
|
private static final String CHECK_TEXT1 = "white queen at (4, 2)" + LS +
|
||||||
|
" cannot capture black queen at (8, 6)" + LS +
|
||||||
|
" cannot capture white knight at (6, 4)" + LS +
|
||||||
|
"black queen at (8, 6)" + LS +
|
||||||
|
" cannot capture white queen at (4, 2)" + LS +
|
||||||
|
" can capture white knight at (6, 4)" + LS +
|
||||||
|
"white knight at (6, 4)" + LS +
|
||||||
|
" cannot capture white queen at (4, 2)" + LS +
|
||||||
|
" cannot capture black queen at (8, 6)" + LS;
|
||||||
|
private static final String CHECK_TEXT2 = "white knight at (6, 3)" + LS +
|
||||||
|
" cannot capture black knight at (6, 5)" + LS +
|
||||||
|
" cannot capture black queen at (6, 6)" + LS +
|
||||||
|
" cannot capture white queen at (5, 3)" + LS +
|
||||||
|
"black knight at (6, 5)" + LS +
|
||||||
|
" cannot capture white knight at (6, 3)" + LS +
|
||||||
|
" cannot capture black queen at (6, 6)" + LS +
|
||||||
|
" can capture white queen at (5, 3)" + LS +
|
||||||
|
"black queen at (6, 6)" + LS +
|
||||||
|
" cannot capture white knight at (6, 3)" + LS +
|
||||||
|
" cannot capture black knight at (6, 5)" + LS +
|
||||||
|
" cannot capture white queen at (5, 3)" + LS +
|
||||||
|
"white queen at (5, 3)" + LS +
|
||||||
|
" cannot capture white knight at (6, 3)" + LS +
|
||||||
|
" cannot capture black knight at (6, 5)" + LS +
|
||||||
|
" cannot capture black queen at (6, 6)" + LS;
|
||||||
|
|
||||||
|
private static String board(String... s) {
|
||||||
|
if (s.length != 8)
|
||||||
|
throw new IllegalArgumentException("Expected 8, but got " + s.length + " arguments");
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(HE).append(LI);
|
||||||
|
for (int i = 1; i <= 8; i++)
|
||||||
|
sb.append(i).append(s[i - 1]).append(LI);
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Board board;
|
||||||
|
|
||||||
|
private final ByteArrayOutputStream printed = new ByteArrayOutputStream();
|
||||||
|
private final PrintStream printStream = new PrintStream(printed, true);
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
board = new Board();
|
||||||
|
printed.reset();
|
||||||
|
System.setOut(printStream);
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() {
|
||||||
|
printStream.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEmpty() {
|
||||||
|
board.printBoard();
|
||||||
|
assertEquals(INIT_BOARD, printed.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testInvalidPos1() {
|
||||||
|
new Knight(Color.white, board, 0, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class)
|
||||||
|
public void testInvalidPos2() {
|
||||||
|
new Queen(Color.white, board, 0, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testWhiteknight() {
|
||||||
|
final Piece knight = new Knight(Color.white, board, 6, 1);
|
||||||
|
checkPieces(1);
|
||||||
|
assertEquals(knight, board.pieceAt(6, 1));
|
||||||
|
board.printBoard();
|
||||||
|
assertEquals(WK61_BOARD, printed.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test3Pieces() {
|
||||||
|
final Piece queen1 = new Queen(Color.white, board, 4, 2);
|
||||||
|
final Piece queen2 = new Queen(Color.black, board, 8, 6);
|
||||||
|
final Piece knight = new Knight(Color.white, board, 6, 4);
|
||||||
|
Assert.assertFalse(queen1.canCapture(queen2));
|
||||||
|
Assert.assertFalse(queen1.canCapture(knight));
|
||||||
|
Assert.assertFalse(queen2.canCapture(queen1));
|
||||||
|
Assert.assertTrue(queen2.canCapture(knight));
|
||||||
|
Assert.assertFalse(knight.canCapture(queen1));
|
||||||
|
Assert.assertFalse(knight.canCapture(queen2));
|
||||||
|
checkPieces(3);
|
||||||
|
assertEquals(queen1, board.pieceAt(4, 2));
|
||||||
|
assertEquals(queen2, board.pieceAt(8, 6));
|
||||||
|
assertEquals(knight, board.pieceAt(6, 4));
|
||||||
|
board.check();
|
||||||
|
assertEquals(CHECK_TEXT1, printed.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test4Pieces() {
|
||||||
|
final Piece knight1 = new Knight(Color.white, board, 6, 3);
|
||||||
|
final Piece knight2 = new Knight(Color.black, board, 6, 5);
|
||||||
|
final Piece queen1 = new Queen(Color.black, board, 6, 6);
|
||||||
|
final Piece queen2 = new Queen(Color.white, board, 5, 3);
|
||||||
|
checkPieces(4);
|
||||||
|
assertEquals(knight1, board.pieceAt(6, 3));
|
||||||
|
assertEquals(knight2, board.pieceAt(6, 5));
|
||||||
|
assertEquals(queen1, board.pieceAt(6, 6));
|
||||||
|
assertEquals(queen2, board.pieceAt(5, 3));
|
||||||
|
board.printBoard();
|
||||||
|
assertEquals(APP1_BOARD, printed.toString());
|
||||||
|
Assert.assertFalse(knight1.canCapture(knight2));
|
||||||
|
Assert.assertFalse(knight1.canCapture(queen1));
|
||||||
|
Assert.assertFalse(knight1.canCapture(queen2));
|
||||||
|
Assert.assertFalse(knight2.canCapture(knight1));
|
||||||
|
Assert.assertFalse(knight2.canCapture(queen1));
|
||||||
|
Assert.assertTrue(knight2.canCapture(queen2));
|
||||||
|
Assert.assertFalse(queen1.canCapture(knight1));
|
||||||
|
Assert.assertFalse(queen1.canCapture(knight2));
|
||||||
|
Assert.assertFalse(queen1.canCapture(queen2));
|
||||||
|
Assert.assertFalse(queen2.canCapture(knight1));
|
||||||
|
Assert.assertFalse(queen2.canCapture(knight2));
|
||||||
|
Assert.assertFalse(queen2.canCapture(queen1));
|
||||||
|
printed.reset();
|
||||||
|
board.check();
|
||||||
|
assertEquals(CHECK_TEXT2, printed.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkPieces(int expectedNumPieces) {
|
||||||
|
int numPieces = 0;
|
||||||
|
for (int row = 1; row < 9; row++)
|
||||||
|
for (int col = 1; col < 9; col++)
|
||||||
|
if (board.pieceAt(row, col) != null)
|
||||||
|
numPieces++;
|
||||||
|
assertEquals(expectedNumPieces, numPieces);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRunWithErrors() {
|
||||||
|
final Piece rook = new Rook(Color.white, board, 1, 1);
|
||||||
|
assertEquals(rook, board.pieceAt(1, 1));
|
||||||
|
}
|
||||||
|
}
|
80
src/test/oop/ch05/generic/mensa/MensaTest.java
Normal file
80
src/test/oop/ch05/generic/mensa/MensaTest.java
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
package oop.ch05.generic.mensa;
|
||||||
|
|
||||||
|
import oop.ch05.generic.secured.AuthorizationException;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertThrows;
|
||||||
|
|
||||||
|
public class MensaTest {
|
||||||
|
private static final String CONF_ACCOUNT = "33-1298";
|
||||||
|
private static final String OTHER_ACCOUNT = "33-1299";
|
||||||
|
private AccountManagement accountMgt;
|
||||||
|
private VendingMachine vm1;
|
||||||
|
private VendingMachine vm2;
|
||||||
|
private VendingMachine tumVM;
|
||||||
|
private CashPoint unibwMensa;
|
||||||
|
|
||||||
|
private AccountCard conf;
|
||||||
|
private MensaCard frankSmith;
|
||||||
|
private CashCard hansMueller;
|
||||||
|
private CashCard peterSchmidt;
|
||||||
|
private CashCard thomasMayer;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
accountMgt = new AccountManagement(4711, "UniBw admin");
|
||||||
|
|
||||||
|
vm1 = new VendingMachine("left", 4711);
|
||||||
|
vm2 = new VendingMachine("right", 4711);
|
||||||
|
tumVM = new VendingMachine("TUM Mensa", 3141);
|
||||||
|
unibwMensa = new CashPoint("UniBw Mensa", 4711, accountMgt);
|
||||||
|
|
||||||
|
conf = new AccountCard("conference", CONF_ACCOUNT, 42);
|
||||||
|
frankSmith = new CountCard("Frank Smith", Color.gray);
|
||||||
|
hansMueller = new CashCard("Hans Müller", Color.green, 4711);
|
||||||
|
peterSchmidt = new CashCard("Peter Schmidt", Color.green, 4711);
|
||||||
|
thomasMayer = new CashCard("Thomas Mayer", Color.blue, 4711);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testPayment() throws AuthorizationException, RejectedException {
|
||||||
|
vm1.deposit(hansMueller, 10);
|
||||||
|
vm1.deposit(peterSchmidt, 5);
|
||||||
|
vm2.deposit(thomasMayer, 2);
|
||||||
|
assertThrows(AuthorizationException.class, () -> tumVM.deposit(hansMueller, 10));
|
||||||
|
|
||||||
|
assertEquals(15, vm1.getEuros());
|
||||||
|
assertEquals(2, vm2.getEuros());
|
||||||
|
assertEquals(0, tumVM.getEuros());
|
||||||
|
assertEquals(1000, hansMueller.getBalance());
|
||||||
|
assertEquals(500, peterSchmidt.getBalance());
|
||||||
|
assertEquals(200, thomasMayer.getBalance());
|
||||||
|
|
||||||
|
hansMueller.pass(unibwMensa);
|
||||||
|
assertEquals(733, hansMueller.getBalance());
|
||||||
|
assertEquals(1, unibwMensa.getCounter());
|
||||||
|
assertEquals(267, unibwMensa.getCents());
|
||||||
|
|
||||||
|
frankSmith.pass(unibwMensa);
|
||||||
|
assertEquals(0, accountMgt.getAmount(CONF_ACCOUNT));
|
||||||
|
assertThrows(RejectedException.class, () -> conf.pass(unibwMensa));
|
||||||
|
assertThrows(RejectedException.class, () -> thomasMayer.pass(unibwMensa));
|
||||||
|
hansMueller.pass(unibwMensa);
|
||||||
|
hansMueller.pass(unibwMensa);
|
||||||
|
assertEquals(199, hansMueller.getBalance());
|
||||||
|
|
||||||
|
assertThrows(RejectedException.class, () -> hansMueller.pass(unibwMensa));
|
||||||
|
|
||||||
|
accountMgt.deposit(CONF_ACCOUNT, 1000);
|
||||||
|
accountMgt.deposit(OTHER_ACCOUNT, 2000);
|
||||||
|
assertEquals(100000, accountMgt.getAmount(CONF_ACCOUNT));
|
||||||
|
assertEquals(200000, accountMgt.getAmount(OTHER_ACCOUNT));
|
||||||
|
|
||||||
|
conf.pass(unibwMensa);
|
||||||
|
assertEquals(99505, accountMgt.getAmount(CONF_ACCOUNT));
|
||||||
|
assertEquals(200000, accountMgt.getAmount(OTHER_ACCOUNT));
|
||||||
|
assertEquals(5, unibwMensa.getCounter());
|
||||||
|
}
|
||||||
|
}
|
24
src/test/oop/ch08/gui/mvc/TestModel.java
Normal file
24
src/test/oop/ch08/gui/mvc/TestModel.java
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package oop.ch08.gui.mvc;
|
||||||
|
|
||||||
|
import oop.ch08.gui.mvc.model.CounterModel;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
public class TestModel {
|
||||||
|
@Test
|
||||||
|
public void testInitWithZero() {
|
||||||
|
final CounterModel model = new CounterModel();
|
||||||
|
assertEquals(0, model.getCounter());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInc() {
|
||||||
|
final CounterModel model = new CounterModel();
|
||||||
|
int counter = model.getCounter();
|
||||||
|
model.increment();
|
||||||
|
assertEquals(++counter, model.getCounter());
|
||||||
|
model.increment();
|
||||||
|
assertEquals(++counter, model.getCounter());
|
||||||
|
}
|
||||||
|
}
|
2040
src/test/oop/ch09/calc/test/AdHocCalculatorEdgePairTest.java
Normal file
2040
src/test/oop/ch09/calc/test/AdHocCalculatorEdgePairTest.java
Normal file
File diff suppressed because it is too large
Load Diff
280
src/test/oop/ch09/calc/test/AdHocCalculatorEdgeTest.java
Normal file
280
src/test/oop/ch09/calc/test/AdHocCalculatorEdgeTest.java
Normal file
@ -0,0 +1,280 @@
|
|||||||
|
package oop.ch09.calc.test;
|
||||||
|
|
||||||
|
import oop.ch06.calc.AdHocCalculator;
|
||||||
|
import oop.ch06.calc.Ops;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
public class AdHocCalculatorEdgeTest {
|
||||||
|
private AdHocCalculator calc;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
calc = new AdHocCalculator();
|
||||||
|
calc.digit(6);
|
||||||
|
calc.binOp(Ops.MULT);
|
||||||
|
calc.digit(7);
|
||||||
|
calc.eval();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test0() {
|
||||||
|
calc.clear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
calc.digit(6);
|
||||||
|
assertEquals(6.0, calc.getValue(), 1e-10);
|
||||||
|
calc.digit(2);
|
||||||
|
assertEquals(62.0, calc.getValue(), 1e-10);
|
||||||
|
calc.dot();
|
||||||
|
assertEquals(62.0, calc.getValue(), 1e-10);
|
||||||
|
calc.clear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
calc.unOp(Ops.EXP);
|
||||||
|
assertEquals(1.0, calc.getValue(), 1e-10);
|
||||||
|
calc.allClear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
calc.binOp(Ops.MINUS);
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
calc.eval();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
calc.eval();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
calc.dot();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
calc.allClear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test1() {
|
||||||
|
calc.binOp(Ops.DIV);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.unOp(Ops.SQRT);
|
||||||
|
assertEquals(6.48074069840786, calc.getValue(), 1e-10);
|
||||||
|
calc.unOp(Ops.SQRT);
|
||||||
|
assertEquals(2.5457298950218306, calc.getValue(), 1e-10);
|
||||||
|
calc.digit(8);
|
||||||
|
assertEquals(8.0, calc.getValue(), 1e-10);
|
||||||
|
calc.eval();
|
||||||
|
assertEquals(5.25, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test2() {
|
||||||
|
calc.binOp(Ops.PLUS);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.binOp(Ops.DIV);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.dot();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
calc.allClear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test3() {
|
||||||
|
calc.binOp(Ops.MULT);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.allClear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test4() {
|
||||||
|
calc.binOp(Ops.PLUS);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.clear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
calc.digit(5);
|
||||||
|
assertEquals(5.0, calc.getValue(), 1e-10);
|
||||||
|
calc.clear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test5() {
|
||||||
|
calc.digit(6);
|
||||||
|
assertEquals(6.0, calc.getValue(), 1e-10);
|
||||||
|
calc.allClear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test6() {
|
||||||
|
calc.digit(3);
|
||||||
|
assertEquals(3.0, calc.getValue(), 1e-10);
|
||||||
|
calc.binOp(Ops.DIV);
|
||||||
|
assertEquals(3.0, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test7() {
|
||||||
|
calc.digit(7);
|
||||||
|
assertEquals(7.0, calc.getValue(), 1e-10);
|
||||||
|
calc.clear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test8() {
|
||||||
|
calc.digit(9);
|
||||||
|
assertEquals(9.0, calc.getValue(), 1e-10);
|
||||||
|
calc.eval();
|
||||||
|
assertEquals(9.0, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test9() {
|
||||||
|
calc.digit(5);
|
||||||
|
assertEquals(5.0, calc.getValue(), 1e-10);
|
||||||
|
calc.unOp(Ops.CHANGE_SIGN);
|
||||||
|
assertEquals(-5.0, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test11() {
|
||||||
|
calc.dot();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
calc.binOp(Ops.PLUS);
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test12() {
|
||||||
|
calc.dot();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
calc.digit(2);
|
||||||
|
assertEquals(0.2, calc.getValue(), 1e-10);
|
||||||
|
calc.unOp(Ops.EXP);
|
||||||
|
assertEquals(1.2214027581601699, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test13() {
|
||||||
|
calc.dot();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
calc.eval();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test14() {
|
||||||
|
calc.binOp(Ops.DIV);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.unOp(Ops.SQRT);
|
||||||
|
assertEquals(6.48074069840786, calc.getValue(), 1e-10);
|
||||||
|
calc.clear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test15() {
|
||||||
|
calc.binOp(Ops.MINUS);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.unOp(Ops.EXP);
|
||||||
|
assertEquals(1.73927494152050099E18, calc.getValue(), 1e-10);
|
||||||
|
calc.eval();
|
||||||
|
assertEquals(-1.73927494152050099E18, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test16() {
|
||||||
|
calc.binOp(Ops.MINUS);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.unOp(Ops.EXP);
|
||||||
|
assertEquals(1.73927494152050099E18, calc.getValue(), 1e-10);
|
||||||
|
calc.binOp(Ops.MINUS);
|
||||||
|
assertEquals(-1.73927494152050099E18, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test17() {
|
||||||
|
calc.binOp(Ops.DIV);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.unOp(Ops.EXP);
|
||||||
|
assertEquals(1.73927494152050099E18, calc.getValue(), 1e-10);
|
||||||
|
calc.allClear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test18() {
|
||||||
|
calc.binOp(Ops.DIV);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.unOp(Ops.SQRT);
|
||||||
|
assertEquals(6.48074069840786, calc.getValue(), 1e-10);
|
||||||
|
calc.dot();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
calc.binOp(Ops.PLUS);
|
||||||
|
assertTrue(Double.isNaN(calc.getValue()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test19() {
|
||||||
|
calc.binOp(Ops.DIV);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.digit(2);
|
||||||
|
assertEquals(2.0, calc.getValue(), 1e-10);
|
||||||
|
calc.digit(5);
|
||||||
|
assertEquals(25.0, calc.getValue(), 1e-10);
|
||||||
|
calc.unOp(Ops.CHANGE_SIGN);
|
||||||
|
assertEquals(-25.0, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test20() {
|
||||||
|
calc.binOp(Ops.PLUS);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.digit(9);
|
||||||
|
assertEquals(9.0, calc.getValue(), 1e-10);
|
||||||
|
calc.binOp(Ops.PLUS);
|
||||||
|
assertEquals(51.0, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test21() {
|
||||||
|
calc.binOp(Ops.MULT);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.digit(7);
|
||||||
|
assertEquals(7.0, calc.getValue(), 1e-10);
|
||||||
|
calc.dot();
|
||||||
|
assertEquals(7.0, calc.getValue(), 1e-10);
|
||||||
|
calc.unOp(Ops.SQRT);
|
||||||
|
assertEquals(2.6457513110645907, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test22() {
|
||||||
|
calc.binOp(Ops.PLUS);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.digit(3);
|
||||||
|
assertEquals(3.0, calc.getValue(), 1e-10);
|
||||||
|
calc.allClear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test23() {
|
||||||
|
calc.binOp(Ops.MULT);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.dot();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
calc.digit(3);
|
||||||
|
assertEquals(0.3, calc.getValue(), 1e-10);
|
||||||
|
calc.clear();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-20);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test24() {
|
||||||
|
calc.binOp(Ops.PLUS);
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
calc.dot();
|
||||||
|
assertEquals(0.0, calc.getValue(), 1e-10);
|
||||||
|
calc.eval();
|
||||||
|
assertEquals(42.0, calc.getValue(), 1e-10);
|
||||||
|
}
|
||||||
|
}
|
2040
src/test/oop/ch09/calc/test/CalculatorEdgePairTest.java
Normal file
2040
src/test/oop/ch09/calc/test/CalculatorEdgePairTest.java
Normal file
File diff suppressed because it is too large
Load Diff
34
src/test/oop/ch09/testing/ExceptionTest.java
Normal file
34
src/test/oop/ch09/testing/ExceptionTest.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package oop.ch09.testing;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
|
public class ExceptionTest {
|
||||||
|
@Test
|
||||||
|
public void testDivZero1() {
|
||||||
|
int zero = 0;
|
||||||
|
int result = 4 / zero;
|
||||||
|
assertTrue(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDivZero2() {
|
||||||
|
int zero = 0;
|
||||||
|
try {
|
||||||
|
int result = 4 / zero;
|
||||||
|
fail("ArithmeticException kam nicht");
|
||||||
|
}
|
||||||
|
catch (ArithmeticException ex) {
|
||||||
|
assertEquals("/ by zero", ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = ArithmeticException.class)
|
||||||
|
public void testDivZero2b() {
|
||||||
|
int zero = 0;
|
||||||
|
int result = 4 / zero;
|
||||||
|
}
|
||||||
|
}
|
134
src/test/uebung/uebung04/tournament/TournamentTest.java
Normal file
134
src/test/uebung/uebung04/tournament/TournamentTest.java
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
package test.uebung.uebung04.tournament;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertThrows;
|
||||||
|
|
||||||
|
public class TournamentTest {
|
||||||
|
|
||||||
|
private static final String BORGHOFF = "Prof. Borghoff";
|
||||||
|
private static final String HOMMEL = "Prof. Hommel";
|
||||||
|
private static final String KOCH = "Prof. Koch";
|
||||||
|
private static final String MINAS = "Prof. Minas";
|
||||||
|
private static final String BUCHENRIEDER = "Prof. Buchenrieder";
|
||||||
|
private static final String DREO = "Prof. Dreo";
|
||||||
|
private static final String ROSE = "Prof. Rose";
|
||||||
|
private static final String SIEGLE = "Prof. Siegle";
|
||||||
|
private static final String TEEGE = "Prof. Teege";
|
||||||
|
private static final Set<String> SET1 = Set.of(BORGHOFF, HOMMEL, KOCH, MINAS, BUCHENRIEDER, DREO, ROSE, SIEGLE, TEEGE);
|
||||||
|
private static final Set<String> SET2 = Set.of(BORGHOFF, MINAS, SIEGLE, HOMMEL, DREO);
|
||||||
|
private static final Set<String> SET3 = Set.of(BORGHOFF, MINAS, SIEGLE);
|
||||||
|
private static final Set<String> SET4 = Set.of(MINAS, SIEGLE);
|
||||||
|
private static final Set<String> SET5 = Set.of(MINAS);
|
||||||
|
|
||||||
|
private Tournament tournament;
|
||||||
|
private Game r1s1;
|
||||||
|
private Game r1s2;
|
||||||
|
private Game r1s3;
|
||||||
|
private Game r1s4;
|
||||||
|
private Game r2s1;
|
||||||
|
private Game r2s2;
|
||||||
|
private Game r3s1;
|
||||||
|
private Game r4s1;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
r1s1 = new SeededGame(HOMMEL, KOCH);
|
||||||
|
r1s2 = new SeededGame(MINAS, BUCHENRIEDER);
|
||||||
|
r1s3 = new SeededGame(DREO, ROSE);
|
||||||
|
r1s4 = new SeededGame(SIEGLE, TEEGE);
|
||||||
|
r2s1 = new ByeGame(BORGHOFF, r1s1);
|
||||||
|
r2s2 = new OrdinaryGame(r1s2, r1s3);
|
||||||
|
r3s1 = new OrdinaryGame(r2s1, r2s2);
|
||||||
|
r4s1 = new OrdinaryGame(r3s1, r1s4);
|
||||||
|
tournament = new Tournament("UniBw Sportschießen", r4s1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBeforeFirstRound() {
|
||||||
|
assertEquals(SET1, asSet(tournament.getAllPlayers()));
|
||||||
|
assertEquals(SET1, asSet(tournament.getRemainingPlayers()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFirstRound() {
|
||||||
|
r1s1.setWinner(HOMMEL);
|
||||||
|
r1s2.setWinner(MINAS);
|
||||||
|
r1s3.setWinner(DREO);
|
||||||
|
r1s4.setWinner(SIEGLE);
|
||||||
|
assertEquals(SET1, asSet(tournament.getAllPlayers()));
|
||||||
|
assertEquals(SET2, asSet(tournament.getRemainingPlayers()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSecondRound() {
|
||||||
|
r1s1.setWinner(HOMMEL);
|
||||||
|
r1s2.setWinner(MINAS);
|
||||||
|
r1s3.setWinner(DREO);
|
||||||
|
r1s4.setWinner(SIEGLE);
|
||||||
|
r2s1.setWinner(BORGHOFF);
|
||||||
|
r2s2.setWinner(MINAS);
|
||||||
|
assertEquals(SET1, asSet(tournament.getAllPlayers()));
|
||||||
|
assertEquals(SET3, asSet(tournament.getRemainingPlayers()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testThirdRound() {
|
||||||
|
r1s1.setWinner(HOMMEL);
|
||||||
|
r1s2.setWinner(MINAS);
|
||||||
|
r1s3.setWinner(DREO);
|
||||||
|
r1s4.setWinner(SIEGLE);
|
||||||
|
r2s1.setWinner(BORGHOFF);
|
||||||
|
r2s2.setWinner(MINAS);
|
||||||
|
r3s1.setWinner(MINAS);
|
||||||
|
assertEquals(SET1, asSet(tournament.getAllPlayers()));
|
||||||
|
assertEquals(SET4, asSet(tournament.getRemainingPlayers()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCompleteTournament() {
|
||||||
|
r1s1.setWinner(HOMMEL);
|
||||||
|
r1s2.setWinner(MINAS);
|
||||||
|
r1s3.setWinner(DREO);
|
||||||
|
r1s4.setWinner(SIEGLE);
|
||||||
|
r2s1.setWinner(BORGHOFF);
|
||||||
|
r2s2.setWinner(MINAS);
|
||||||
|
r3s1.setWinner(MINAS);
|
||||||
|
r4s1.setWinner(MINAS);
|
||||||
|
assertEquals(SET1, asSet(tournament.getAllPlayers()));
|
||||||
|
assertEquals(SET5, asSet(tournament.getRemainingPlayers()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testException() {
|
||||||
|
r1s1.setWinner(HOMMEL);
|
||||||
|
r1s2.setWinner(MINAS);
|
||||||
|
r1s3.setWinner(DREO);
|
||||||
|
r1s4.setWinner(SIEGLE);
|
||||||
|
r2s1.setWinner(BORGHOFF);
|
||||||
|
r2s2.setWinner(MINAS);
|
||||||
|
r3s1.setWinner(MINAS);
|
||||||
|
assertThrows(IllegalArgumentException.class, () -> r4s1.setWinner(BUCHENRIEDER));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalStateException.class)
|
||||||
|
public void testException2() {
|
||||||
|
r4s1.setWinner(MINAS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testException3() {
|
||||||
|
r1s1.setWinner(HOMMEL);
|
||||||
|
assertThrows(IllegalStateException.class, () -> r1s1.setWinner(HOMMEL));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static <T> Set<T> asSet(Collection<T> collection) {
|
||||||
|
return new HashSet<>(collection);
|
||||||
|
}
|
||||||
|
}
|
@ -1,18 +1,13 @@
|
|||||||
package test.uebung.uebung05.logistics;
|
package logistics;
|
||||||
|
|
||||||
import uebung05.logistics.Helicopter;
|
|
||||||
import uebung05.logistics.Manager;
|
|
||||||
import uebung05.logistics.Tank;
|
|
||||||
import uebung05.logistics.material.BulletBelts;
|
|
||||||
import uebung05.logistics.material.Grease;
|
|
||||||
import uebung05.logistics.material.LiterDiesel;
|
|
||||||
import uebung05.logistics.material.MetGallonsKerosene;
|
|
||||||
import uebung05.logistics.material.Oil;
|
|
||||||
import uebung05.logistics.material.RocketPods;
|
|
||||||
import uebung05.logistics.material.ShellBatches;
|
|
||||||
import uebung05.logistics.quantities.NeedCollector;
|
|
||||||
|
|
||||||
|
|
||||||
|
import logistics.material.BulletBelts;
|
||||||
|
import logistics.material.Grease;
|
||||||
|
import logistics.material.LiterDiesel;
|
||||||
|
import logistics.material.MetGallonsKerosene;
|
||||||
|
import logistics.material.Oil;
|
||||||
|
import logistics.material.RocketPods;
|
||||||
|
import logistics.material.ShellBatches;
|
||||||
|
import logistics.quantities.NeedCollector;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package test.uebung.uebung05.logistics.storage;
|
package test.uebung.uebung05.logistics.storage;
|
||||||
|
|
||||||
import uebung05.logistics.material.Oil;
|
import uebung05.*;
|
||||||
import uebung05.logistics.storage.IntStorage;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@ -1,26 +1,20 @@
|
|||||||
package uebung04;
|
package uebung04;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
public class ByeGame extends Game{
|
public class ByeGame extends Game{
|
||||||
|
|
||||||
private String player1;
|
private String player1;
|
||||||
private String player2;
|
|
||||||
|
|
||||||
|
|
||||||
public ByeGame(String player1, String player2){
|
public ByeGame(String player1, Game player2){
|
||||||
this.player1 = player1;
|
this.player1 = player1;
|
||||||
this.player2 = player2;
|
this.player2 = player2;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPlayer1(){return player1;}
|
public String getPlayer1(){return player1;}
|
||||||
public String getPlayer2(){return player2;}
|
|
||||||
|
|
||||||
@Override
|
public ??? getPlayer2(){
|
||||||
public ArrayList<String> getAllPlayers() {
|
return player2.getAllPlayers();
|
||||||
// TODO Auto-generated method stub
|
|
||||||
throw new UnsupportedOperationException("Unimplemented method 'getAllPlayers'");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ public class OrdinaryGame extends Game{
|
|||||||
private final int id;
|
private final int id;
|
||||||
|
|
||||||
|
|
||||||
public OrdinaryGame(String player1, String player2){
|
public OrdinaryGame(Game player1, Game player2){
|
||||||
this.player1 = player1;
|
this.player1 = player1;
|
||||||
this.player2 = player2;
|
this.player2 = player2;
|
||||||
|
|
||||||
@ -15,16 +15,18 @@ public class OrdinaryGame extends Game{
|
|||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPlayer1(){
|
public ArrayList<String> getPlayer1(){
|
||||||
return null;
|
return player1.getAllPlayers();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPlayer2(){
|
public ArrayList<String> getPlayer2(){
|
||||||
return null;
|
return player2.getAllPlayers();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<String> getAllPlayers(){
|
public ArrayList<String> getAllPlayers(){
|
||||||
return null;
|
ArrayList<String> rtn = player1.getAllPlayers();
|
||||||
|
rtn.addAll(player2.getAllPlayers());
|
||||||
|
return rtn;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package uebung05.logistics;
|
package logistics;
|
||||||
|
|
||||||
import uebung05.logistics.material.BulletBelts;
|
import logistics.material.BulletBelts;
|
||||||
import uebung05.logistics.material.LiterDiesel;
|
import logistics.material.LiterDiesel;
|
||||||
import uebung05.logistics.material.RocketPods;
|
import logistics.material.RocketPods;
|
||||||
|
|
||||||
class Demo {
|
class demo {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
Manager ceo = new Manager();
|
Manager ceo = new Manager();
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package uebung05.logistics;
|
package logistics;
|
||||||
|
|
||||||
import uebung05.logistics.material.BulletBelts;
|
import logistics.material.BulletBelts;
|
||||||
import uebung05.logistics.material.MetGallonsKerosene;
|
import logistics.material.MetGallonsKerosene;
|
||||||
import uebung05.logistics.material.RocketPods;
|
import logistics.material.RocketPods;
|
||||||
import uebung05.logistics.quantities.FloatUnit;
|
import logistics.quantities.FloatUnit;
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
import uebung05.logistics.quantities.NeedCollector;
|
import logistics.quantities.NeedCollector;
|
||||||
import uebung05.logistics.storage.FloatStorage;
|
import logistics.storage.FloatStorage;
|
||||||
import uebung05.logistics.storage.IntStorage;
|
import logistics.storage.IntStorage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Helicopter class represents a helicopter in the logistics system.
|
* The Helicopter class represents a helicopter in the logistics system.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package uebung05.logistics;
|
package logistics;
|
||||||
|
|
||||||
import uebung05.logistics.quantities.FloatUnit;
|
import logistics.quantities.FloatUnit;
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
import uebung05.logistics.quantities.NeedCollector;
|
import logistics.quantities.NeedCollector;
|
||||||
import uebung05.logistics.quantities.Unit;
|
import logistics.quantities.Unit;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -63,7 +63,7 @@ public class Manager {
|
|||||||
*
|
*
|
||||||
* @return The NeedCollector object containing the needs of all the vehicles
|
* @return The NeedCollector object containing the needs of all the vehicles
|
||||||
*/
|
*/
|
||||||
public NeedCollector collectNeeds() {
|
NeedCollector collectNeeds() {
|
||||||
NeedCollector collector = new NeedCollector();
|
NeedCollector collector = new NeedCollector();
|
||||||
for (Vehicle vehicle : vehicles) {
|
for (Vehicle vehicle : vehicles) {
|
||||||
vehicle.reportNeeds(collector);
|
vehicle.reportNeeds(collector);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package uebung05.logistics;
|
package logistics;
|
||||||
|
|
||||||
import uebung05.logistics.quantities.FloatUnit;
|
import logistics.quantities.FloatUnit;
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package uebung05.logistics;
|
package logistics;
|
||||||
|
|
||||||
import uebung05.logistics.material.BulletBelts;
|
import logistics.material.BulletBelts;
|
||||||
import uebung05.logistics.material.LiterDiesel;
|
import logistics.material.LiterDiesel;
|
||||||
import uebung05.logistics.material.ShellBatches;
|
import logistics.material.ShellBatches;
|
||||||
import uebung05.logistics.quantities.FloatUnit;
|
import logistics.quantities.FloatUnit;
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
import uebung05.logistics.quantities.NeedCollector;
|
import logistics.quantities.NeedCollector;
|
||||||
import uebung05.logistics.storage.FloatStorage;
|
import logistics.storage.FloatStorage;
|
||||||
import uebung05.logistics.storage.IntStorage;
|
import logistics.storage.IntStorage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Tank class represents a tank in the logistics system.
|
* The Tank class represents a tank in the logistics system.
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package uebung05.logistics;
|
package logistics;
|
||||||
|
|
||||||
import uebung05.logistics.material.BulletBelts;
|
import logistics.material.BulletBelts;
|
||||||
import uebung05.logistics.material.LiterDiesel;
|
import logistics.material.LiterDiesel;
|
||||||
import uebung05.logistics.quantities.FloatUnit;
|
import logistics.quantities.FloatUnit;
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
import uebung05.logistics.quantities.NeedCollector;
|
import logistics.quantities.NeedCollector;
|
||||||
import uebung05.logistics.storage.FloatStorage;
|
import logistics.storage.FloatStorage;
|
||||||
import uebung05.logistics.storage.IntStorage;
|
import logistics.storage.IntStorage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Truck class represents a truck in the logistics system.
|
* The Truck class represents a truck in the logistics system.
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package uebung05.logistics;
|
package logistics;
|
||||||
|
|
||||||
import uebung05.logistics.material.Grease;
|
import logistics.material.Grease;
|
||||||
import uebung05.logistics.material.Oil;
|
import logistics.material.Oil;
|
||||||
import uebung05.logistics.quantities.FloatUnit;
|
import logistics.quantities.FloatUnit;
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
import uebung05.logistics.quantities.NeedCollector;
|
import logistics.quantities.NeedCollector;
|
||||||
import uebung05.logistics.storage.IntStorage;
|
import logistics.storage.IntStorage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Vehicle abstract class represents a vehicle in the logistics system.
|
* The Vehicle abstract class represents a vehicle in the logistics system.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package uebung05.logistics.material;
|
package logistics.material;
|
||||||
|
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The BulletBelts class represents a unit of measurement for 7.62 bullets.
|
* The BulletBelts class represents a unit of measurement for 7.62 bullets.
|
||||||
@ -11,7 +11,7 @@ import uebung05.logistics.quantities.IntUnit;
|
|||||||
*/
|
*/
|
||||||
public class BulletBelts implements IntUnit {
|
public class BulletBelts implements IntUnit {
|
||||||
|
|
||||||
public static BulletBelts INSTANCE;
|
private static BulletBelts INSTANCE;
|
||||||
|
|
||||||
private BulletBelts() {}
|
private BulletBelts() {}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package uebung05.logistics.material;
|
package logistics.material;
|
||||||
|
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Grease class represents a unit of measurement for grease.
|
* The Grease class represents a unit of measurement for grease.
|
||||||
@ -11,7 +11,7 @@ import uebung05.logistics.quantities.IntUnit;
|
|||||||
*/
|
*/
|
||||||
public class Grease implements IntUnit {
|
public class Grease implements IntUnit {
|
||||||
|
|
||||||
public static Grease INSTANCE;
|
private static Grease INSTANCE;
|
||||||
|
|
||||||
private Grease() {}
|
private Grease() {}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package uebung05.logistics.material;
|
package logistics.material;
|
||||||
|
|
||||||
import uebung05.logistics.quantities.FloatUnit;
|
import logistics.quantities.FloatUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The LiterDiesel class represents a unit of measurement for diesel fuel.
|
* The LiterDiesel class represents a unit of measurement for diesel fuel.
|
||||||
@ -11,7 +11,7 @@ import uebung05.logistics.quantities.FloatUnit;
|
|||||||
*/
|
*/
|
||||||
public class LiterDiesel implements FloatUnit {
|
public class LiterDiesel implements FloatUnit {
|
||||||
|
|
||||||
public static LiterDiesel INSTANCE;
|
private static LiterDiesel INSTANCE;
|
||||||
|
|
||||||
private LiterDiesel() {}
|
private LiterDiesel() {}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package uebung05.logistics.material;
|
package logistics.material;
|
||||||
|
|
||||||
import uebung05.logistics.quantities.FloatUnit;
|
import logistics.quantities.FloatUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The MetGallonsKerosene class represents a unit of measurement for kerosene.
|
* The MetGallonsKerosene class represents a unit of measurement for kerosene.
|
||||||
@ -11,7 +11,7 @@ import uebung05.logistics.quantities.FloatUnit;
|
|||||||
*/
|
*/
|
||||||
public class MetGallonsKerosene implements FloatUnit {
|
public class MetGallonsKerosene implements FloatUnit {
|
||||||
|
|
||||||
public static MetGallonsKerosene INSTANCE;
|
private static MetGallonsKerosene INSTANCE;
|
||||||
|
|
||||||
private MetGallonsKerosene() {}
|
private MetGallonsKerosene() {}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package uebung05.logistics.material;
|
package logistics.material;
|
||||||
|
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Oil class represents a unit of measurement for oil.
|
* The Oil class represents a unit of measurement for oil.
|
||||||
@ -11,7 +11,7 @@ import uebung05.logistics.quantities.IntUnit;
|
|||||||
*/
|
*/
|
||||||
public class Oil implements IntUnit {
|
public class Oil implements IntUnit {
|
||||||
|
|
||||||
public static Oil INSTANCE;
|
private static Oil INSTANCE;
|
||||||
|
|
||||||
private Oil() {}
|
private Oil() {}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package uebung05.logistics.material;
|
package logistics.material;
|
||||||
|
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The RocketPods class represents a unit of measurement for 70mm rocket pods.
|
* The RocketPods class represents a unit of measurement for 70mm rocket pods.
|
||||||
@ -11,7 +11,7 @@ import uebung05.logistics.quantities.IntUnit;
|
|||||||
*/
|
*/
|
||||||
public class RocketPods implements IntUnit {
|
public class RocketPods implements IntUnit {
|
||||||
|
|
||||||
public static RocketPods INSTANCE;
|
private static RocketPods INSTANCE;
|
||||||
|
|
||||||
private RocketPods() {}
|
private RocketPods() {}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package uebung05.logistics.material;
|
package logistics.material;
|
||||||
|
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The ShellBatches class represents a unit of measurement for 120mm shell batches.
|
* The ShellBatches class represents a unit of measurement for 120mm shell batches.
|
||||||
@ -11,7 +11,7 @@ import uebung05.logistics.quantities.IntUnit;
|
|||||||
*/
|
*/
|
||||||
public class ShellBatches implements IntUnit {
|
public class ShellBatches implements IntUnit {
|
||||||
|
|
||||||
public static ShellBatches INSTANCE;
|
private static ShellBatches INSTANCE;
|
||||||
|
|
||||||
private ShellBatches() {}
|
private ShellBatches() {}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package uebung05.logistics.quantities;
|
package logistics.quantities;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Nikolaus Köberlein
|
* @author Nikolaus Köberlein
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package uebung05.logistics.quantities;
|
package logistics.quantities;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Nikolaus Köberlein
|
* @author Nikolaus Köberlein
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package uebung05.logistics.quantities;
|
package logistics.quantities;
|
||||||
|
|
||||||
import uebung05.logistics.material.BulletBelts;
|
import logistics.material.BulletBelts;
|
||||||
import uebung05.logistics.material.Grease;
|
import logistics.material.Grease;
|
||||||
import uebung05.logistics.material.LiterDiesel;
|
import logistics.material.LiterDiesel;
|
||||||
import uebung05.logistics.material.MetGallonsKerosene;
|
import logistics.material.MetGallonsKerosene;
|
||||||
import uebung05.logistics.material.Oil;
|
import logistics.material.Oil;
|
||||||
import uebung05.logistics.material.RocketPods;
|
import logistics.material.RocketPods;
|
||||||
import uebung05.logistics.material.ShellBatches;
|
import logistics.material.ShellBatches;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package uebung05.logistics.quantities;
|
package logistics.quantities;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Nikolaus Köberlein
|
* @author Nikolaus Köberlein
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package uebung05.logistics.storage;
|
package logistics.storage;
|
||||||
|
|
||||||
import uebung05.logistics.quantities.FloatUnit;
|
import logistics.quantities.FloatUnit;
|
||||||
import uebung05.logistics.quantities.NeedCollector;
|
import logistics.quantities.NeedCollector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The FloatStorage class represents a floating-point storage for a specific FloatUnit object.
|
* The FloatStorage class represents a floating-point storage for a specific FloatUnit object.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package uebung05.logistics.storage;
|
package logistics.storage;
|
||||||
|
|
||||||
import uebung05.logistics.quantities.IntUnit;
|
import logistics.quantities.IntUnit;
|
||||||
import uebung05.logistics.quantities.NeedCollector;
|
import logistics.quantities.NeedCollector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The IntStorage class represents an integer storage for a specific IntUnit object.
|
* The IntStorage class represents an integer storage for a specific IntUnit object.
|
||||||
|
5
src/uebung07/quantities/plain/TimeUnit.java
Normal file
5
src/uebung07/quantities/plain/TimeUnit.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package uebung07.quantities.plain;
|
||||||
|
|
||||||
|
public class TimeUnit extends Unit{
|
||||||
|
|
||||||
|
}
|
@ -9,7 +9,7 @@ import uebung09.iterator.Array2dIterator;
|
|||||||
|
|
||||||
public class Board implements Iterable<Piece>{
|
public class Board implements Iterable<Piece>{
|
||||||
private final Piece[][] field = new Piece[8][8];
|
private final Piece[][] field = new Piece[8][8];
|
||||||
private final List<Piece> pieces = new ArrayList<>();
|
//private final List<Piece> pieces = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
void add(Piece piece) {
|
void add(Piece piece) {
|
||||||
@ -42,7 +42,7 @@ public class Board implements Iterable<Piece>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void check() {
|
public void check() {
|
||||||
for (Piece p1 : pieces) {
|
for (Piece p1 : iterator()) {
|
||||||
System.out.println(p1.toString());
|
System.out.println(p1.toString());
|
||||||
for (Piece p2 : pieces)
|
for (Piece p2 : pieces)
|
||||||
if (p1 != p2)
|
if (p1 != p2)
|
||||||
|
@ -1,73 +1,39 @@
|
|||||||
package uebung09.iterator;
|
package uebung09.iterator;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
public class Array2dIterator<T> implements Iterator<T>{
|
public class Array2dIterator<T> implements Iterator<T>{
|
||||||
|
|
||||||
private T[][] array;
|
private T[][] array;
|
||||||
private ArrayList<T> list;
|
|
||||||
private int index = 0;
|
private int index = 0;
|
||||||
|
|
||||||
public Array2dIterator(T[][] array) {
|
public Array2dIterator(T[][] array) {
|
||||||
this.array = array;
|
this.array = array;
|
||||||
list = flatten();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasNext() {
|
public boolean hasNext() {
|
||||||
// for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
// for (int j = 0; j < array[i].length; j++) {
|
for (int j = 0; j < array[i].length; j++) {
|
||||||
// if (array[i][j+1] != null) {
|
if (array[i][j+1] != null) {
|
||||||
// return true;
|
return true;
|
||||||
// }
|
}
|
||||||
// if (array[i+1][j] != null) {
|
if (array[i+1][j] != null) {
|
||||||
// return true;
|
return true;
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// }
|
|
||||||
// return false;
|
|
||||||
|
|
||||||
|
|
||||||
if (list.get(index)) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
|
||||||
// return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public T next() {
|
public T next() {
|
||||||
// for (int i = 0; i < array.length; i++) {
|
|
||||||
// for (int j = 0; j < array[i].length; j++) {
|
|
||||||
// if (array[i][j+1] != null) {
|
|
||||||
// return array[i][j+1];
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }
|
|
||||||
// if (array[i+1][0] != null) {
|
|
||||||
// return array[i+1][0];
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return null;
|
|
||||||
|
|
||||||
|
|
||||||
return list.get(index++);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private ArrayList<T> flatten(){
|
|
||||||
ArrayList<T> list = new ArrayList<>();
|
|
||||||
|
|
||||||
for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
for (int j = 0; j < array[i].length; j++) {
|
for (int j = 0; j < array[i].length; j++) {
|
||||||
list.add(array[i][j]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
return list;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
package uebung09.iterator;
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class SkipNullIterator<T> implements Iterator<T>{
|
|
||||||
|
|
||||||
public SkipNullIterator(Iterator i){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasNext() {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
throw new UnsupportedOperationException("Unimplemented method 'hasNext'");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public T next() {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
throw new UnsupportedOperationException("Unimplemented method 'next'");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user