Code
/**
*Rot pro Pixel,Green,Aktivieren Sie den Elementwert der blauen Farbe.
*
*Unterschied in den Elementwerten(±)Erhöht oder verringert 5%Ist erlaubt.
*/
static void assertImages(BufferedImage actual, BufferedImage expected) {
assertThat("Die zu vergleichende Bildgröße ist unterschiedlich (vertikal)", actual.getHeight(), is(expected.getHeight()));
assertThat("Die zu vergleichende Bildgröße ist unterschiedlich (horizontal)", actual.getWidth(), is(expected.getWidth()));
//Prozentsatz toleriert Fehler
final int ACCEPTABLE_PERCENTAGE = 5;
//Fehler, der numerische Werte toleriert(±)
final int ACCEPTABLE_DIFFERENCE = 255 * ACCEPTABLE_PERCENTAGE / 100 / 2;
int width = actual.getWidth();
int height = actual.getHeight();
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
Color actualColor = new Color(actual.getRGB(x, y));
Color expectedColor = new Color(expected.getRGB(x, y));
assertThat("Farbelementwerte sind akzeptabel(±" + ACCEPTABLE_PERCENTAGE + "%)Jenseits: Rot",
(double) actualColor.getRed(),
is(closeTo((double) expectedColor.getRed(), ACCEPTABLE_DIFFERENCE)));
assertThat("Farbelementwerte sind akzeptabel(±" + ACCEPTABLE_PERCENTAGE + "%)Jenseits: Grün",
(double) actualColor.getGreen(),
is(closeTo((double) expectedColor.getGreen(), ACCEPTABLE_DIFFERENCE)));
assertThat("Farbelementwerte sind akzeptabel(±" + ACCEPTABLE_PERCENTAGE + "%)Jenseits: Blau",
(double) actualColor.getBlue(),
is(closeTo((double) expectedColor.getBlue(), ACCEPTABLE_DIFFERENCE)));
}
}
}
Recommended Posts