Skip to content
Snippets Groups Projects
Commit 743c10c2 authored by LABOUREL Arnaud's avatar LABOUREL Arnaud
Browse files

Ajout tests

parent ba7482ce
No related branches found
No related tags found
No related merge requests found
Pipeline #2087 passed
...@@ -13,9 +13,9 @@ repositories { ...@@ -13,9 +13,9 @@ repositories {
} }
dependencies { dependencies {
testImplementation('org.junit.jupiter:junit-jupiter-api:5.7.2', testImplementation('org.junit.jupiter:junit-jupiter-api:5.8.1',
'org.hamcrest:hamcrest-library:2.2', 'net.obvj:junit-utils:1.3.1') 'org.assertj:assertj-core:3.21.0')
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.2' testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine:5.8.1')
} }
test { test {
......
...@@ -13,10 +13,6 @@ public class ByteGrayColor implements GrayColor { ...@@ -13,10 +13,6 @@ public class ByteGrayColor implements GrayColor {
private final int grayLevel; private final int grayLevel;
public ByteGrayColor(){
this.grayLevel = MINIMUM_GRAY_LEVEL;
}
public ByteGrayColor(int grayLevel) { public ByteGrayColor(int grayLevel) {
this.grayLevel = grayLevel; this.grayLevel = grayLevel;
} }
......
...@@ -19,10 +19,14 @@ public class DecreaseGrayLevels implements Transform { ...@@ -19,10 +19,14 @@ public class DecreaseGrayLevels implements Transform {
} }
private void modifyPixel(GrayImage image, int x, int y) { private void modifyPixel(GrayImage image, int x, int y) {
int numberOfIntervals = nbGrayLevels - 1;
double sizeOfIntervals = 1. / (double) numberOfIntervals;
double luminosity = image.getPixelGrayColor(x, y).getLuminosity(); double luminosity = image.getPixelGrayColor(x, y).getLuminosity();
double newLuminosity = Math.floor(luminosity * numberOfIntervals) * sizeOfIntervals; double newLuminosity = getDecreaseGrayLevelsLuminosity(luminosity);
image.setPixel(new ByteGrayColor(newLuminosity), x, y); image.setPixel(new ByteGrayColor(newLuminosity), x, y);
} }
double getDecreaseGrayLevelsLuminosity(double luminosity) {
int numberOfIntervals = nbGrayLevels - 1;
double sizeOfIntervals = 1. / (double) numberOfIntervals;
return Math.floor(luminosity * numberOfIntervals) * sizeOfIntervals;
}
} }
...@@ -21,8 +21,8 @@ public class Display implements Initializable { ...@@ -21,8 +21,8 @@ public class Display implements Initializable {
this.image = MatrixGrayImage.createImageFromPGMFile("images/luminy.pgm"); this.image = MatrixGrayImage.createImageFromPGMFile("images/luminy.pgm");
Transform transform = new CompositeTransform(new Transform[] {new DecreaseGrayLevels(8), new Outline(0.05), new Invert()}); //Transform transform = new CompositeTransform(new Transform[] {new DecreaseGrayLevels(8), new Outline(0.05), new Invert()});
Transform transform = new Outline(0.025);
transform.applyTo(image); transform.applyTo(image);
image.writeIntoPGMFormat("/Users/arnaudlabourel/luminy.pgm"); image.writeIntoPGMFormat("/Users/arnaudlabourel/luminy.pgm");
render(); render();
......
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat; import static org.assertj.core.api.Assertions.*;
import static org.hamcrest.Matchers.closeTo;
import static org.hamcrest.Matchers.is;
public class ByteGrayColorTest { public class ByteGrayColorTest {
@Test @Test
public void testGetLuminosity_whenColorCreatedWithGrayLevel(){ public void testGetLuminosity_whenColorCreatedWithGrayLevel(){
ByteGrayColor black = new ByteGrayColor(0); ByteGrayColor black = new ByteGrayColor(0);
ByteGrayColor white = new ByteGrayColor(255); ByteGrayColor white = new ByteGrayColor(255);
assertThat(black.getLuminosity(), is(closeTo(0.,.0001))); assertThat(black.getLuminosity()).isCloseTo(0., within(.01));
assertThat(white.getLuminosity(), is(closeTo(1.,.0001))); assertThat(white.getLuminosity()).isCloseTo(1., within(.01));
} }
@Test @Test
public void testGetLuminosity_whenColorCreatedWithLuminosity(){ public void testGetLuminosity_whenColorCreatedWithLuminosity(){
ByteGrayColor color1 = new ByteGrayColor(.25); ByteGrayColor color1 = new ByteGrayColor(.25);
ByteGrayColor color2 = new ByteGrayColor(.75); ByteGrayColor color2 = new ByteGrayColor(.75);
assertThat(color1.getLuminosity(), is(closeTo(.25,.01))); assertThat(color1.getLuminosity()).isCloseTo(.25, within(.01));
assertThat(color2.getLuminosity(), is(closeTo(.75,.01))); assertThat(color2.getLuminosity()).isCloseTo(.75, within(.01));
}
@Test
public void testCompareTo_whenColorsCreatedWithGrayLevel(){
ByteGrayColor color1 = new ByteGrayColor(100);
ByteGrayColor color2 = new ByteGrayColor(100);
ByteGrayColor color3 = new ByteGrayColor(150);
assertThat(color1.compareTo(color3)).isNegative();
assertThat(color3.compareTo(color1)).isPositive();
assertThat(color1.compareTo(color3)).isEqualTo(-(color3.compareTo(color1)));
assertThat(color1.compareTo(color2)).isZero();
}
@Test
public void testCompareTo_whenColorsCreatedWithLuminosity(){
ByteGrayColor color1 = new ByteGrayColor(0.20);
ByteGrayColor color2 = new ByteGrayColor(0.20);
ByteGrayColor color3 = new ByteGrayColor(0.60);
assertThat(color1.compareTo(color3)).isNegative();
assertThat(color3.compareTo(color1)).isPositive();
assertThat(color1.compareTo(color3)).isEqualTo(-(color3.compareTo(color1)));
assertThat(color1.compareTo(color2)).isZero();
}
@Test
public void testCompareTo_whenColorsCreatedWithLuminosityAndGrayLevel(){
ByteGrayColor color1 = new ByteGrayColor(0.);
ByteGrayColor color2 = new ByteGrayColor(0);
ByteGrayColor color3 = new ByteGrayColor(100);
assertThat(color1.compareTo(color3)).isNegative();
assertThat(color3.compareTo(color1)).isPositive();
assertThat(color1.compareTo(color3)).isEqualTo(-(color3.compareTo(color1)));
assertThat(color1.compareTo(color2)).isZero();
} }
} }
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.*;
public class DecreaseGrayLevelsTest {
@Test
void testGetDecreaseGrayLevelsLuminosity(){
DecreaseGrayLevels decreaseGrayLevels = new DecreaseGrayLevels(5);
assertThat(decreaseGrayLevels.getDecreaseGrayLevelsLuminosity(0.125)).isCloseTo(0, within(.01));
assertThat(decreaseGrayLevels.getDecreaseGrayLevelsLuminosity(0.625)).isCloseTo(0.5, within(.01));
assertThat(decreaseGrayLevels.getDecreaseGrayLevelsLuminosity(1.)).isCloseTo(1., within(.01));
}
}
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat; import static org.assertj.core.api.Assertions.*;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.is;
class MatrixGrayImageTest { class MatrixGrayImageTest {
@Test @Test
void getWidth() { void testGetWidth() {
assertThat(new MatrixGrayImage(0,0).getWidth(), is(equalTo(0))); assertThat(new MatrixGrayImage(0,0).getWidth()).isEqualTo(0);
assertThat(new MatrixGrayImage(10,20).getWidth(), is(equalTo(10))); assertThat(new MatrixGrayImage(10,20).getWidth()).isEqualTo(10);
assertThat(new MatrixGrayImage(400,300).getWidth(), is(equalTo(400))); 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 @Test
void getHeight() { void testGetPixel_whenPixelHasBeenSet() {
assertThat(new MatrixGrayImage(0,0).getHeight(), is(equalTo(0))); GrayColor grey1 = new ByteGrayColor(0.2);
assertThat(new MatrixGrayImage(10,20).getHeight(), is(equalTo(20))); GrayColor grey2 = new ByteGrayColor(0.8);
assertThat(new MatrixGrayImage(400,300).getHeight(), is(equalTo(300))); 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment