@Test public void thereIsAFirstColor() { ColorManager manager = new ColorManager(NR_COLORS); System.out.println(manager.firstColor()); Assert.assertNotNull(manager.firstColor()); }
@Test public void noColorHasNoNextColor() { ColorManager manager = new ColorManager(NR_COLORS, Color::new); Assert.assertNull(manager.nextColor(Color.none)); } }
@Test public void noColorHasNoNextColor() { ColorManager manager = new ColorManager(NR_COLORS); Assert.assertNull(manager.nextColor(Color.none)); } }
@Test public void thereIsAFirstColor() { ColorManager manager = new ColorManager(NR_COLORS, Color::new); Assert.assertNotNull(manager.firstColor()); }
@Test public void keepsGettingTillItBleedsOut() { int numberOfGuesses = 0; ColorManager manager = new ColorManager(NR_COLORS, Color::new); Table table = new Table(NR_COLUMNS, manager); Guesser guesser = new UniqueGuesser(table); while (guesser.guess() != Guess.none) { numberOfGuesses++; } } }
@Test public void keepsGettingTillItBleedsOut(){ int numberOfGuesses = 0; ColorManager manager = new ColorManager(NR_COLORS); Table table = new Table(NR_COLUMNS, manager); Guesser guesser = new UniqueGuesser(table); while (guesser.guess() != Row.none) { numberOfGuesses++; } } }
private void createTestGame(){ final int nrColors = 6; ColorManager manager = new ColorManager(nrColors); final int nrColumns = 4; Table table = new Table(nrColumns, manager); secret = new Color[nrColumns]; Color color = manager.firstColor(); for (int i = 0; i < nrColumns; i++) { secret[i] = color; color = manager.nextColor(color); } game = new Game(table, secret); }
@Test public void generateAllGuesses() { int numberOfGuesses = 0; ColorManager manager = new ColorManager(NR_COLORS); Table table = new Table(NR_COLUMNS, manager); Guesser guesser = new UniqueGuesser(table); while (guesser.nextGuess() != Guesser.none) { numberOfGuesses++; } Assert.assertEquals(6 * 5 * 4 * 3, numberOfGuesses); }
@Test public void generateAllGuesses() { int numberOfGuesses = 0; ColorManager manager = new ColorManager(NR_COLORS); Table table = new Table(NR_COLUMNS,manager); Guesser guesser = new GeneralGuesser(table); while (guesser.nextGuess() != Guesser.none) { numberOfGuesses++; } Assert.assertEquals(6*6*6*6,numberOfGuesses); } }
@Test public void noNextColorIsNullWhenThereIsOne() { ColorManager manager = new ColorManager(NR_COLORS, Color::new); Color color = manager.firstColor(); while (manager.thereIsNextColor(color)) { Assert.assertNotNull(color = manager.nextColor(color)); } }
@Test public void generateAllGuesses() { int numberOfGuesses = 0; ColorManager manager = new ColorManager(NR_COLORS, Color::new); Table table = new Table(NR_COLUMNS, manager); Guesser guesser = new GeneralGuesser(table); while (guesser.nextGuess() != Guess.none) { numberOfGuesses++; } Assert.assertEquals(6 * 6 * 6 * 6, numberOfGuesses); } }
@Test public void noNextColorIsNullWhenThereIsOne() { ColorManager manager = new ColorManager(NR_COLORS); Color color = manager.firstColor(); while ( manager.thereIsNextColor(color)) { Assert.assertNotNull(color = manager.nextColor(color)); } }
private void createTestGame() { ColorManager manager = new ColorManager(NR_COLORS, new LetteredColorFactory()); Table table = new Table(NR_COLUMNS, manager); Color[] colors = new Color[NR_COLUMNS]; Color color = manager.firstColor(); for (int i = 0; i < NR_COLUMNS; i++) { colors[i] = color; color = manager.nextColor(color); } secret = new Guess(colors); game = new Game(table, secret); }
@Test public void allColorsAndPositionsMatch() { ColorManager manager = new ColorManager(NR_COLORS); Color[] positions = new Color[NR_COLUMNS]; int i = 0; for (Color color = manager.firstColor(); i < positions.length; color = manager.nextColor(color)) { positions[i++] = color; } Row row = new Row(positions); row.setMatch(NR_COLUMNS, 0); Assert.assertTrue(row.guessMatches(positions)); }
@Test public void twoColorsWrongPositionOtherGoodPosition() { ColorManager manager = new ColorManager(NR_COLORS); Color[] positions = new Color[NR_COLUMNS]; int i = 0; for (Color color = manager.firstColor(); i < positions.length; color = manager.nextColor(color)) { positions[i++] = color; } Row row = new Row(positions); Color swap = positions[0]; positions[0] = positions[1]; positions[1] = swap; row.setMatch(NR_COLUMNS - 2, 2); Assert.assertTrue(row.guessMatches(positions)); }
@Test public void twoColorsWrongPositionOtherGoodPosition() { ColorManager manager = new ColorManager(NR_COLORS, Color::new); Color[] colors = firstColors(); Row row = new Row(new Guess(colors), NR_COLUMNS - 2, 2); Color swap = colors[0]; colors[0] = colors[1]; colors[1] = swap; Assert.assertTrue(row.matches(new Guess(colors))); } }
@Test public void allButOneColorsAndPositionsMatch() { ColorManager manager = new ColorManager(NR_COLORS); Color[] positions = new Color[NR_COLUMNS]; int i = 0; for (Color color = manager.firstColor(); i < positions.length; color = manager.nextColor(color)) { positions[i++] = color; } Row row = new Row(positions); positions[NR_COLUMNS - 1] = manager.nextColor(positions[NR_COLUMNS - 1]); row.setMatch(NR_COLUMNS - 1, 0); Assert.assertTrue(row.guessMatches(positions)); }
@Test public void allButOneColorsAndPositionsMatch() { ColorManager manager = new ColorManager(NR_COLORS, Color::new); Color[] colors = firstColors(); Row row = new Row(new Guess(colors), NR_COLUMNS - 1, 0); stepTheLastColor(colors); Assert.assertTrue(row.matches(new Guess(colors))); }