From 98c05151cbbeed559a29d929351ae3e7c8e5be1a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Ko=C5=BEusznik?= <jan@kozusznik.cz>
Date: Mon, 1 Mar 2021 16:27:14 +0100
Subject: [PATCH] Equivalnce routines

---
 .../java2/lab04/EquivalenceRoutines.java      | 24 ++++++++++
 .../java/koz01/java2/lab04/TestEquals.java    | 47 +++++++++++++++----
 2 files changed, 63 insertions(+), 8 deletions(-)
 create mode 100644 src/test/java/koz01/java2/lab04/EquivalenceRoutines.java

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 0000000..4500751
--- /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 1cf9283..419127e 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) {
-- 
GitLab