/// <summary/> protected void SaveBuffers(Color[,] screenCapture) { string filename = string.Empty; if (saveExpectedFB) { filename = logPrefix + "_Expected_fb.png"; PhotoConverter.SaveImageAs(renderBuffer.FrameBuffer, filename, true); LogImageSaved("Expected Image", filename); } if (saveExpectedTB) { filename = logPrefix + "_Expected_tb.png"; PhotoConverter.SaveImageAs(renderBuffer.ToleranceBuffer, filename, false); LogImageSaved("Expected Tolerance", filename); } if (saveExpectedZB) { Color[,] zbuffer = PhotoConverter.ToColorArray(renderBuffer.ZBuffer); filename = logPrefix + "_Expected_zb.png"; PhotoConverter.SaveImageAs(zbuffer, filename, false); LogImageSaved("Expected Z Buffer", filename); } RenderBuffer diff = RenderVerifier.ComputeDifference(screenCapture, renderBuffer); if (saveDiffFB) { filename = logPrefix + "_Diff_fb.png"; PhotoConverter.SaveImageAs(diff.FrameBuffer, filename, true); LogImageSaved("Diff Image", filename); } if (saveDiffTB) { filename = logPrefix + "_Diff_tb.png"; PhotoConverter.SaveImageAs(diff.ToleranceBuffer, filename, false); LogImageSaved("Diff Tolerance", filename); } if (saveDiffZB) { Color[,] zbuffer = PhotoConverter.ToColorArray(diff.ZBuffer); filename = logPrefix + "_Diff_zb.png"; PhotoConverter.SaveImageAs(zbuffer, filename, false); LogImageSaved("Diff Z Buffer", filename); } }
/// <summary/> public override void Verify() { // Compare the two screen captures RenderBuffer renderBuffer = new RenderBuffer(firstCapture, BackgroundColor); Color[,] screenCapture = GetScreenCapture(); int differences = RenderVerifier.VerifyRender(screenCapture, renderBuffer); // Log failures, if any if (differences > 0) { AddFailure("{0} pixels did not meet the tolerance criteria.", differences); } if (Failures != 0) { RenderBuffer diff = RenderVerifier.ComputeDifference(screenCapture, renderBuffer); PhotoConverter.SaveImageAs(screenCapture, logPrefix + "_Rendered.png"); PhotoConverter.SaveImageAs(renderBuffer.FrameBuffer, logPrefix + "_Expected_fb.png"); PhotoConverter.SaveImageAs(diff.ToleranceBuffer, logPrefix + "_Diff_tb.png"); PhotoConverter.SaveImageAs(diff.FrameBuffer, logPrefix + "_Diff_fb.png"); } }