Revision: 29549
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29549
Author:   leifandersen
Date:     2010-06-18 21:50:40 +0200 (Fri, 18 Jun 2010)

Log Message:
-----------
1.  Started filling in image comparison tests.  Thusfar, I've tried two 
approaches.

a.  Summing up all of the pixels, of all three bands, and comparing it to a 
known good image.
b.  Summing up the bands seperatly, and comparing it to a known good picture.

The first one is much quicker.  I'm also thinking about seperating them into 
buckets (eg.  Comparing each couple of thousand pixels in discreet chuncks), 
that way when I allow for a margin of error, it would produce a more acurate 
picture.

2.  I've spent far too much time trying to get CTest to run multiple commands 
in a single test, thusfar with little success.  Hopefully I'll get something 
done soon, otherwise there will be a lot of extranios tests.

Modified Paths:
--------------
    branches/soc-2010-leifandersen/tests/pyunit/ops/physics/CMakeLists.txt
    branches/soc-2010-leifandersen/tests/pyunit/ops/physics/particle_image.py

Added Paths:
-----------
    branches/soc-2010-leifandersen/tests/pyunit/ops/physics/cube_hair.png
    branches/soc-2010-leifandersen/tests/pyunit/ops/physics/runtests.cmake

Modified: branches/soc-2010-leifandersen/tests/pyunit/ops/physics/CMakeLists.txt
===================================================================
--- branches/soc-2010-leifandersen/tests/pyunit/ops/physics/CMakeLists.txt      
2010-06-18 16:07:47 UTC (rev 29548)
+++ branches/soc-2010-leifandersen/tests/pyunit/ops/physics/CMakeLists.txt      
2010-06-18 19:50:40 UTC (rev 29549)
@@ -1,5 +1,9 @@
 ADD_TEST(Ops_Particle_Test ${Blender_BINARY_DIR}/bin/blender -P 
${Blender_BINARY_DIR}/tests/pyunit/ops/physics/particle.py)
-SET_TESTS_PROPERTIES(Ops_Particle_Test PROPERTIES PASS_REGULAR_EXPRESSION "OK")
 
-ADD_TEST(Ops_Particle_Test_Image_Compare python 
${Blender_BINARY_DIR}/tests/pyunit/ops/physics/particle_image.py)
-SET_TESTS_PROPERTIES(Ops_Particle_Test_Image_Compare PROPERTIES 
PASS_REGULAR_EXPRESSION "OK")
+ADD_TEST(NAME Ops_Particle_Test_Image_Compare
+       COMMAND ${CMAKE_COMMAND} -P 
${Blender_BINARY_DIR}/tests/pyunit/ops/physics/runtests.cmake
+)
+
+SET_TESTS_PROPERTIES(Ops_Particle_Test Ops_Particle_Test_Image_Compare 
+       PROPERTIES PASS_REGULAR_EXPRESSION "OK"
+)

Added: branches/soc-2010-leifandersen/tests/pyunit/ops/physics/cube_hair.png
===================================================================
(Binary files differ)


Property changes on: 
branches/soc-2010-leifandersen/tests/pyunit/ops/physics/cube_hair.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: 
branches/soc-2010-leifandersen/tests/pyunit/ops/physics/particle_image.py
===================================================================
--- branches/soc-2010-leifandersen/tests/pyunit/ops/physics/particle_image.py   
2010-06-18 16:07:47 UTC (rev 29548)
+++ branches/soc-2010-leifandersen/tests/pyunit/ops/physics/particle_image.py   
2010-06-18 19:50:40 UTC (rev 29549)
@@ -10,11 +10,37 @@
 
 
     def test_hair_generation(self):
-        pass
+        good = Image.open("cube_hair.png")
+        test = Image.open("cube_hair0001.png")
+        good_red = good_green = good_blue = test_red = test_green = test_blue 
= 0
 
+#       Much faster, should this be used instead?  Also, perhaps maping the 
pixel sums into sections
+#       might work.  Also, this doesn't really keep track of 
+#        good_sum = 0
+#        test_sum = 0
+#        for i in good.histogram():
+#            good_sum+=i
+#        for i in test.histogram():
+#            test_sum+=i
+        self.assertEquals(good.size, test.size)
+        for i in range(0, good.size[0]):
+            for j in range(0, good.size[1]):
+                good_red+=good.getpixel((i,j))[0]
+                good_green+=good.getpixel((i,j))[1]
+                good_blue+=good.getpixel((i,j))[2]
+                test_red+=test.getpixel((i,j))[0]
+                test_green+=test.getpixel((i,j))[1]
+                test_blue+=test.getpixel((i,j))[2]
+
+        self.assertEquals(good_red, test_red)
+        self.assertEquals(good_green, test_green)
+        self.assertEquals(good_blue, test_blue)
+
+
     def test_hair_ren_as_object(self):
         pass
 
+
     def test_hair_ren_as_group(self):
         pass
 

Added: branches/soc-2010-leifandersen/tests/pyunit/ops/physics/runtests.cmake
===================================================================
--- branches/soc-2010-leifandersen/tests/pyunit/ops/physics/runtests.cmake      
                        (rev 0)
+++ branches/soc-2010-leifandersen/tests/pyunit/ops/physics/runtests.cmake      
2010-06-18 19:50:40 UTC (rev 29549)
@@ -0,0 +1,10 @@
+#set(Blender_BUILD_DIR /home/leif/blender-svn/blender-build)
+
+macro(EXEC_CHECK CMD)
+    execute_process(COMMAND ${CMD} RESULT_VARIABLE CMD_RESULT)
+    if(CMD_RESULT)
+        message(FATAL_ERROR "Error running ${CMD}")
+    endif()
+endmacro()
+exec_check(${Blender_BUILD_DIR}/bin/blender -b 
${Blender_BUILD_DIR}/tests/pyunit/ops/physics/cube_hair.blend -o 
${Blender_BUILD_DIR}/tests/pyunit/ops/physics/cube_hair -F PNG -x 1 -f 1)
+exec_check(python 
${Blender_BINARY_DIR}/tests/pyunit/ops/physics/particle_image.py)


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to