diff --git a/src/test/java/koz01/java2/lab04/EquivalenceRoutines.java b/src/test/java/koz01/java2/lab04/EquivalenceRoutines.java
new file mode 100644
index 0000000000000000000000000000000000000000..450075150ddc89ad169518b8efa60f3c3d5368a3
--- /dev/null
+++ b/src/test/java/koz01/java2/lab04/EquivalenceRoutines.java
@@ -0,0 +1,24 @@
+package koz01.java2.lab04;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class EquivalenceRoutines {
+	static void assertReflexivity(Object obj) {
+		assertTrue(obj.equals(obj));
+	}
+	
+	static void assertSymmetry(Object obj1, Object obj2) {
+		if(obj1.equals(obj2)) {
+			assertTrue(obj2.equals(obj1));
+		} else {
+	
+			assertTrue(!obj2.equals(obj1));
+		}
+	}
+	
+	static void assertTransitivity(Object obj1, Object obj2, Object obj3) {
+		if(obj1.equals(obj2) && obj2.equals(obj3)) {
+			assertTrue(obj1.equals(obj3));
+		} 
+	}
+}
diff --git a/src/test/java/koz01/java2/lab04/TestEquals.java b/src/test/java/koz01/java2/lab04/TestEquals.java
index 1cf9283f3d955b148638193734bf73d881126816..419127e48a4df72d587ca3a53884a73b22d50b72 100644
--- a/src/test/java/koz01/java2/lab04/TestEquals.java
+++ b/src/test/java/koz01/java2/lab04/TestEquals.java
@@ -1,32 +1,62 @@
 package koz01.java2.lab04;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static koz01.java2.lab04.EquivalenceRoutines.assertReflexivity;
+import static koz01.java2.lab04.EquivalenceRoutines.assertSymmetry;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
+import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
+import org.junit.jupiter.api.Order;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestMethodOrder;
 
 import javafx.scene.paint.Color;
 
+@TestMethodOrder(OrderAnnotation.class)
 class TestEquals {
 
 	@Test
+	@Order(1)
+	void testLogicEquality() {
+		Point p1 = new Point(1,2);
+		Point p2 = new Point(1,2);
+		assertTrue(p1.equals(p2));
+		
+		Point p3 = new Point(1,1);
+		assertTrue(!p1.equals(p3));
+		
+		
+		Point cp1 = new ColorPoint(1,2,Color.BLACK);
+		Point cp2 = new ColorPoint(1,2,Color.BLACK);
+		assertTrue(cp1.equals(cp2));
+		
+		Point cp3 = new ColorPoint(1,1,Color.BLACK);
+		assertTrue(!cp1.equals(cp3));
+		
+		Point cp4 = new ColorPoint(1,2,Color.WHITE);
+		assertTrue(!cp1.equals(cp4));
+	}
+	
+	@Test
+	@Order(2)
 	void testRelfexity() {
 		Point p1 = new Point(1,2);
-		assertTrue(p1.equals(p1));
+		assertReflexivity(p1);
 	}
 
 	@Test
+	@Order(3)
 	void testSymmetry() {
 		Point p1 = new Point(1,2);
 		Point p2 = new Point(1,2);
-		Point p3 = new ColorPoint(1,1, Color.AZURE);
-		assertTrue(p1.equals(p2));
-		assertTrue(p2.equals(p1));
-		assertFalse(p1.equals(p3));
-		assertFalse(p3.equals(p1));
+		Point p3 = new ColorPoint(1,2, Color.AZURE);
+		
+		assertSymmetry(p1, p2);
+		assertSymmetry(p2, p3);
 	}
 	
-	
 	@Test
+	@Order(4)
 	void testTransitivity() {
 		Point p1 = new ColorPoint(1,2,Color.CYAN);
 		Point p2 = new Point(1,2);
@@ -37,6 +67,7 @@ class TestEquals {
 	}
 	
 	@Test
+	@Order(5)
 	void testLiskovPrinciple() {
 		Point p1 = new ColorPoint(1,2,Color.CYAN);
 		Point p2 = new ColorPoint(1,2, Color.CYAN) {