package solution.u11;
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
/**
* Assignment 11, lecture "Algorithmen und Datenstrukturen", WS 2010.
*
*
* Eine kurze Anleitung, wie man die Testklasse in Eclipse einbindet:
*
* - Testklasse in euer Projekt (zu den .java Dateien) kopieren
* - Package Deklaration oben anpassen
* - Rechtsklick auf euer Projekt
* - Properties auswählen
* - Java Build Path auswählen
* - auf den Reiter Libraries gehen
* - add Library
* - JUnit auswählen
* - JUnit 4 und bestätigen
*
* Ausführen dann mit "Run as ... " -> "JUnit Test"
*
* @author Martin Mader, University Konstanz
*
*/
public class KnapsackTestU {
/**
* test empty case
*/
@Test
public void testEmpty() {
int[] w = {};
int[] v = {};
boolean[] c = new boolean[0];
Knapsack k = new Knapsack();
int maxVal = k.pack(w, v, 0, c);
assertEquals(0, maxVal);
assertEquals("[]", Arrays.toString(c));
}
/**
* test empty case
*/
@Test
public void testCase1() {
int[] w = { 2, 3, 4, 5 };
int[] v = { 3, 4, 5, 6 };
boolean[] c = new boolean[4];
Knapsack k = new Knapsack();
int maxVal = k.pack(w, v, 5, c);
assertEquals(7, maxVal);
assertEquals("[true, true, false, false]", Arrays.toString(c));
}
/**
* test empty case
*/
@Test
public void testCase2() {
int[] w2 = { 3, 5, 8, 4, 10 };
int[] v2 = { 2, 4, 5, 3, 9 };
boolean[] c = new boolean[5];
Knapsack k = new Knapsack();
int maxVal = k.pack(w2, v2, 20, c);
assertEquals(16, maxVal);
assertEquals("[false, true, false, true, true]", Arrays.toString(c));
}
}