update image assert for testing
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit

This commit is contained in:
austin 2024-08-20 15:01:13 -04:00
parent 5ed2263fc5
commit 2e5ebb392b
2 changed files with 27 additions and 4 deletions

View File

@ -1,3 +1,3 @@
#maven.buildNumber.plugin properties file
#Mon Aug 19 13:16:30 EDT 2024
buildNumber=280
#Tue Aug 20 15:00:55 EDT 2024
buildNumber=281

View File

@ -15,6 +15,11 @@ import electrosphere.renderer.RenderingEngine;
* Utilities for comparing renders
*/
public class TestRenderingUtils {
/**
* The threshold at which we say the colors are 'close enough'
*/
static final int COLOR_COMPARE_THRESHOLD = 3;
/**
* Asserts that the most recent render matches the image stored at the provided filepath
@ -41,10 +46,28 @@ public class TestRenderingUtils {
//pixel-by-pixel check
for(int x = 0; x < testData.getWidth(); x++){
for(int y = 0; y < testData.getHeight(); y++){
if(testData.getRGB(x, y) != screenshot.getRGB(x, y)){
//get from-disk rgba
int sourceRed = testData.getRGB(x, y) & 0xff;
int sourceGreen = (testData.getRGB(x, y) & 0xff00) >> 8;
int sourceBlue = (testData.getRGB(x, y) & 0xff0000) >> 16;
int sourceAlpha = (testData.getRGB(x, y) & 0xff000000) >>> 24;
//get from-render rgba
int renderRed = screenshot.getRGB(x, y) & 0xff;
int renderGreen = (screenshot.getRGB(x, y) & 0xff00) >> 8;
int renderBlue = (screenshot.getRGB(x, y) & 0xff0000) >> 16;
int renderAlpha = (screenshot.getRGB(x, y) & 0xff000000) >>> 24;
if(
Math.abs(sourceRed - renderRed) > COLOR_COMPARE_THRESHOLD ||
Math.abs(sourceGreen - renderGreen) > COLOR_COMPARE_THRESHOLD ||
Math.abs(sourceBlue - renderBlue) > COLOR_COMPARE_THRESHOLD ||
Math.abs(sourceAlpha - renderAlpha) > COLOR_COMPARE_THRESHOLD
){
onFailure.run();
fail("Colors aren't approximately the same!");
}
assertEquals(testData.getRGB(x, y),screenshot.getRGB(x, y));
}
}
}