diff --git a/app/src/main/java/model/CyclicColorGenerator.java b/app/src/main/java/model/CyclicColorGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..121ec58d3708f380b895b549d90e53a51223228d --- /dev/null +++ b/app/src/main/java/model/CyclicColorGenerator.java @@ -0,0 +1,17 @@ +package model; +import javafx.scene.paint.Color; +import java.util.List; + +public class CyclicColorGenerator implements ColorGenerator { + public ArrayGrid grid; + List<Color> colors; + + public CyclicColorGenerator(List<Color> colors) { + this.colors=colors; + } + + @Override + public Color nextColor(Cell cell) { + return null; + } +} diff --git a/app/src/main/java/model/GrayGrid.java b/app/src/main/java/model/GrayGrid.java index 42a49eb5d00a6dcdb562e4fac1fc1b1d20051394..b7b13916c2f43f8aec94b5e3d102d25abc6f1d7f 100644 --- a/app/src/main/java/model/GrayGrid.java +++ b/app/src/main/java/model/GrayGrid.java @@ -3,11 +3,11 @@ package model; public class GrayGrid implements Grid{ private final int numberOfRows; - private final int numnberOfColumns; + private final int numberOfColumns; public GrayGrid(int numberOfRows, int numberOfColumns){ this.numberOfRows = numberOfRows; - this.numnberOfColumns = numberOfColumns; + this.numberOfColumns = numberOfColumns; } /** * Return the cell located at the given coordinates in the grid. @@ -38,11 +38,21 @@ public class GrayGrid implements Grid{ */ @Override public int getNumberOfColumns() { - return numnberOfColumns; + return numberOfColumns; } @Override public void color(ColorGenerator colorGenerator) { } + + @Override + public boolean hasNext() { + return false; + } + + @Override + public Cell next() { + return null; + } } diff --git a/app/src/main/java/model/UniformExceptOneGenerator.java b/app/src/main/java/model/UniformExceptOneGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..0320414c72721150d1dc83c2dc97f748fad57efa --- /dev/null +++ b/app/src/main/java/model/UniformExceptOneGenerator.java @@ -0,0 +1,15 @@ +package model; + +import javafx.scene.paint.Color; + +public class UniformExceptOneGenerator implements ColorGenerator { + public UniformExceptOneGenerator(Color uniformColor, Color exceptionColor) { + + + } + + @Override + public Color nextColor(Cell cell) { + return null; + } +} diff --git a/app/src/test/java/model/ColoredCellIteratorTest.java b/app/src/test/java/model/ColoredCellIteratorTest.java index bd0bb10c50bfdb804b22080d2897b050f68b3987..c6d41c2dffc089791af9241f0401d9591397fb8b 100644 --- a/app/src/test/java/model/ColoredCellIteratorTest.java +++ b/app/src/test/java/model/ColoredCellIteratorTest.java @@ -1,59 +1,59 @@ -//package model; -// -//import javafx.scene.paint.Color; -//import org.junit.jupiter.api.BeforeAll; -//import org.junit.jupiter.api.Test; -// -//import java.util.ArrayList; -//import java.util.List; -// -//import static org.assertj.core.api.Assertions.assertThat; -// -//class ColoredCellIteratorTest { -// -// -// /* -// * +---+---+---+ -// * | R | B | R | -// * +---+---+---| -// * | R | R | B | -// * |---+---+---+ -// * | B | B | R | -// * +---+---+---+ -// */ -// -// private static ArrayGrid gridThreeThree = new ArrayGrid(3,3); -// -// @BeforeAll -// private static void initializeColorsGrid(){ -// gridThreeThree.getCell(0,0).setColor(Color.RED); -// gridThreeThree.getCell(0,1).setColor(Color.BLACK); -// gridThreeThree.getCell(0,2).setColor(Color.RED); -// gridThreeThree.getCell(1,0).setColor(Color.RED); -// gridThreeThree.getCell(1,1).setColor(Color.RED); -// gridThreeThree.getCell(1,2).setColor(Color.BLACK); -// gridThreeThree.getCell(2,0).setColor(Color.BLACK); -// gridThreeThree.getCell(2,1).setColor(Color.BLACK); -// gridThreeThree.getCell(2,2).setColor(Color.RED); -// } -// -// @Test -// void testIterator() { -// ColoredCellIterator redCellIterator = new ColoredCellIterator(gridThreeThree.getCell(0,0)); -// List<Cell> expectedRedCells = List.of(gridThreeThree.getCell(0,0), -// gridThreeThree.getCell(1,0), -// gridThreeThree.getCell(1,1)); -// List<Cell> fromIteratorCells = new ArrayList<>(); -// for(;redCellIterator.hasNext();) fromIteratorCells.add(redCellIterator.next()); -// assertThat(fromIteratorCells).hasSameElementsAs(expectedRedCells).hasSameSizeAs(expectedRedCells); -// -// ColoredCellIterator blackCellIterator = new ColoredCellIterator(gridThreeThree.getCell(2,1)); -// List<Cell> expectedBlackCells = List.of(gridThreeThree.getCell(2,0), -// gridThreeThree.getCell(2,1)); -// fromIteratorCells = new ArrayList<>(); -// for( ; blackCellIterator.hasNext(); ) fromIteratorCells.add(blackCellIterator.next()); -// assertThat(fromIteratorCells).hasSameElementsAs(expectedBlackCells).hasSameSizeAs(expectedBlackCells); -// -// } -// -//} \ No newline at end of file +package model; + +import javafx.scene.paint.Color; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +class ColoredCellIteratorTest { + + + /* + * +---+---+---+ + * | R | B | R | + * +---+---+---| + * | R | R | B | + * |---+---+---+ + * | B | B | R | + * +---+---+---+ + */ + + private static ArrayGrid gridThreeThree = new ArrayGrid(3,3); + + @BeforeAll + private static void initializeColorsGrid(){ + gridThreeThree.getCell(0,0).setColor(Color.RED); + gridThreeThree.getCell(0,1).setColor(Color.BLACK); + gridThreeThree.getCell(0,2).setColor(Color.RED); + gridThreeThree.getCell(1,0).setColor(Color.RED); + gridThreeThree.getCell(1,1).setColor(Color.RED); + gridThreeThree.getCell(1,2).setColor(Color.BLACK); + gridThreeThree.getCell(2,0).setColor(Color.BLACK); + gridThreeThree.getCell(2,1).setColor(Color.BLACK); + gridThreeThree.getCell(2,2).setColor(Color.RED); + } + + @Test + void testIterator() { + ColoredCellIterator redCellIterator = new ColoredCellIterator(gridThreeThree.getCell(0,0)); + List<Cell> expectedRedCells = List.of(gridThreeThree.getCell(0,0), + gridThreeThree.getCell(1,0), + gridThreeThree.getCell(1,1)); + List<Cell> fromIteratorCells = new ArrayList<>(); + for(;redCellIterator.hasNext();) fromIteratorCells.add(redCellIterator.next()); + assertThat(fromIteratorCells).hasSameElementsAs(expectedRedCells).hasSameSizeAs(expectedRedCells); + + ColoredCellIterator blackCellIterator = new ColoredCellIterator(gridThreeThree.getCell(2,1)); + List<Cell> expectedBlackCells = List.of(gridThreeThree.getCell(2,0), + gridThreeThree.getCell(2,1)); + fromIteratorCells = new ArrayList<>(); + for( ; blackCellIterator.hasNext(); ) fromIteratorCells.add(blackCellIterator.next()); + assertThat(fromIteratorCells).hasSameElementsAs(expectedBlackCells).hasSameSizeAs(expectedBlackCells); + + } + +} \ No newline at end of file