diff --git a/build.gradle b/build.gradle index 0056f70f00671c765e2c4da22dc105fef5c663a0..224d585465ba1fa42b6f85aecc89c8215d8ba970 100644 --- a/build.gradle +++ b/build.gradle @@ -13,9 +13,9 @@ repositories { } dependencies { - testImplementation('org.junit.jupiter:junit-jupiter-api:5.7.2', - 'org.hamcrest:hamcrest-library:2.2', 'net.obvj:junit-utils:1.3.1') - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.2' + testImplementation('org.junit.jupiter:junit-jupiter-api:5.8.1', + 'org.assertj:assertj-core:3.21.0') + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1' } test { diff --git a/src/main/java/image/AbstractImage.java b/src/main/java/image/AbstractImage.java index 8eefeff7676a9ecc02823cf92072ff6de38f6279..5f3199681dfecac048b611c5aaa990b53810b1b9 100644 --- a/src/main/java/image/AbstractImage.java +++ b/src/main/java/image/AbstractImage.java @@ -2,9 +2,6 @@ package image; import javafx.scene.paint.Color; -/** - * Created by Arnaud Labourel on 23/11/2018. - */ public abstract class AbstractImage implements Image{ private int width; private int height; diff --git a/src/main/java/image/BruteRasterImage.java b/src/main/java/image/BruteRasterImage.java index bf69d2096ed35481487e4c7874dfb6e2290dccc8..9a1f8a4a8fb666c4cc8d60abf6957db4d8d05199 100644 --- a/src/main/java/image/BruteRasterImage.java +++ b/src/main/java/image/BruteRasterImage.java @@ -15,7 +15,7 @@ public class BruteRasterImage extends RasterImage { } @Override - public void createRepresentation() { + public void initializeRepresentation() { pixels = new Color[getWidth()][getHeight()]; } diff --git a/src/main/java/image/Image.java b/src/main/java/image/Image.java index 5764c8adb331bdd61e6fe700a2afffcd42bb363e..01dcedce42c677b38517dc500a1b173c58ea61c5 100644 --- a/src/main/java/image/Image.java +++ b/src/main/java/image/Image.java @@ -2,9 +2,6 @@ package image; import javafx.scene.paint.Color; -/** - * Created by Arnaud Labourel on 09/11/2018. - */ public interface Image { Color getPixelColor(int x, int y); int getWidth(); diff --git a/src/main/java/image/ImageFactory.java b/src/main/java/image/ImageFactory.java index fa2530dfb945570fd9b379daed91d51656d35676..fb48197dd53b0be85248ad10940a372c6a849938 100644 --- a/src/main/java/image/ImageFactory.java +++ b/src/main/java/image/ImageFactory.java @@ -1,8 +1,5 @@ package image; -/** - * Created by Arnaud Labourel on 23/11/2018. - */ public interface ImageFactory { Image makeImage(); } diff --git a/src/main/java/image/LogoLISFactory.java b/src/main/java/image/LogoLISFactory.java index 671a5cd2b6c9f6dc4caf38b0454a40986e820fa5..d15c1fc24334b72383b2564782f408ed521dda2d 100644 --- a/src/main/java/image/LogoLISFactory.java +++ b/src/main/java/image/LogoLISFactory.java @@ -9,13 +9,13 @@ public class LogoLISFactory implements ImageFactory{ @Override public Image makeImage() { Color dark = Color.rgb(35,31,32); - Color greenblue = Color.rgb(113,208,199); + Color greenBlue = Color.rgb(113,208,199); int[] xCoordinates = {60, 720, 660, 400, 0, 400, 660}; int[] yCoordinates = {0, 60, 140, 0, 0, 140, 0}; int[] widths = {140, 140, 140, 60, 200, 60, 200}; int[] heights = {280, 80, 140, 80, 340, 200, 340}; - Color[] colors = {Color.WHITE, Color.WHITE, Color.WHITE, greenblue, dark, dark, dark}; + Color[] colors = {Color.WHITE, Color.WHITE, Color.WHITE, greenBlue, dark, dark, dark}; List<Shape> list = new ArrayList<>(); diff --git a/src/main/java/image/NotSupportedException.java b/src/main/java/image/NotSupportedException.java index 6f00bc3ced10d9439e5f3c8d252ec19c0ec93d41..95d677d9f696242ddb17ec5b3eae435752507027 100644 --- a/src/main/java/image/NotSupportedException.java +++ b/src/main/java/image/NotSupportedException.java @@ -1,8 +1,5 @@ package image; -/** - * Created by Arnaud Labourel on 25/11/2018. - */ class NotSupportedException extends RuntimeException { NotSupportedException(String message) { super(message); diff --git a/src/main/java/image/PaletteRasterImage.java b/src/main/java/image/PaletteRasterImage.java index c15fbb14ce950519ac3be31a025e2a9790b967c0..400e07946bfca8edd7370eaff90b3182c7ea58fd 100644 --- a/src/main/java/image/PaletteRasterImage.java +++ b/src/main/java/image/PaletteRasterImage.java @@ -5,9 +5,6 @@ import javafx.scene.paint.Color; import java.util.ArrayList; import java.util.List; -/** - * Created by Arnaud Labourel on 23/11/2018. - */ public class PaletteRasterImage extends RasterImage { private List<Color> palette; @@ -34,7 +31,7 @@ public class PaletteRasterImage extends RasterImage { } @Override - public void createRepresentation() { + public void initializeRepresentation() { palette = new ArrayList<>(); indexesOfColors = new int[getWidth()][getHeight()]; } diff --git a/src/main/java/image/Pixel.java b/src/main/java/image/Pixel.java deleted file mode 100644 index adbfdfa58af27cca2cd137ca8fed47de35d54daf..0000000000000000000000000000000000000000 --- a/src/main/java/image/Pixel.java +++ /dev/null @@ -1,19 +0,0 @@ -package image; - -import javafx.scene.paint.Color; - -/** - * Created by Arnaud Labourel on 09/11/2018. - */ -public class Pixel extends Point{ - private Color color; - - Pixel(int x, int y, Color color) { - super(x, y); - this.color = color; - } - - public Color getColor() { - return color; - } -} diff --git a/src/main/java/image/Point.java b/src/main/java/image/Point.java index c8fd1e03cf98813d79ad518efff1cd514d5c9509..b441d1675978ea96eaa9dd0ff794cbd4c8d797da 100644 --- a/src/main/java/image/Point.java +++ b/src/main/java/image/Point.java @@ -2,9 +2,6 @@ package image; import java.util.Objects; -/** - * Created by Arnaud Labourel on 09/11/2018. - */ public class Point { public final int x, y; @@ -16,8 +13,7 @@ public class Point { @Override public final boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof Point)) return false; - Point point = (Point) o; + if (!(o instanceof Point point)) return false; return x == point.x && y == point.y; } diff --git a/src/main/java/image/RasterFlagFactory.java b/src/main/java/image/RasterFlagFactory.java index b4401aaea4f8bb85017263ec338266b56820f9aa..94627e9570c97556e024220d0970ade02474391f 100644 --- a/src/main/java/image/RasterFlagFactory.java +++ b/src/main/java/image/RasterFlagFactory.java @@ -4,12 +4,12 @@ import javafx.scene.paint.Color; public class RasterFlagFactory implements ImageFactory { - private int width; - private int height; - private Color leftColor; - private Color middleColor; - private Color rightColor; - private RasterImageType rasterImageType; + private final int width; + private final int height; + private final Color leftColor; + private final Color middleColor; + private final Color rightColor; + private final RasterImageType rasterImageType; public RasterFlagFactory(int width, int height, Color leftColor, Color middleColor, Color rightColor, RasterImageType rasterImageType) { this.width = width; @@ -22,13 +22,7 @@ public class RasterFlagFactory implements ImageFactory { @Override public Image makeImage() { - Color[][] colors = new Color[width][height]; - - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - colors[x][y] = (x < width / 3) ? leftColor : ((x > 2 * width / 3) ? rightColor : middleColor); - } - } + Color[][] colors = initializeImageMatrix(); switch (rasterImageType){ case BRUTE: return new BruteRasterImage(colors); @@ -40,4 +34,15 @@ public class RasterFlagFactory implements ImageFactory { throw new NotSupportedException(rasterImageType + " is not supported"); } } + + private Color[][] initializeImageMatrix() { + Color[][] colors = new Color[width][height]; + + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + colors[x][y] = (x < width / 3) ? leftColor : ((x > 2 * width / 3) ? rightColor : middleColor); + } + } + return colors; + } } diff --git a/src/main/java/image/RasterImage.java b/src/main/java/image/RasterImage.java index d337d8aa3f1a16219679827f0f9b922c6f7c62e4..80f8cc9072a2f210ada766f0678bac77f775f8c8 100644 --- a/src/main/java/image/RasterImage.java +++ b/src/main/java/image/RasterImage.java @@ -3,9 +3,6 @@ package image; import javafx.scene.paint.Color; import util.Matrices; -/** - * Created by Arnaud Labourel on 23/11/2018. - */ public abstract class RasterImage extends AbstractImage { RasterImage(Color[][] colors) { @@ -17,20 +14,19 @@ public abstract class RasterImage extends AbstractImage { setWidth(Matrices.getRowCount(colors)); setHeight(Matrices.getColumnCount(colors)); - createRepresentation(); + initializeRepresentation(); setPixelsColor(colors); } RasterImage(Color color, int width, int height) { super(width, height); - - createRepresentation(); + initializeRepresentation(); setPixelsColor(color); } public abstract void setPixelColor(Color color, int x , int y); - public abstract void createRepresentation(); + public abstract void initializeRepresentation(); private void setPixelsColor(Color[][] pixels){ for(int x = 0; x<getWidth(); x++) diff --git a/src/main/java/image/RasterUniformImageFactory.java b/src/main/java/image/RasterUniformImageFactory.java index 4e7bcd6395758e844f352babd7f67f8e2a8dcc94..3639736f09b1a59ac618873f904bbc4468bdde0b 100644 --- a/src/main/java/image/RasterUniformImageFactory.java +++ b/src/main/java/image/RasterUniformImageFactory.java @@ -4,10 +4,10 @@ import javafx.scene.paint.Color; public class RasterUniformImageFactory implements ImageFactory { - private int width; - private int height; - private Color color; - private RasterImageType rasterImageType; + private final int width; + private final int height; + private final Color color; + private final RasterImageType rasterImageType; public RasterUniformImageFactory(int width, int height, Color color, RasterImageType rasterImageType) { this.width = width; diff --git a/src/main/java/image/Rectangle.java b/src/main/java/image/Rectangle.java index 917c30f2caf434b15cbf77cfd6f3a6388e726b32..27d7c2a046733528a82293d1730fa9918df9ed35 100644 --- a/src/main/java/image/Rectangle.java +++ b/src/main/java/image/Rectangle.java @@ -2,14 +2,11 @@ package image; import javafx.scene.paint.Color; -/** - * Created by Arnaud Labourel on 23/11/2018. - */ public class Rectangle implements Shape { - private int x; - private int y; - private int width; - private int height; + private final int x; + private final int y; + private final int width; + private final int height; Color color; Rectangle(int x, int y, int width, int height, Color color) { diff --git a/src/main/java/image/SparseRasterImage.java b/src/main/java/image/SparseRasterImage.java index c10478cf59bdaac8c5e809613bd167f74ab3c138..e21f91ee3e3b94f3ec867c9105cba6aee50c4634 100644 --- a/src/main/java/image/SparseRasterImage.java +++ b/src/main/java/image/SparseRasterImage.java @@ -32,7 +32,7 @@ public class SparseRasterImage extends RasterImage{ } @Override - public void createRepresentation() { + public void initializeRepresentation() { pixelsMap = new HashMap<>(); } } diff --git a/src/main/java/image/VectorImage.java b/src/main/java/image/VectorImage.java index a53495ccca5e814c1bf35ef82648d0eacd648f08..6aa22901c16f9ec8e291229d98c7c9f31487e2bc 100644 --- a/src/main/java/image/VectorImage.java +++ b/src/main/java/image/VectorImage.java @@ -9,7 +9,7 @@ import java.util.List; */ public class VectorImage extends AbstractImage { - private List<Shape> shapes; + private final List<Shape> shapes; VectorImage(List<Shape> shapes, int width, int height) { super(width, height); @@ -18,8 +18,9 @@ public class VectorImage extends AbstractImage { @Override public Color getPixelColor(int x, int y) { + Point point = new Point(x, y); for(Shape shape : shapes){ - if(shape.contains(new Point(x,y))) + if(shape.contains(point)) return shape.getColor(); } return Color.WHITE; diff --git a/src/main/java/viewer/Main.java b/src/main/java/viewer/Main.java index c6c8fed05c8ff9d4f1d53396929b8d54de27ebf8..da5c52b505bbc484ae32dff56641f069ed8c900c 100644 --- a/src/main/java/viewer/Main.java +++ b/src/main/java/viewer/Main.java @@ -7,6 +7,7 @@ import javafx.scene.Scene; import javafx.stage.Stage; import java.io.IOException; +import java.util.Objects; public class Main extends Application @@ -18,7 +19,7 @@ public class Main extends Application @Override public void start(Stage primaryStage) throws IOException { - Parent root =FXMLLoader.load(getClass().getClassLoader().getResource("fxml/Display.fxml")); + Parent root =FXMLLoader.load(Objects.requireNonNull(getClass().getClassLoader().getResource("fxml/Display.fxml"))); primaryStage.setTitle("Image display"); primaryStage.setScene(new Scene(root)); primaryStage.show(); diff --git a/src/test/java/BlankImageTest.java b/src/test/java/BlankImageTest.java index b7030780d0acc1400103c178df92edb1bbaf050b..b11682464930417695bed8f7e175a81b37b81f3b 100644 --- a/src/test/java/BlankImageTest.java +++ b/src/test/java/BlankImageTest.java @@ -1,29 +1,28 @@ import image.BlankImage; import javafx.scene.paint.Color; -import org.junit.jupiter.api.Test; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.*; +import org.junit.jupiter.api.Test; +import static org.assertj.core.api.Assertions.assertThat; public class BlankImageTest { @Test public void testBlankImageGetWidth(){ BlankImage blankImage = new BlankImage(200, 300); - assertThat(blankImage.getWidth(), is(equalTo(200))); + assertThat(blankImage.getWidth()).isEqualTo(200); } @Test public void testBlankImageGetHeight(){ BlankImage blankImage = new BlankImage(200, 300); - assertThat(blankImage.getHeight(), is(equalTo(300))); + assertThat(blankImage.getHeight()).isEqualTo(300); } @Test public void testBlankImageGetPixelColor(){ BlankImage blankImage = new BlankImage(200, 300); - assertThat(blankImage.getPixelColor(0,0), is(equalTo(Color.WHITE))); - assertThat(blankImage.getPixelColor(100,100), is(equalTo(Color.WHITE))); - assertThat(blankImage.getPixelColor(199,299), is(equalTo(Color.WHITE))); + assertThat(blankImage.getPixelColor(0,0)).isEqualTo(Color.WHITE); + assertThat(blankImage.getPixelColor(100,100)).isEqualTo(Color.WHITE); + assertThat(blankImage.getPixelColor(199,299)).isEqualTo(Color.WHITE); } }