diff --git a/src/main/java/edu/ntnu/stud/chaosgame/game/ChaosGameDescription.java b/src/main/java/edu/ntnu/stud/chaosgame/game/ChaosGameDescription.java
index 2d7915639ebeb7ad81d37231ecad021c4e063bc1..2b3e0782b20d2e1839be1942750f18daf0c00e8a 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/game/ChaosGameDescription.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/game/ChaosGameDescription.java
@@ -12,8 +12,8 @@ public class ChaosGameDescription {
 
     /**
      * Constructor for ChaosGameDescription
-     * @param minCoords Inputs a {@link Vector2D} vector of minimum coordinates for the chaos game.
-     * @param maxCoords Inputs a {@link Vector2D} vector of maximum coordinates for the chaos game.
+     * @param minCoords Inputs a {@link Vector2D} vector of lower left coordinates for the chaos game.
+     * @param maxCoords Inputs a {@link Vector2D} vector of upper right coordinates for the chaos game.
      * @param transforms Inputs a list of transformations {@link Transform2D} used in the chaos game.
      */
     public ChaosGameDescription(Vector2D minCoords, Vector2D maxCoords, List<Transform2D> transforms) {
diff --git a/src/main/java/edu/ntnu/stud/chaosgame/transformations/JuliaTransform.java b/src/main/java/edu/ntnu/stud/chaosgame/transformations/JuliaTransform.java
index 3833208512150e938d679017b794a16d408efb5e..c4072bb5685878c0840307e16c5f91ea0d0ad86c 100644
--- a/src/main/java/edu/ntnu/stud/chaosgame/transformations/JuliaTransform.java
+++ b/src/main/java/edu/ntnu/stud/chaosgame/transformations/JuliaTransform.java
@@ -35,11 +35,19 @@ public class JuliaTransform extends Transform2D {
      * @return The transformed point, represented by a vector {@link Vector2D}
      */
     public Vector2D transform(Vector2D point){
-        Vector2D temp1 = new Vector2D();
+        if (point == null) {
+            throw new IllegalArgumentException("Point should not be null");
+        }
+        Vector2D temp1;
+
         if (sign > 0){
         temp1 = point.add(c1);}
         else if (sign < 0){
             temp1 = point.subtract(c1);
+        } else {
+            // Maybe replace with logger based on SolarLint
+            System.out.println("Sign is zero. No transformation performed");
+            return new Complex(point.getX0(),point.getX1());
         }
         return new Complex(temp1.getX0(), temp1.getX1()).sqrt();
     }
diff --git a/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameDescriptionTest.java b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameDescriptionTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..aed5348ac2887b3164e2f8b9d48220737062fa81
--- /dev/null
+++ b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameDescriptionTest.java
@@ -0,0 +1,67 @@
+package edu.ntnu.stud.chaosgame.game;
+
+import edu.ntnu.stud.chaosgame.model.Complex;
+import edu.ntnu.stud.chaosgame.model.Matrix2x2;
+import edu.ntnu.stud.chaosgame.model.Vector2D;
+import edu.ntnu.stud.chaosgame.transformations.AffineTransform2D;
+import edu.ntnu.stud.chaosgame.transformations.JuliaTransform;
+import edu.ntnu.stud.chaosgame.transformations.Transform2D;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class ChaosGameDescriptionTest {
+    private Vector2D minCoords;
+
+    private Vector2D maxCoords;
+
+    private List<Transform2D> transforms2D;
+    private ChaosGameDescription description;
+
+    Complex complex;
+    Matrix2x2 matrix2x2;
+
+    Vector2D vector2D;
+
+    @BeforeEach
+    void setUp() {
+        minCoords = new Vector2D(0, 1);
+        maxCoords = new Vector2D(1,0);
+        complex = new Complex(0.3,0.6);
+        matrix2x2 = new Matrix2x2(0.5,1,1,0.5);
+        vector2D = new Vector2D(3,1);
+        transforms2D = new ArrayList<>();
+        transforms2D.add(new AffineTransform2D(matrix2x2,vector2D));
+        transforms2D.add(new JuliaTransform(complex,1));
+        description = new ChaosGameDescription(minCoords,maxCoords,transforms2D);
+    }
+
+    @Test
+    void getTransforms() {
+        assertInstanceOf(AffineTransform2D.class, description.getTransforms().getFirst());
+        assertInstanceOf(JuliaTransform.class, description.getTransforms().get(1));
+    }
+
+    @Test
+    void getMinCoords() {
+        assertEquals(0,minCoords.getX0());
+        assertEquals(1,minCoords.getX1());
+    }
+
+    @Test
+    void getMaxCoords() {
+        assertEquals(1,maxCoords.getX0());
+        assertEquals(0,maxCoords.getX1());
+    }
+
+    @Test
+    void testConstructorValues(){
+        assertEquals(minCoords,description.getMinCoords());
+        assertEquals(maxCoords,description.getMaxCoords());
+        assertEquals(transforms2D, description.getTransforms());
+    }
+}
\ No newline at end of file
diff --git a/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameFileHandlerTest.java b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameFileHandlerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..862f704f908557749f9aea5433e93237f63b4d20
--- /dev/null
+++ b/src/test/java/edu/ntnu/stud/chaosgame/game/ChaosGameFileHandlerTest.java
@@ -0,0 +1,4 @@
+import static org.junit.jupiter.api.Assertions.*;
+class ChaosGameFileHandlerTest {
+  
+}
\ No newline at end of file
diff --git a/src/test/java/edu/ntnu/stud/chaosgame/transformations/AffineTransform2DTest.java b/src/test/java/edu/ntnu/stud/chaosgame/transformations/AffineTransform2DTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..43a456448882d436c05101a536b064c0cba2ad74
--- /dev/null
+++ b/src/test/java/edu/ntnu/stud/chaosgame/transformations/AffineTransform2DTest.java
@@ -0,0 +1,56 @@
+package edu.ntnu.stud.chaosgame.transformations;
+
+import edu.ntnu.stud.chaosgame.model.Matrix2x2;
+import edu.ntnu.stud.chaosgame.model.Vector2D;
+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 static org.junit.jupiter.api.Assertions.*;
+class AffineTransform2DTest {
+
+
+
+
+    Matrix2x2 matrix2x2;
+    Vector2D vector2D;
+    AffineTransform2D affineTransform2D;
+
+    @BeforeEach
+    void setUp() {
+
+
+        matrix2x2 = new Matrix2x2(0.5,1,1,0.5);
+        vector2D = new Vector2D(3,1);
+        affineTransform2D = new AffineTransform2D(matrix2x2,vector2D);
+
+    }
+    @Nested
+    @DisplayName("Positive Affine Transform Tests")
+    class PositiveAffineTransform2DTest{
+        @Test
+        void transform() {
+            Vector2D point = new Vector2D(1, 1);
+            Vector2D expected = new Vector2D(4.5,2.5);
+            Vector2D actual = affineTransform2D.transform(point);
+            System.out.println(expected.getX0());
+            System.out.println(expected.getX1());
+            assertEquals(expected.getX0(), actual.getX0(), "The transform method should correctly transform the X0 component");
+            assertEquals(expected.getX1(), actual.getX1(), "The transform method should correctly transform the X1 component");
+
+        }
+
+        @Test
+        void getMatrix() {
+            Matrix2x2 actual = affineTransform2D.getMatrix();
+            assertEquals(matrix2x2, actual, "The getMatrix method should return the correct matrix");
+        }
+
+        @Test
+        void getVector() {
+            Vector2D actual = affineTransform2D.getVector();
+            assertEquals(vector2D, actual, "The getVector method should return the correct vector");
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/test/java/edu/ntnu/stud/chaosgame/transformations/JuliaTransformTest.java b/src/test/java/edu/ntnu/stud/chaosgame/transformations/JuliaTransformTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..75745265808b0a8fe1096def2b2ee83121601d44
--- /dev/null
+++ b/src/test/java/edu/ntnu/stud/chaosgame/transformations/JuliaTransformTest.java
@@ -0,0 +1,61 @@
+package edu.ntnu.stud.chaosgame.transformations;
+
+import edu.ntnu.stud.chaosgame.model.Complex;
+import edu.ntnu.stud.chaosgame.model.Matrix2x2;
+import edu.ntnu.stud.chaosgame.model.Vector2D;
+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 java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+class JuliaTransformTest {
+
+
+    Complex complex;
+    Matrix2x2 matrix2x2;
+    Vector2D vector2D;
+    JuliaTransform juliaTransform;
+
+    @BeforeEach
+    void setUp() {
+
+        complex = new Complex(0.3,0.6);
+        vector2D = new Vector2D(3,1);
+        juliaTransform = new JuliaTransform(complex,1);
+
+    }
+    @Nested
+    @DisplayName("Positive Tests for Julia Transformations")
+    class JuliaTransformPositiveTests{
+        @Test
+        void getC1(){
+            Complex actual = juliaTransform.getC1();
+            assertEquals(complex,actual,"The getC1 should return the correct complex number");
+
+        }
+        @Test
+        void transform(){
+            Vector2D expected = new Vector2D(1.866,0.428);
+            Vector2D actual = juliaTransform.transform(vector2D);
+            assertEquals(expected.getX0(),actual.getX0(),0.01);
+            assertEquals(expected.getX1(),actual.getX1(),0.01);
+
+        }
+    }
+    @Nested
+    @DisplayName("Negative Tests for Julia Transformations")
+    class JuliaTransformNegativeTests{
+        @Test
+        void transformZeroSign(){
+             JuliaTransform juliaTransformZeroSign = new JuliaTransform(complex,0);
+             assertEquals(vector2D.getX0(),juliaTransformZeroSign.transform(vector2D).getX0());
+             assertEquals(vector2D.getX1(),juliaTransformZeroSign.transform(vector2D).getX1());
+
+
+
+        }
+    }
+}
\ No newline at end of file