OpenPTV/openptv — pull request #22 by alexlib (2013-08-03 21:28:16+00:00)
Title: Ray tracing submission to the liboptv 

ray_tracing is one of the core functions used by many higher order functions such as epi_to_mm, etc. This function takes the Exterior, Interior, Glass and multi-media parameters, the point of incidence of the vector on the air-side of glass and returns the position of the vector on the water side and the angles of the vector looking into the water side.

I created the unit-test suite for all the used subfunctions:

norm_cross
dot
matmul
ray_tracing

there are few important things to note in this submission:

the tests are a bit complex, allowing for floating values comparison within a predefined tolerance (1E-5 at the moment)

fail_unless is apparently appreciated by the Check (current version used on Mac OS X is 2.8.10) so we changed the tests to use
ck_assert_msg( ) function which is much more informative and helpful if we use:

make
make test
ctest -VV

ctest -VV is the most verbosed run of the check unit test suite, printing each of the failed messages. Use this template for other, more complicated tests.