diff options
author | José Fonseca <[email protected]> | 2009-03-30 17:51:55 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2009-03-30 17:51:55 +0100 |
commit | a8251d041ac323712a00d5fed3e51fa5ad7bc987 (patch) | |
tree | 1f09b6fd2589b3f896601de0c15c47fe96380c6c | |
parent | af25470a5430c68e157489ff095baa5d548d8783 (diff) |
python/test: Move the image comparison logic to the base test class.
-rw-r--r-- | src/gallium/state_trackers/python/tests/base.py | 21 | ||||
-rw-r--r-- | src/gallium/state_trackers/python/tests/texture.py | 18 |
2 files changed, 21 insertions, 18 deletions
diff --git a/src/gallium/state_trackers/python/tests/base.py b/src/gallium/state_trackers/python/tests/base.py index 8477aa5fc9b..2df2af0cdf2 100644 --- a/src/gallium/state_trackers/python/tests/base.py +++ b/src/gallium/state_trackers/python/tests/base.py @@ -33,6 +33,8 @@ Loosely inspired on Python's unittest module. """ +import sys + from gallium import * @@ -115,6 +117,23 @@ class Test: self._run(result) result.summary() + def assert_rgba(self, surface, x, y, w, h, expected_rgba, pixel_tol=4.0/256, surface_tol=0.85): + total = h*w + different = surface.compare_tile_rgba(x, y, w, h, expected_rgba, tol=pixel_tol) + if different: + sys.stderr.write("%u out of %u pixels differ\n" % (different, total)) + + if float(total - different)/float(total) < surface_tol: + if 0: + rgba = FloatArray(h*w*4) + surface.get_tile_rgba(x, y, w, h, rgba) + show_image(w, h, Result=rgba, Expected=expected_rgba) + save_image(w, h, rgba, "result.png") + save_image(w, h, expected_rgba, "expected.png") + #sys.exit(0) + + raise TestFailure + class TestCase(Test): @@ -190,4 +209,4 @@ class TestResult: print "%u tests, %u passed, %u skipped, %u failed" % (self.tests, self.passed, self.skipped, self.failed) for description in self.failed_descriptions: print " %s" % description -
\ No newline at end of file + diff --git a/src/gallium/state_trackers/python/tests/texture.py b/src/gallium/state_trackers/python/tests/texture.py index bd95f734fe7..58b7e1c1246 100644 --- a/src/gallium/state_trackers/python/tests/texture.py +++ b/src/gallium/state_trackers/python/tests/texture.py @@ -27,7 +27,6 @@ ########################################################################## -import sys from gallium import * from base import * @@ -291,22 +290,7 @@ class TextureTest(TestCase): cbuf = cbuf_tex.get_surface() - total = h*w - different = cbuf.compare_tile_rgba(x, y, w, h, expected_rgba, tol=4.0/256) - if different: - sys.stderr.write("%u out of %u pixels differ\n" % (different, total)) - - if float(total - different)/float(total) < 0.85: - - if 0: - rgba = FloatArray(h*w*4) - cbuf.get_tile_rgba(x, y, w, h, rgba) - show_image(w, h, Result=rgba, Expected=expected_rgba) - save_image(w, h, rgba, "result.png") - save_image(w, h, expected_rgba, "expected.png") - #sys.exit(0) - - raise TestFailure + self.assert_rgba(cbuf, x, y, w, h, expected_rgba, 4.0/256, 0.85) del ctx |