From 1efa5a3306d40b89a693a26b999c3c196f40e324 Mon Sep 17 00:00:00 2001
From: arnaudlabourel <arnaud.labourel@univ-amu.fr>
Date: Wed, 6 Oct 2021 08:52:19 +0200
Subject: [PATCH] Correction tests

---
 build.gradle                           |  8 ++--
 src/test/java/ByteGrayColorTest.java   | 51 ++++++++++++++++++++++----
 src/test/java/MatrixGrayImageTest.java | 33 +++++++++++------
 3 files changed, 69 insertions(+), 23 deletions(-)

diff --git a/build.gradle b/build.gradle
index cef5ac5..4ae9191 100644
--- a/build.gradle
+++ b/build.gradle
@@ -13,9 +13,9 @@ repositories {
 }
 
 dependencies {
-    testImplementation('org.junit.jupiter:junit-jupiter-api:5.7.2',
-            'org.hamcrest:hamcrest-library:2.2', 'net.obvj:junit-utils:1.3.1')
-    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.2'
+    testImplementation('org.junit.jupiter:junit-jupiter-api:5.8.1',
+            'org.assertj:assertj-core:3.21.0')
+    testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine:5.8.1')
 }
 
 test {
@@ -24,4 +24,4 @@ test {
 
 application {
     mainClassName = "Main"
-}
\ No newline at end of file
+}
diff --git a/src/test/java/ByteGrayColorTest.java b/src/test/java/ByteGrayColorTest.java
index ddca387..2f05626 100644
--- a/src/test/java/ByteGrayColorTest.java
+++ b/src/test/java/ByteGrayColorTest.java
@@ -1,23 +1,60 @@
 import org.junit.jupiter.api.Test;
 
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.closeTo;
-import static org.hamcrest.Matchers.is;
+import static org.assertj.core.api.Assertions.*;
 
 public class ByteGrayColorTest {
   @Test
   public void testGetLuminosity_whenColorCreatedWithGrayLevel(){
     ByteGrayColor black = new ByteGrayColor(0);
     ByteGrayColor white = new ByteGrayColor(255);
-    assertThat(black.getLuminosity(), is(closeTo(0.,.0001)));
-    assertThat(white.getLuminosity(), is(closeTo(1.,.0001)));
+    assertThat(black.getLuminosity()).isCloseTo(0., within(.01));
+    assertThat(white.getLuminosity()).isCloseTo(1., within(.01));
   }
 
   @Test
   public void testGetLuminosity_whenColorCreatedWithLuminosity(){
     ByteGrayColor color1 = new ByteGrayColor(.25);
     ByteGrayColor color2 = new ByteGrayColor(.75);
-    assertThat(color1.getLuminosity(), is(closeTo(.25,.01)));
-    assertThat(color2.getLuminosity(), is(closeTo(.75,.01)));
+    assertThat(color1.getLuminosity()).isCloseTo(.25, within(.01));
+    assertThat(color2.getLuminosity()).isCloseTo(.75, within(.01));
+  }
+
+  @Test
+  public void testCompareTo_whenColorsCreatedWithGrayLevel(){
+    ByteGrayColor color1 = new ByteGrayColor(100);
+    ByteGrayColor color2 = new ByteGrayColor(150);
+    ByteGrayColor color3 = new ByteGrayColor(200);
+    ByteGrayColor sameGrayLevelAsColor1 = new ByteGrayColor(100);
+    assertThat(color1.compareTo(color2)).isNegative();
+    assertThat(color2.compareTo(color3)).isNegative();
+    assertThat(color1.compareTo(color3)).isNegative();
+    assertThat(color2.compareTo(color1)).isPositive();
+    assertThat(color1.compareTo(sameGrayLevelAsColor1)).isZero();
+    assertThat(color1.compareTo(color2)).isEqualTo(sameGrayLevelAsColor1.compareTo(color2));
+  }
+
+  @Test
+  public void testCompareTo_whenColorsCreatedWithLuminosity(){
+    ByteGrayColor color1 = new ByteGrayColor(0.20);
+    ByteGrayColor color2 = new ByteGrayColor(0.60);
+    ByteGrayColor color3 = new ByteGrayColor(0.80);
+    ByteGrayColor sameLuminosityAsColor1 = new ByteGrayColor(0.20);
+    assertThat(color1.compareTo(color2)).isNegative();
+    assertThat(color2.compareTo(color3)).isNegative();
+    assertThat(color1.compareTo(color3)).isNegative();
+    assertThat(color2.compareTo(color1)).isPositive();
+    assertThat(color1.compareTo(sameLuminosityAsColor1)).isZero();
+    assertThat(color1.compareTo(color2)).isEqualTo(sameLuminosityAsColor1.compareTo(color2));
+  }
+
+  @Test
+  public void testCompareTo_whenColorsCreatedWithLuminosityAndGrayLevel(){
+    ByteGrayColor color1 = new ByteGrayColor(0.);
+    ByteGrayColor color2 = new ByteGrayColor(150);
+    ByteGrayColor color3 = new ByteGrayColor(1.);
+    assertThat(color1.compareTo(color2)).isNegative();
+    assertThat(color2.compareTo(color3)).isNegative();
+    assertThat(color1.compareTo(color3)).isNegative();
+    assertThat(color2.compareTo(color1)).isPositive();
   }
 }
diff --git a/src/test/java/MatrixGrayImageTest.java b/src/test/java/MatrixGrayImageTest.java
index 0664e25..a08520d 100644
--- a/src/test/java/MatrixGrayImageTest.java
+++ b/src/test/java/MatrixGrayImageTest.java
@@ -1,23 +1,32 @@
 import org.junit.jupiter.api.Test;
 
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.is;
-
+import static org.assertj.core.api.Assertions.*;
+import static org.assertj.core.api.Assertions.assertThat;
 
 class MatrixGrayImageTest {
 
     @Test
-    void getWidth() {
-        assertThat(new MatrixGrayImage(0,0).getWidth(), is(equalTo(0)));
-        assertThat(new MatrixGrayImage(10,20).getWidth(), is(equalTo(10)));
-        assertThat(new MatrixGrayImage(400,300).getWidth(), is(equalTo(400)));
+    void testGetWidth() {
+        assertThat(new MatrixGrayImage(0,0).getWidth()).isEqualTo(0);
+        assertThat(new MatrixGrayImage(10,20).getWidth()).isEqualTo(10);
+        assertThat(new MatrixGrayImage(400,300).getWidth()).isEqualTo(400);
+    }
+
+    @Test
+    void testGetHeight() {
+        assertThat(new MatrixGrayImage(0,0).getHeight()).isEqualTo(0);
+        assertThat(new MatrixGrayImage(10,20).getHeight()).isEqualTo(20);
+        assertThat(new MatrixGrayImage(400,300).getHeight()).isEqualTo(300);
     }
 
     @Test
-    void getHeight() {
-        assertThat(new MatrixGrayImage(0,0).getHeight(), is(equalTo(0)));
-        assertThat(new MatrixGrayImage(10,20).getHeight(), is(equalTo(20)));
-        assertThat(new MatrixGrayImage(400,300).getHeight(), is(equalTo(300)));
+    void testGetPixel_whenPixelHasBeenSet() {
+        GrayColor grey1 = new ByteGrayColor(0.2);
+        GrayColor grey2 = new ByteGrayColor(0.8);
+        MatrixGrayImage image = new MatrixGrayImage(10, 10);
+        image.setPixel(grey1, 1, 1);
+        assertThat(image.getPixelGrayColor(1,1)).isEqualTo(grey1);
+        image.setPixel(grey2, 3, 9);
+        assertThat(image.getPixelGrayColor(3,9)).isEqualTo(grey2);
     }
 }
\ No newline at end of file
-- 
GitLab