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