diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml index 3bab646322fd4a4653a993ecbc5d3fd14935eb71..5536a0d7400e3648af967956233c4c679e855002 100644 --- a/.idea/checkstyle-idea.xml +++ b/.idea/checkstyle-idea.xml @@ -2,7 +2,7 @@ <project version="4"> <component name="CheckStyle-IDEA" serialisationVersion="2"> <checkstyleVersion>10.13.0</checkstyleVersion> - <scanScope>JavaOnly</scanScope> + <scanScope>JavaOnlyWithTests</scanScope> <option name="thirdPartyClasspath" /> <option name="activeLocationIds" /> <option name="locations"> diff --git a/src/main/java/org/example/chaosgame/MainApp.java b/src/main/java/org/example/chaosgame/MainApp.java index afd79746679e8182051329e334ceab3881c085ee..631385a560d104b1cd67bf7c30d9c7b0f8bf09ac 100644 --- a/src/main/java/org/example/chaosgame/MainApp.java +++ b/src/main/java/org/example/chaosgame/MainApp.java @@ -24,7 +24,10 @@ public class MainApp extends Application { new PageController(mainPane, chaosGameController, exploreGameController); Scene scene = new Scene(mainPane, 1200, 800); - scene.getStylesheets().add(Objects.requireNonNull(getClass().getResource("/global.css")).toExternalForm()); + scene.getStylesheets().add( + Objects.requireNonNull(getClass() + .getResource("/global.css")) + .toExternalForm()); primaryStage.setMinWidth(1000); primaryStage.setMinHeight(650); diff --git a/src/main/java/org/example/chaosgame/controller/ChaosGameController.java b/src/main/java/org/example/chaosgame/controller/ChaosGameController.java index 065e5bd776f5720c1a2184a960e5cdaa690a710a..cb8678ba34d88366259e2af8b082804b159dec34 100644 --- a/src/main/java/org/example/chaosgame/controller/ChaosGameController.java +++ b/src/main/java/org/example/chaosgame/controller/ChaosGameController.java @@ -2,8 +2,10 @@ package org.example.chaosgame.controller; import java.io.File; import java.io.IOException; -import java.util.*; - +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Optional; import javafx.scene.canvas.Canvas; import javafx.scene.control.TextField; import javafx.scene.layout.StackPane; @@ -15,12 +17,10 @@ import org.example.chaosgame.controller.interfaces.Observer; import org.example.chaosgame.controller.interfaces.Subject; import org.example.chaosgame.model.chaos.ChaosGame; import org.example.chaosgame.model.chaos.ChaosGameDescription; -import org.example.chaosgame.model.chaos.ChaosGameDescriptionFactory; -import org.example.chaosgame.model.chaos.ChaosGameFileHandler; import org.example.chaosgame.model.chaos.ChaosGameType; import org.example.chaosgame.model.linalg.Complex; -import org.example.chaosgame.model.linalg.Vector2D; import org.example.chaosgame.model.linalg.Matrix2x2; +import org.example.chaosgame.model.linalg.Vector2D; import org.example.chaosgame.model.transformations.AffineTransform2D; import org.example.chaosgame.model.transformations.JuliaTransform; import org.example.chaosgame.model.transformations.Transform2D; @@ -104,17 +104,20 @@ public class ChaosGameController implements Observer, Subject, GameController { try { int steps = Integer.parseInt(input); chaosGame.setSteps(steps); - if (chaosGame.getDescription().getTransforms().getFirst() instanceof JuliaTransform && steps > 250000) { - throw new IllegalArgumentException("Please enter a lower amount of steps for Julia transformations."); + if (chaosGame.getDescription().getTransforms().getFirst() + instanceof JuliaTransform && steps > 250000) { + throw new IllegalArgumentException( + "Please enter a lower amount of steps for Julia transformations."); } if (chaosGame.getTotalSteps() > Math.pow(10, 8)) { - throw new IllegalArgumentException("The total amount of steps is too high. Choose a lower amount."); + throw new IllegalArgumentException( + "The total amount of steps is too high. Choose a lower amount."); } chaosGame.addTotalSteps(steps); chaosGame.runSteps(); stepsField.getStyleClass().remove("text-field-invalid"); - } catch (NumberFormatException e){ + } catch (NumberFormatException e) { stepsField.clear(); stepsField.getStyleClass().add("text-field-invalid"); AlertUtility.showErrorDialog("Invalid input", "Please enter a valid number."); @@ -186,10 +189,12 @@ public class ChaosGameController implements Observer, Subject, GameController { } /** - * Method for creating a new fractal. + * Method for user creation of fractal. + * {@link org.example.chaosgame.view.components.CreateFractalDialog} returns either a + * {@link java.util.List}<{@link java.util.List}<{@link java.lang.String}>> + * or a {@link javafx.util.Pair}<{@link java.lang.String}, {@link java.lang.String}>. * * <p>Opens a dialog for the user to create a new fractal. - * */ public void createOwnFractal() { CreateFractalDialog dialog = new CreateFractalDialog(); @@ -200,7 +205,7 @@ public class ChaosGameController implements Observer, Subject, GameController { List<Transform2D> transforms = new ArrayList<>(); if (fractalData instanceof List) { List<List<String>> userInput = (List<List<String>>) fractalData; - for(List<String> input : userInput) { + for (List<String> input : userInput) { try { double a = Double.parseDouble(input.get(0)); double b = Double.parseDouble(input.get(1)); @@ -209,8 +214,8 @@ public class ChaosGameController implements Observer, Subject, GameController { double x = Double.parseDouble(input.get(4)); double y = Double.parseDouble(input.get(5)); - if (a < -5 || a > 5 || b < -5 || b > 5 || c < -5 || c > 5 || - d < -5 || d > 5 || x < -5 || x > 5 || y < -5 || y > 5) { + if (a < -5 || a > 5 || b < -5 || b > 5 || c < -5 || c > 5 + || d < -5 || d > 5 || x < -5 || x > 5 || y < -5 || y > 5) { throw new NumberFormatException(); } else { transforms.add(new AffineTransform2D(new Matrix2x2(a, b, c, d), new Vector2D(x, y))); @@ -223,7 +228,6 @@ public class ChaosGameController implements Observer, Subject, GameController { AlertUtility.showErrorDialog("Invalid input", "Please enter a valid number."); } } -// List<Transform2D> transforms = new ArrayList<>(transformations); } else if (fractalData instanceof Pair) { Pair<String, String> userInput = (Pair<String, String>) fractalData; try { // Check if the input is a valid number diff --git a/src/main/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionFactory.java b/src/main/java/org/example/chaosgame/controller/ChaosGameDescriptionFactory.java similarity index 95% rename from src/main/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionFactory.java rename to src/main/java/org/example/chaosgame/controller/ChaosGameDescriptionFactory.java index 6b774ad45773afadcabcb4079522ae2e93d220d3..db3de3d27fb79488505c1f1d61df2ad70bffb01a 100644 --- a/src/main/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionFactory.java +++ b/src/main/java/org/example/chaosgame/controller/ChaosGameDescriptionFactory.java @@ -1,6 +1,8 @@ -package org.example.chaosgame.model.chaos; +package org.example.chaosgame.controller; import java.util.List; +import org.example.chaosgame.model.chaos.ChaosGameDescription; +import org.example.chaosgame.model.chaos.ChaosGameType; import org.example.chaosgame.model.linalg.Complex; import org.example.chaosgame.model.linalg.Matrix2x2; import org.example.chaosgame.model.linalg.Vector2D; diff --git a/src/main/java/org/example/chaosgame/model/chaos/ChaosGameFileHandler.java b/src/main/java/org/example/chaosgame/controller/ChaosGameFileHandler.java similarity index 98% rename from src/main/java/org/example/chaosgame/model/chaos/ChaosGameFileHandler.java rename to src/main/java/org/example/chaosgame/controller/ChaosGameFileHandler.java index 7b0256d51506f800c03eaccc50371cae118bad96..050be3f8ffd4d511b5a88037a999ac96028cce6c 100644 --- a/src/main/java/org/example/chaosgame/model/chaos/ChaosGameFileHandler.java +++ b/src/main/java/org/example/chaosgame/controller/ChaosGameFileHandler.java @@ -1,4 +1,4 @@ -package org.example.chaosgame.model.chaos; +package org.example.chaosgame.controller; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -7,6 +7,7 @@ import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import org.example.chaosgame.model.chaos.ChaosGameDescription; import org.example.chaosgame.model.linalg.Complex; import org.example.chaosgame.model.linalg.Matrix2x2; import org.example.chaosgame.model.linalg.Vector2D; diff --git a/src/main/java/org/example/chaosgame/controller/ExploreGameController.java b/src/main/java/org/example/chaosgame/controller/ExploreGameController.java index 4e6152ee0bfe71a848cf9f08af4a6b96defebc29..b6ae5e8cfac2ea62c8c1e05d13df1bce44c5b727 100644 --- a/src/main/java/org/example/chaosgame/controller/ExploreGameController.java +++ b/src/main/java/org/example/chaosgame/controller/ExploreGameController.java @@ -103,7 +103,8 @@ public class ExploreGameController implements Observer, Subject, GameController Vector2D dragDistance = new Vector2D(event.getX(), canvas.getHeight() - event.getY()).subtract(dragStartTemp); Vector2D fractalRange = description.getMaxCoords().subtract(description.getMinCoords()); - Vector2D adjustedDragDistance = dragDistance.multiply(fractalRange).divide(new Vector2D(canvas.getWidth(), canvas.getHeight())); + Vector2D adjustedDragDistance = dragDistance.multiply(fractalRange) + .divide(new Vector2D(canvas.getWidth(), canvas.getHeight())); minCoords = description.getMinCoords().subtract(adjustedDragDistance); maxCoords = description.getMaxCoords().subtract(adjustedDragDistance); updateExplorePage(); @@ -118,54 +119,59 @@ public class ExploreGameController implements Observer, Subject, GameController */ public void zoomButtonClicked(double scaleFactor) { cumulativeScaleFactor *= scaleFactor; - Vector2D canvasCenter = chaosCanvas.transformIndicesToCoords(chaosCanvas.getWidth() / 2, chaosCanvas.getHeight() / 2); - minCoords = canvasCenter.subtract(canvasCenter.subtract(description.getMinCoords()).scale(scaleFactor)); - maxCoords = canvasCenter.add(description.getMaxCoords().subtract(canvasCenter).scale(scaleFactor)); + Vector2D canvasCenter = chaosCanvas.transformIndicesToCoords( + chaosCanvas.getWidth() / 2, chaosCanvas.getHeight() / 2); + minCoords = canvasCenter.subtract(canvasCenter.subtract( + description.getMinCoords()).scale(scaleFactor)); + maxCoords = canvasCenter.add(description.getMaxCoords() + .subtract(canvasCenter).scale(scaleFactor)); updateExplorePage(); } - /** - * Method for handling scroll events. - * Zooms in or out based on the scroll direction. - * - * @param event ScrollEvent - */ - public void onScroll (ScrollEvent event){ - double mouseX = event.getX(); - double mouseY = event.getY(); - double scaleBase = event.isControlDown() ? 2 : 1.1; - double scaleFactor = 1; - double zoomInLimit = Math.pow(10, -15); - double zoomOutLimit = 8; - if (event.getDeltaY() > 0 && cumulativeScaleFactor > zoomInLimit) { - // Zoom in - scaleFactor = 1 / scaleBase; - } else if (event.getDeltaY() < 0 && cumulativeScaleFactor < zoomOutLimit) { - // Zoom out - scaleFactor = scaleBase; - } + /** + * Method for handling scroll events. + * Zooms in or out based on the scroll direction. + * + * @param event ScrollEvent + */ + public void onScroll(ScrollEvent event) { + double mouseX = event.getX(); + double mouseY = event.getY(); + double scaleBase = event.isControlDown() ? 2 : 1.1; + double scaleFactor = 1; + double zoomInLimit = Math.pow(10, -15); + double zoomOutLimit = 8; + if (event.getDeltaY() > 0 && cumulativeScaleFactor > zoomInLimit) { + // Zoom in + scaleFactor = 1 / scaleBase; + } else if (event.getDeltaY() < 0 && cumulativeScaleFactor < zoomOutLimit) { + // Zoom out + scaleFactor = scaleBase; + } - cumulativeScaleFactor *= scaleFactor; - double middleMouseX = mouseX - (double) chaosCanvas.getWidth() / 2; - double middleMouseY = mouseY - (double) chaosCanvas.getHeight() / 2; - double translateX = canvas.getTranslateX(); - double translateY = canvas.getTranslateY(); - - canvas.setScaleX(canvas.getScaleX() * scaleFactor); - canvas.setScaleY(canvas.getScaleY() * scaleFactor); - - double newTranslateX = (middleMouseX - translateX) * (scaleFactor - 1); - double newTranslateY = (middleMouseY - translateY) * (scaleFactor - 1); - double setTranslateX = translateX - newTranslateX; - double setTranslateY = translateY - newTranslateY; - canvas.setTranslateX(setTranslateX); - canvas.setTranslateY(setTranslateY); - - Vector2D canvasCenter = chaosCanvas.transformIndicesToCoords((int) mouseX, (int) mouseY); - minCoords = canvasCenter.subtract(canvasCenter.subtract(description.getMinCoords()).scale(scaleFactor)); - maxCoords = canvasCenter.add(description.getMaxCoords().subtract(canvasCenter).scale(scaleFactor)); - updateExplorePage(); + cumulativeScaleFactor *= scaleFactor; + double middleMouseX = mouseX - (double) chaosCanvas.getWidth() / 2; + double middleMouseY = mouseY - (double) chaosCanvas.getHeight() / 2; + double translateX = canvas.getTranslateX(); + double translateY = canvas.getTranslateY(); + + canvas.setScaleX(canvas.getScaleX() * scaleFactor); + canvas.setScaleY(canvas.getScaleY() * scaleFactor); + + double newTranslateX = (middleMouseX - translateX) * (scaleFactor - 1); + double newTranslateY = (middleMouseY - translateY) * (scaleFactor - 1); + double setTranslateX = translateX - newTranslateX; + double setTranslateY = translateY - newTranslateY; + canvas.setTranslateX(setTranslateX); + canvas.setTranslateY(setTranslateY); + + Vector2D canvasCenter = chaosCanvas.transformIndicesToCoords((int) mouseX, (int) mouseY); + minCoords = canvasCenter.subtract(canvasCenter.subtract( + description.getMinCoords()).scale(scaleFactor)); + maxCoords = canvasCenter.add(description.getMaxCoords() + .subtract(canvasCenter).scale(scaleFactor)); + updateExplorePage(); } @@ -173,7 +179,8 @@ public class ExploreGameController implements Observer, Subject, GameController this.description.setMinCoords(minCoords); this.description.setMaxCoords(maxCoords); this.description.setTransforms(trans); - this.exploreGame = new ExploreGame(description, (int) canvas.getWidth(),(int) canvas.getHeight()); + this.exploreGame = new ExploreGame( + description, (int) canvas.getWidth(), (int) canvas.getHeight()); this.exploreGame.registerObserver(this); this.chaosCanvas = exploreGame.getCanvas(); exploreGame.exploreFractals(); @@ -248,7 +255,6 @@ public class ExploreGameController implements Observer, Subject, GameController ? value : exploreTransform.getComplex().getY(); trans = List.of(new ExploreJulia(new Complex(realPart, imaginaryPart))); -// description.setTransforms(trans); updateExplorePage(); } diff --git a/src/main/java/org/example/chaosgame/model/chaos/ChaosCanvas.java b/src/main/java/org/example/chaosgame/model/chaos/ChaosCanvas.java index 6d1892f3b2e43a33cca7e001c35cae9e562b3822..ed700b4911756bd4d62d8706bedc52679807e21e 100644 --- a/src/main/java/org/example/chaosgame/model/chaos/ChaosCanvas.java +++ b/src/main/java/org/example/chaosgame/model/chaos/ChaosCanvas.java @@ -165,13 +165,22 @@ public class ChaosCanvas { * Clears the canvas by setting all pixel values to 0. */ public void clearCanvas() { - for (int i = 0; i < height; i++) { - for (int j = 0; j < width; j++) { - canvas[i][j] = 0; - } + for (int i = 0; i < height; i++) { + for (int j = 0; j < width; j++) { + canvas[i][j] = 0; } + } } + + /** + * Returns the pixel value at the given point. + * If the point is outside the canvas, the method returns 0. + * + * @param point The point to get the pixel value at + * + * @return The pixel value at the given point + */ public double getPixel(Vector2D point) { Vector2D indices = transformCoordsToIndices.transform(point); int x = (int) indices.getX(); diff --git a/src/main/java/org/example/chaosgame/model/chaos/ChaosGameDescription.java b/src/main/java/org/example/chaosgame/model/chaos/ChaosGameDescription.java index 87e16655a965a7d46e9411e37358c553cab13a44..8c7177f940833f147f256ae1eea7b859cd1983a2 100644 --- a/src/main/java/org/example/chaosgame/model/chaos/ChaosGameDescription.java +++ b/src/main/java/org/example/chaosgame/model/chaos/ChaosGameDescription.java @@ -2,7 +2,6 @@ package org.example.chaosgame.model.chaos; import java.util.List; import java.util.Objects; - import org.example.chaosgame.model.linalg.Vector2D; import org.example.chaosgame.model.transformations.Transform2D; @@ -77,7 +76,8 @@ public class ChaosGameDescription { || maxCoords.getX() < -50 || maxCoords.getY() < -50) { throw new IllegalArgumentException("Coordinates must be between -50 and 50"); } else if (minCoords.getX() > maxCoords.getX() || minCoords.getY() > maxCoords.getY()) { - throw new IllegalArgumentException("Minimum coordinates must be less than maximum coordinates"); + throw new IllegalArgumentException( + "Minimum coordinates must be less than maximum coordinates"); } if (minCoords.equals(maxCoords)) { throw new IllegalArgumentException("Minimum and maximum coordinates cannot be the same"); @@ -90,7 +90,7 @@ public class ChaosGameDescription { * @param transforms List of transformations to apply to the points */ private void validateTransforms(List<Transform2D> transforms) { - if (transforms == null){ + if (transforms == null) { throw new IllegalArgumentException("Transformations cannot be null"); } if (transforms.size() > 4 || transforms.isEmpty()) { @@ -129,8 +129,12 @@ public class ChaosGameDescription { @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } ChaosGameDescription that = (ChaosGameDescription) o; return Objects.equals(minCoords, that.minCoords) && Objects.equals(maxCoords, that.maxCoords) diff --git a/src/main/java/org/example/chaosgame/model/chaos/ExploreGame.java b/src/main/java/org/example/chaosgame/model/chaos/ExploreGame.java index 8e046e06eb0ec6f8d491a82d792df5bdbd7dfc7f..16aa2be8aad9ec1f1d27b468fd3e858ae91be351 100644 --- a/src/main/java/org/example/chaosgame/model/chaos/ExploreGame.java +++ b/src/main/java/org/example/chaosgame/model/chaos/ExploreGame.java @@ -1,17 +1,5 @@ package org.example.chaosgame.model.chaos; - -import javafx.application.Platform; -import javafx.concurrent.Task; -import javafx.scene.canvas.Canvas; -import org.example.chaosgame.model.linalg.Vector2D; -import org.example.chaosgame.model.transformations.Transform2D; -import org.example.chaosgame.view.components.AlertUtility; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.IntStream; -import java.util.stream.Stream; import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; @@ -20,12 +8,13 @@ import org.example.chaosgame.controller.interfaces.Subject; import org.example.chaosgame.model.linalg.Vector2D; + /** * Class for exploring julia sets. */ public class ExploreGame implements Subject { private static final int MAX_ITER = 256; - private ChaosCanvas canvas; + private final ChaosCanvas canvas; private ChaosGameDescription description; private Vector2D currentPoint = new Vector2D(0.0, 0.0); private final List<Observer> gameObservers; @@ -41,15 +30,28 @@ public class ExploreGame implements Subject { */ public ExploreGame(ChaosGameDescription description, int width, int height) { this.description = description; - this.canvas = new ChaosCanvas(width, height, description.getMinCoords(), description.getMaxCoords()); + this.canvas = new ChaosCanvas( + width, height, + description.getMinCoords(), + description.getMaxCoords()); this.gameObservers = new ArrayList<>(); } + /** + * Method for setting the chaos game. + * + * @param description Description of the chaos game + * + * @param width Width of the canvas + * + * @param height Height of the canvas + */ public void setExploreGame(ChaosGameDescription description, int width, int height) { this.description = description; setChaosCanvas(description.getMinCoords(), description.getMaxCoords(), width, height); } + public ChaosCanvas getCanvas() { return canvas; } diff --git a/src/main/java/org/example/chaosgame/model/linalg/Matrix2x2.java b/src/main/java/org/example/chaosgame/model/linalg/Matrix2x2.java index f24922c9e660ed0d2786fdc820ec10055c9b2f0a..ea2b4911ee21761c87b45e26ff255d7333db036e 100644 --- a/src/main/java/org/example/chaosgame/model/linalg/Matrix2x2.java +++ b/src/main/java/org/example/chaosgame/model/linalg/Matrix2x2.java @@ -50,10 +50,17 @@ public record Matrix2x2(double a, double b, double c, double d) { */ @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } Matrix2x2 matrix2x2 = (Matrix2x2) o; - return Double.compare(a, matrix2x2.a) == 0 && Double.compare(b, matrix2x2.b) == 0 && Double.compare(c, matrix2x2.c) == 0 && Double.compare(d, matrix2x2.d) == 0; + return Double.compare(a, matrix2x2.a) == 0 + && Double.compare(b, matrix2x2.b) == 0 + && Double.compare(c, matrix2x2.c) == 0 + && Double.compare(d, matrix2x2.d) == 0; } /** diff --git a/src/main/java/org/example/chaosgame/model/linalg/Vector2D.java b/src/main/java/org/example/chaosgame/model/linalg/Vector2D.java index daed3404327d29f10fe403ebfc0fc3712202ee62..c06683ae4e49f58196a970b7dfae59891df163d5 100644 --- a/src/main/java/org/example/chaosgame/model/linalg/Vector2D.java +++ b/src/main/java/org/example/chaosgame/model/linalg/Vector2D.java @@ -102,14 +102,34 @@ public class Vector2D { } + /** + * Equals method for Vector2D. + * Compares two vectors for equality. + * Overrides the default equals method. + * Generated by IntelliJ IDEA. + * + * @param o Object to compare + * @return true if the vectors are equal, false otherwise + */ @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } Vector2D vector2D = (Vector2D) o; return Double.compare(x, vector2D.x) == 0 && Double.compare(y, vector2D.y) == 0; } + /** + * Hashcode method for Vector2D. + * Overrides the default hashcode method. + * Generated by IntelliJ IDEA. + * + * @return the hashcode of the vector + */ @Override public int hashCode() { return Objects.hash(x, y); diff --git a/src/main/java/org/example/chaosgame/model/transformations/AffineTransform2D.java b/src/main/java/org/example/chaosgame/model/transformations/AffineTransform2D.java index 50563f3d026a02677ca1d04f74539f70d4e19037..da0db148c4a0ca696002e500fa59eec2bb692800 100644 --- a/src/main/java/org/example/chaosgame/model/transformations/AffineTransform2D.java +++ b/src/main/java/org/example/chaosgame/model/transformations/AffineTransform2D.java @@ -1,9 +1,9 @@ package org.example.chaosgame.model.transformations; +import java.util.Objects; import org.example.chaosgame.model.linalg.Matrix2x2; import org.example.chaosgame.model.linalg.Vector2D; -import java.util.Objects; /** * Record for 2D affine transformations. @@ -46,8 +46,12 @@ public record AffineTransform2D(Matrix2x2 matrix, Vector2D vector) implements Tr */ @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } AffineTransform2D that = (AffineTransform2D) o; return Objects.equals(vector, that.vector) && Objects.equals(matrix, that.matrix); } diff --git a/src/main/java/org/example/chaosgame/model/transformations/JuliaTransform.java b/src/main/java/org/example/chaosgame/model/transformations/JuliaTransform.java index 44c940e3935c8e7e0d57df4bc5db5e2f30311436..98119ed4144a9a0758c78c3b20e5ec157244db11 100644 --- a/src/main/java/org/example/chaosgame/model/transformations/JuliaTransform.java +++ b/src/main/java/org/example/chaosgame/model/transformations/JuliaTransform.java @@ -1,10 +1,9 @@ package org.example.chaosgame.model.transformations; +import java.util.Objects; import org.example.chaosgame.model.linalg.Complex; import org.example.chaosgame.model.linalg.Vector2D; -import java.util.Objects; - /** * Class for the Julia transformation. * This formula describes the transformation: @@ -63,8 +62,12 @@ public class JuliaTransform implements Transform2D { */ @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } JuliaTransform that = (JuliaTransform) o; return sign == that.sign && Objects.equals(point, that.point); } diff --git a/src/test/java/org/example/chaosgame/controller/ChaosGameControllerTest.java b/src/test/java/org/example/chaosgame/controller/ChaosGameControllerTest.java index b8802696767470ba48dad16a0c660907c19fc0bc..1e16946f1d1a9978186686d4afb38f6e343cbe8e 100644 --- a/src/test/java/org/example/chaosgame/controller/ChaosGameControllerTest.java +++ b/src/test/java/org/example/chaosgame/controller/ChaosGameControllerTest.java @@ -2,71 +2,69 @@ package org.example.chaosgame.controller; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - class ChaosGameControllerTest { - @Test - void gameSelection() { - } - - @Test - void runStepsValidation() { - } - - @Test - void openFromFile() { - } - - @Test - void updateFractalColor() { - } - - @Test - void createOwnJuliaFractal() { - } - - @Test - void createOwnAffineFractal() { - } - - @Test - void updateJuliaValue() { - } - - @Test - void isJuliaShowing() { - } - - @Test - void saveFractal() { - } - - @Test - void homeButtonClicked() { - } - - @Test - void update() { - } - - @Test - void registerObserver() { - } - - @Test - void removeObserver() { - } - - @Test - void notifyObservers() { - } - - @Test - void setCanvas() { - } - - @Test - void setBind() { - } + @Test + void gameSelection() { + } + + @Test + void runStepsValidation() { + } + + @Test + void openFromFile() { + } + + @Test + void updateFractalColor() { + } + + @Test + void createOwnJuliaFractal() { + } + + @Test + void createOwnAffineFractal() { + } + + @Test + void updateJuliaValue() { + } + + @Test + void isJuliaShowing() { + } + + @Test + void saveFractal() { + } + + @Test + void homeButtonClicked() { + } + + @Test + void update() { + } + + @Test + void registerObserver() { + } + + @Test + void removeObserver() { + } + + @Test + void notifyObservers() { + } + + @Test + void setCanvas() { + } + + @Test + void setBind() { + } } \ No newline at end of file diff --git a/src/test/java/org/example/chaosgame/controller/ExploreGameControllerTest.java b/src/test/java/org/example/chaosgame/controller/ExploreGameControllerTest.java index e999b1b47ee1487ca70f70de3fc999be8830e97d..05f43e043ac30ae963730e3b8c98e4a8d67a78ea 100644 --- a/src/test/java/org/example/chaosgame/controller/ExploreGameControllerTest.java +++ b/src/test/java/org/example/chaosgame/controller/ExploreGameControllerTest.java @@ -2,71 +2,69 @@ package org.example.chaosgame.controller; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - class ExploreGameControllerTest { - @Test - void mousePressed() { - } + @Test + void mousePressed() { + } - @Test - void mouseDragged() { - } + @Test + void mouseDragged() { + } - @Test - void mouseReleased() { - } + @Test + void mouseReleased() { + } - @Test - void zoomButtonClicked() { - } + @Test + void zoomButtonClicked() { + } - @Test - void onScroll() { - } + @Test + void onScroll() { + } - @Test - void homeButtonClicked() { - } + @Test + void homeButtonClicked() { + } - @Test - void getExplorePage() { - } + @Test + void getExplorePage() { + } - @Test - void updateFractalColor() { - } + @Test + void updateFractalColor() { + } - @Test - void update() { - } + @Test + void update() { + } - @Test - void registerObserver() { - } + @Test + void registerObserver() { + } - @Test - void removeObserver() { - } + @Test + void removeObserver() { + } - @Test - void notifyObservers() { - } + @Test + void notifyObservers() { + } - @Test - void updateExploreGame() { - } + @Test + void updateExploreGame() { + } - @Test - void resetImage() { - } + @Test + void resetImage() { + } - @Test - void setCanvas() { - } + @Test + void setCanvas() { + } - @Test - void updateJuliaValue() { - } + @Test + void updateJuliaValue() { + } } \ No newline at end of file diff --git a/src/test/java/org/example/chaosgame/controller/HomeControllerTest.java b/src/test/java/org/example/chaosgame/controller/HomeControllerTest.java index 6822a1539696115645d52e73d001d9b55da5a70a..c32f31ad6d11ba9334513ff41893d28879e4a99a 100644 --- a/src/test/java/org/example/chaosgame/controller/HomeControllerTest.java +++ b/src/test/java/org/example/chaosgame/controller/HomeControllerTest.java @@ -2,15 +2,13 @@ package org.example.chaosgame.controller; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - class HomeControllerTest { - @Test - void getHomePage() { - } + @Test + void getHomePage() { + } - @Test - void mouseEvent() { - } + @Test + void mouseEvent() { + } } \ No newline at end of file diff --git a/src/test/java/org/example/chaosgame/controller/PageControllerTest.java b/src/test/java/org/example/chaosgame/controller/PageControllerTest.java index 79fca41197a16e135c9f3b8260766221980b9ae3..7cc833bfb1dc27426e54df472030aa6002e7e3ed 100644 --- a/src/test/java/org/example/chaosgame/controller/PageControllerTest.java +++ b/src/test/java/org/example/chaosgame/controller/PageControllerTest.java @@ -6,15 +6,15 @@ import static org.junit.jupiter.api.Assertions.*; class PageControllerTest { - @Test - void goToPage() { - } + @Test + void goToPage() { + } - @Test - void exitGame() { - } + @Test + void exitGame() { + } - @Test - void update() { - } + @Test + void update() { + } } \ No newline at end of file diff --git a/src/test/java/org/example/chaosgame/model/chaos/ChaosCanvasTest.java b/src/test/java/org/example/chaosgame/model/chaos/ChaosCanvasTest.java index f40039fca6451974a3406d9da0042e992d042987..a55ef4c5ce55787d116f5675911918a616002274 100644 --- a/src/test/java/org/example/chaosgame/model/chaos/ChaosCanvasTest.java +++ b/src/test/java/org/example/chaosgame/model/chaos/ChaosCanvasTest.java @@ -2,7 +2,11 @@ package org.example.chaosgame.model.chaos; import org.example.chaosgame.model.linalg.Vector2D; import org.example.chaosgame.model.transformations.AffineTransform2D; -import org.junit.jupiter.api.*; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.AfterEach; import static org.junit.jupiter.api.Assertions.*; @@ -33,7 +37,7 @@ class ChaosCanvasTest { @Test @DisplayName("Test positive getPixel") void getPixel() { - double pixel = chaosCanvas.getPixel(new Vector2D(0, 0)); + double pixel = chaosCanvas.getPixel(new Vector2D(0.5, 0.5)); assertEquals(0.0, pixel); } diff --git a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionFactoryTest.java b/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionFactoryTest.java index 8cf558da60a8667401e6b9568a32e57d75cf7565..00e0ad8b31c767e8df81fd56b14cb5b5f93fb962 100644 --- a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionFactoryTest.java +++ b/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionFactoryTest.java @@ -1,15 +1,21 @@ package org.example.chaosgame.model.chaos; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.util.List; +import org.example.chaosgame.controller.ChaosGameDescriptionFactory; import org.example.chaosgame.model.linalg.Complex; import org.example.chaosgame.model.linalg.Matrix2x2; import org.example.chaosgame.model.linalg.Vector2D; import org.example.chaosgame.model.transformations.AffineTransform2D; import org.example.chaosgame.model.transformations.JuliaTransform; -import org.junit.jupiter.api.*; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; class ChaosGameDescriptionFactoryTest { private static ChaosGameDescription expectedJulia; @@ -81,19 +87,22 @@ class ChaosGameDescriptionFactoryTest { class SierpinskiTests { @Test void testSierpinskiNotNull() { - ChaosGameDescription sierpinskiResult = ChaosGameDescriptionFactory.get(ChaosGameType.SIERPINSKI); + ChaosGameDescription sierpinskiResult = + ChaosGameDescriptionFactory.get(ChaosGameType.SIERPINSKI); assertNotNull(sierpinskiResult); } @Test void testSierpinskiInstanceOf() { - ChaosGameDescription sierpinskiResult = ChaosGameDescriptionFactory.get(ChaosGameType.SIERPINSKI); + ChaosGameDescription sierpinskiResult = + ChaosGameDescriptionFactory.get(ChaosGameType.SIERPINSKI); assertInstanceOf(ChaosGameDescription.class, sierpinskiResult); } @Test void testSierpinskiEquals() { - ChaosGameDescription sierpinskiResult = ChaosGameDescriptionFactory.get(ChaosGameType.SIERPINSKI); + ChaosGameDescription sierpinskiResult = + ChaosGameDescriptionFactory.get(ChaosGameType.SIERPINSKI); assertEquals(expectedSierpinski, sierpinskiResult); } } @@ -102,7 +111,8 @@ class ChaosGameDescriptionFactoryTest { class BarnsleyTests { @Test void testBarnsleyNotNull() { - ChaosGameDescription barnsleyResult = ChaosGameDescriptionFactory.get(ChaosGameType.BARNSLEY); + ChaosGameDescription barnsleyResult = + ChaosGameDescriptionFactory.get(ChaosGameType.BARNSLEY); assertNotNull(barnsleyResult); } diff --git a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionTest.java b/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionTest.java index 7720f3bedcf41177234efa917900c52c752f7619..c85c23b3fcbc496ad9fb13f41cdba2b9932a7eab 100644 --- a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionTest.java +++ b/src/test/java/org/example/chaosgame/model/chaos/ChaosGameDescriptionTest.java @@ -1,16 +1,22 @@ package org.example.chaosgame.model.chaos; -import org.example.chaosgame.model.linalg.Matrix2x2; -import org.example.chaosgame.model.linalg.Vector2D; -import org.example.chaosgame.model.transformations.Transform2D; -import org.example.chaosgame.model.transformations.AffineTransform2D; -import org.junit.jupiter.api.*; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.Arrays; import java.util.List; -import java.util.Vector; - -import static org.junit.jupiter.api.Assertions.*; +import org.example.chaosgame.model.linalg.Matrix2x2; +import org.example.chaosgame.model.linalg.Vector2D; +import org.example.chaosgame.model.transformations.AffineTransform2D; +import org.example.chaosgame.model.transformations.Transform2D; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; class ChaosGameDescriptionTest { private ChaosGameDescription chaosGameDescription; @@ -32,9 +38,11 @@ class ChaosGameDescriptionTest { vectorPartA = new Vector2D(0.0, 0.0); matrixB = new Matrix2x2(0.5, 0.0, 0.0, 0.5); vectorPartB = new Vector2D(0.25, 0.50); - transforms = Arrays.asList(new AffineTransform2D(matrixA, vectorPartA), new AffineTransform2D(matrixB, vectorPartB)); + transforms = Arrays.asList(new AffineTransform2D(matrixA, vectorPartA), + new AffineTransform2D(matrixB, vectorPartB)); probabilities = Arrays.asList(50, 50); - chaosGameDescription = new ChaosGameDescription(minCoords, maxCoords, transforms, probabilities); + chaosGameDescription = new ChaosGameDescription( + minCoords, maxCoords, transforms, probabilities); } @AfterEach @@ -78,7 +86,8 @@ class ChaosGameDescriptionTest { @Test @DisplayName("Set empty transforms") void testSetEmptyTransforms() { - assertThrows(IllegalArgumentException.class, () -> chaosGameDescription.setTransforms(List.of())); + assertThrows(IllegalArgumentException.class, + () -> chaosGameDescription.setTransforms(List.of())); } @Test @@ -91,7 +100,8 @@ class ChaosGameDescriptionTest { new AffineTransform2D(matrixB, vectorPartB), new AffineTransform2D(matrixA, vectorPartA) ); - assertThrows(IllegalArgumentException.class, () -> chaosGameDescription.setTransforms(tooManyTransforms)); + assertThrows(IllegalArgumentException.class, + () -> chaosGameDescription.setTransforms(tooManyTransforms)); } @Test @@ -99,7 +109,7 @@ class ChaosGameDescriptionTest { void testSetValidTransforms() { Matrix2x2 newMatrix = new Matrix2x2(9.9, 9.9, 9.9, 9.9); Vector2D newVector = new Vector2D(9.9, 9.9); - List<Transform2D> newTransforms = Arrays.asList(new AffineTransform2D(newMatrix, newVector)); + List<Transform2D> newTransforms = List.of(new AffineTransform2D(newMatrix, newVector)); chaosGameDescription.setTransforms(newTransforms); assertEquals(newTransforms, chaosGameDescription.getTransforms()); } @@ -129,25 +139,36 @@ class ChaosGameDescriptionTest { void testSetMinAndMaxCoords() { Vector2D newMinCoords = new Vector2D(-99, -99); - assertThrows(IllegalArgumentException.class, () -> new ChaosGameDescription(newMinCoords, maxCoords, transforms, probabilities)); - assertThrows(IllegalArgumentException.class, () -> new ChaosGameDescription(maxCoords, minCoords, transforms, probabilities)); - assertThrows(IllegalArgumentException.class, () -> new ChaosGameDescription(minCoords, minCoords, transforms, probabilities)); + assertThrows(IllegalArgumentException.class, + () -> new ChaosGameDescription(newMinCoords, maxCoords, transforms, probabilities)); + assertThrows(IllegalArgumentException.class, + () -> new ChaosGameDescription(maxCoords, minCoords, transforms, probabilities)); + assertThrows(IllegalArgumentException.class, + () -> new ChaosGameDescription(minCoords, minCoords, transforms, probabilities)); } } @Test void testEquals() { - ChaosGameDescription sameChaosGameDescription = new ChaosGameDescription(minCoords, maxCoords, transforms, probabilities); + ChaosGameDescription sameChaosGameDescription = + new ChaosGameDescription(minCoords, maxCoords, transforms, probabilities); assertEquals(chaosGameDescription, sameChaosGameDescription); assertNotNull(chaosGameDescription); assertNotEquals(chaosGameDescription, new Object()); - ChaosGameDescription differentChaosGameDescription = new ChaosGameDescription(new Vector2D(1, 1), new Vector2D(2, 2), transforms, probabilities); + ChaosGameDescription differentChaosGameDescription = + new ChaosGameDescription( + new Vector2D(1, 1), + new Vector2D(2, 2), + transforms, probabilities); assertNotEquals(chaosGameDescription, differentChaosGameDescription); } @Test void testHashCode() { - ChaosGameDescription sameChaosGameDescription = new ChaosGameDescription(minCoords, maxCoords, transforms, probabilities); + ChaosGameDescription sameChaosGameDescription + = new ChaosGameDescription( + minCoords, maxCoords, + transforms, probabilities); assertEquals(chaosGameDescription.hashCode(), sameChaosGameDescription.hashCode()); } } diff --git a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameFileHandlerTest.java b/src/test/java/org/example/chaosgame/model/chaos/ChaosGameFileHandlerTest.java index 84bcf44985f90fb6d6461b98a6d61a66a75a0aac..32c0fa2d95254b55ec7692efd67634e8735a3659 100644 --- a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameFileHandlerTest.java +++ b/src/test/java/org/example/chaosgame/model/chaos/ChaosGameFileHandlerTest.java @@ -1,12 +1,8 @@ package org.example.chaosgame.model.chaos; -import org.example.chaosgame.model.linalg.Complex; -import org.example.chaosgame.model.linalg.Matrix2x2; -import org.example.chaosgame.model.linalg.Vector2D; -import org.example.chaosgame.model.transformations.AffineTransform2D; -import org.example.chaosgame.model.transformations.JuliaTransform; -import org.example.chaosgame.model.transformations.Transform2D; -import org.junit.jupiter.api.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -14,8 +10,21 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; +import org.example.chaosgame.controller.ChaosGameFileHandler; +import org.example.chaosgame.model.linalg.Complex; +import org.example.chaosgame.model.linalg.Matrix2x2; +import org.example.chaosgame.model.linalg.Vector2D; +import org.example.chaosgame.model.transformations.AffineTransform2D; +import org.example.chaosgame.model.transformations.JuliaTransform; +import org.example.chaosgame.model.transformations.Transform2D; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + + + -import static org.junit.jupiter.api.Assertions.*; class ChaosGameFileHandlerTest { private static ChaosGameFileHandler fileHandler; @@ -67,7 +76,7 @@ class ChaosGameFileHandlerTest { } private Path createTempFileWithContent(String content) throws IOException { - Path tempFile = Files.createTempFile("chaosgame", ".txt"); + Path tempFile = Files.createTempFile("chaosGame", ".txt"); try (BufferedWriter writer = Files.newBufferedWriter(tempFile)) { writer.write(content); } @@ -118,7 +127,8 @@ class ChaosGameFileHandlerTest { @Test void testReadUnknownType() throws IOException { Path tempFile = createTempFileWithContent(invalidTypeContent); - assertThrows(IllegalArgumentException.class, () -> fileHandler.readFromFile(tempFile.toString()), + assertThrows(IllegalArgumentException.class, + () -> fileHandler.readFromFile(tempFile.toString()), "Unknown type of transformation should throw IllegalArgumentException"); Files.delete(tempFile); @@ -142,24 +152,30 @@ class ChaosGameFileHandlerTest { new Vector2D(-2.65, 0.0), new Vector2D(2.65, 10.0), List.of( - new AffineTransform2D(new Matrix2x2(0.0, 0.0, 0.0, 0.16), new Vector2D(0.0, 0.0)), - new AffineTransform2D(new Matrix2x2(0.85, 0.04, -0.04, 0.85), new Vector2D(0.0, 1.6)), - new AffineTransform2D(new Matrix2x2(0.2, -0.26, 0.23, 0.22), new Vector2D(0.0, 1.6)), - new AffineTransform2D(new Matrix2x2(-0.15, 0.28, 0.26, 0.24), new Vector2D(0.0, 0.44)) + new AffineTransform2D(new Matrix2x2(0.0, 0.0, 0.0, 0.16), + new Vector2D(0.0, 0.0)), + new AffineTransform2D(new Matrix2x2(0.85, 0.04, -0.04, 0.85), + new Vector2D(0.0, 1.6)), + new AffineTransform2D(new Matrix2x2(0.2, -0.26, 0.23, 0.22), + new Vector2D(0.0, 1.6)), + new AffineTransform2D(new Matrix2x2(-0.15, 0.28, 0.26, 0.24), + new Vector2D(0.0, 0.44)) ) ); - Path tempFile = Files.createTempFile("chaosgame", ".txt"); + Path tempFile = Files.createTempFile("chaosGame", ".txt"); fileHandler.writeToFile(description, tempFile.toString()); String expectedContent = - "Affine2D # Type of transformation\n" + - "-2.65, 0.0 # Min-coordinate\n" + - "2.65, 10.0 # Max-coordinate\n" + - "0.0, 0.0, 0.0, 0.16, 0.0, 0.0 # 1 transformation\n" + - "0.85, 0.04, -0.04, 0.85, 0.0, 1.6 # 2 transformation\n" + - "0.2, -0.26, 0.23, 0.22, 0.0, 1.6 # 3 transformation\n" + - "-0.15, 0.28, 0.26, 0.24, 0.0, 0.44 # 4 transformation\n"; + """ + Affine2D # Type of transformation + -2.65, 0.0 # Min-coordinate + 2.65, 10.0 # Max-coordinate + 0.0, 0.0, 0.0, 0.16, 0.0, 0.0 # 1 transformation + 0.85, 0.04, -0.04, 0.85, 0.0, 1.6 # 2 transformation + 0.2, -0.26, 0.23, 0.22, 0.0, 1.6 # 3 transformation + -0.15, 0.28, 0.26, 0.24, 0.0, 0.44 # 4 transformation + """; StringBuilder actualContent = new StringBuilder(); try (BufferedReader reader = Files.newBufferedReader(tempFile)) { @@ -182,14 +198,16 @@ class ChaosGameFileHandlerTest { List.of(new JuliaTransform(new Complex(-0.70176, -0.3842), 1)) ); - Path tempFile = Files.createTempFile("chaosgame", ".txt"); + Path tempFile = Files.createTempFile("chaosGame", ".txt"); fileHandler.writeToFile(description, tempFile.toString()); String expectedContent = - "Julia # Type of transformation\n" + - "-1.6, -1.0 # Min-coordinate\n" + - "1.6, 1.0 # Max-coordinate\n" + - "-0.70176, -0.3842 # Real and imaginary part of the complex number\n"; + """ + Julia # Type of transformation + -1.6, -1.0 # Min-coordinate + 1.6, 1.0 # Max-coordinate + -0.70176, -0.3842 # Real and imaginary part of the complex number + """; StringBuilder actualContent = new StringBuilder(); try (BufferedReader reader = Files.newBufferedReader(tempFile)) { diff --git a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameTest.java b/src/test/java/org/example/chaosgame/model/chaos/ChaosGameTest.java index 0c01145cbeaa45307681fe05c53124b66c596f49..5d967a7f1718f0bdc92c934b2abb08212207de42 100644 --- a/src/test/java/org/example/chaosgame/model/chaos/ChaosGameTest.java +++ b/src/test/java/org/example/chaosgame/model/chaos/ChaosGameTest.java @@ -1,16 +1,22 @@ package org.example.chaosgame.model.chaos; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; + +import java.util.List; import org.example.chaosgame.controller.interfaces.Observer; import org.example.chaosgame.model.linalg.Complex; import org.example.chaosgame.model.linalg.Matrix2x2; import org.example.chaosgame.model.linalg.Vector2D; import org.example.chaosgame.model.transformations.AffineTransform2D; import org.example.chaosgame.model.transformations.JuliaTransform; -import org.junit.jupiter.api.*; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; class ChaosGameTest { private static ChaosGameDescription juliaDescription; @@ -61,7 +67,7 @@ class ChaosGameTest { @Nested - class gettersTest { + class GetterTests { @Test void getCanvas() { assertNotNull(instance.getCanvas(), "The canvas should not be null"); @@ -69,7 +75,9 @@ class ChaosGameTest { @Test void getDescription() { - assertEquals(juliaDescription, instance.getDescription(), "The description should be the same"); + assertEquals(juliaDescription, + instance.getDescription(), + "The description should be the same"); } @Test @@ -153,14 +161,18 @@ class ChaosGameTest { } @Nested - class setDescription { + class SetDescription { @Test void setChaosGameDescription() { instance.setChaosGameDescription(affineDescriptionWithProb); - assertEquals(affineDescriptionWithProb, instance.getDescription(), "The description should be the same"); - assertEquals(0, instance.getTotalSteps(), "The total steps should be 0"); - assertEquals(500, instance.getCanvas().getWidth(), "The width should be 500"); - assertEquals(500, instance.getCanvas().getHeight(), "The height should be 500"); + assertEquals(affineDescriptionWithProb, instance.getDescription(), + "The description should be the same"); + assertEquals(0, instance.getTotalSteps(), + "The total steps should be 0"); + assertEquals(500, instance.getCanvas().getWidth(), + "The width should be 500"); + assertEquals(500, instance.getCanvas().getHeight(), + "The height should be 500"); } @Test @@ -173,8 +185,12 @@ class ChaosGameTest { @Test void setChaosCanvas() { instance.setChaosCanvas(new Vector2D(-1.6, -1), new Vector2D(1.6, 1)); - assertEquals(new Vector2D(-1.6, -1), instance.getDescription().getMinCoords(), "The min coords should be the same"); - assertEquals(new Vector2D(1.6, 1), instance.getDescription().getMaxCoords(), "The max coords should be the same"); + assertEquals(new Vector2D(-1.6, -1), + instance.getDescription().getMinCoords(), + "The min coords should be the same"); + assertEquals(new Vector2D(1.6, 1), + instance.getDescription().getMaxCoords(), + "The max coords should be the same"); } @Test diff --git a/src/test/java/org/example/chaosgame/model/chaos/ExploreGameTest.java b/src/test/java/org/example/chaosgame/model/chaos/ExploreGameTest.java index 00df0981b9b3f59bb362e539cb2faae5d7e84f10..ab56bbba654425e121d2513449db4646e630adce 100644 --- a/src/test/java/org/example/chaosgame/model/chaos/ExploreGameTest.java +++ b/src/test/java/org/example/chaosgame/model/chaos/ExploreGameTest.java @@ -11,7 +11,6 @@ import java.util.ArrayList; import java.util.List; import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; class ExploreGameTest { private ExploreGame exploreGame;