Revision: 286
http://cgkit.svn.sourceforge.net/cgkit/?rev=286&view=rev
Author: mbaas
Date: 2009-02-10 09:26:28 +0000 (Tue, 10 Feb 2009)
Log Message:
-----------
Update
Modified Paths:
--------------
cgkit/trunk/unittests/test_pointcloud.py
Modified: cgkit/trunk/unittests/test_pointcloud.py
===================================================================
--- cgkit/trunk/unittests/test_pointcloud.py 2009-02-10 07:49:42 UTC (rev 285)
+++ cgkit/trunk/unittests/test_pointcloud.py 2009-02-10 09:26:28 UTC (rev 286)
@@ -8,10 +8,14 @@
import numpy
class TestPointCloud(unittest.TestCase):
+ """Test the pointcloud module.
+ """
def __init__(self, *args, **kwargs):
unittest.TestCase.__init__(self, *args, **kwargs)
self.libName = "3delight"
+# self.libName = "prman"
+ self.accuracy = 3
def testSinglePoints(self):
"""Test writing/reading individual points.
@@ -28,71 +32,77 @@
self.assertEqual(3, ptc.npoints)
self.assertEqual([], ptc.variables)
self.assertEqual(0, ptc.datasize)
- print ptc.bbox
+# print ptc.bbox
+ self.assertAlmostEqual(-1.0, ptc.bbox[0], 1)
+ self.assertAlmostEqual(0.17, ptc.bbox[1], 1)
+ self.assertAlmostEqual( 0.3, ptc.bbox[2], 1)
+ self.assertAlmostEqual( 1.0, ptc.bbox[3], 1)
+ self.assertAlmostEqual( 2.0, ptc.bbox[4], 1)
+ self.assertAlmostEqual(42.0, ptc.bbox[5], 1)
# self.assertEqual(16, len(ptc.world2eye))
-# self.assertAlmostEqual(1, ptc.world2eye[0], 5)
-# self.assertAlmostEqual(2, ptc.world2eye[1], 5)
-# self.assertAlmostEqual(3, ptc.world2eye[2], 5)
-# self.assertAlmostEqual(4, ptc.world2eye[3], 5)
-# self.assertAlmostEqual(5, ptc.world2eye[4], 5)
-# self.assertAlmostEqual(6, ptc.world2eye[5], 5)
-# self.assertAlmostEqual(7, ptc.world2eye[6], 5)
-# self.assertAlmostEqual(8, ptc.world2eye[7], 5)
-# self.assertAlmostEqual(9, ptc.world2eye[8], 5)
-# self.assertAlmostEqual(10, ptc.world2eye[9], 5)
-# self.assertAlmostEqual(11, ptc.world2eye[10], 5)
-# self.assertAlmostEqual(12, ptc.world2eye[11], 5)
-# self.assertAlmostEqual(13, ptc.world2eye[12], 5)
-# self.assertAlmostEqual(14, ptc.world2eye[13], 5)
-# self.assertAlmostEqual(15, ptc.world2eye[14], 5)
-# self.assertAlmostEqual(16, ptc.world2eye[15], 5)
+# self.assertAlmostEqual(1, ptc.world2eye[0], self.accuracy)
+# self.assertAlmostEqual(2, ptc.world2eye[1], self.accuracy)
+# self.assertAlmostEqual(3, ptc.world2eye[2], self.accuracy)
+# self.assertAlmostEqual(4, ptc.world2eye[3], self.accuracy)
+# self.assertAlmostEqual(5, ptc.world2eye[4], self.accuracy)
+# self.assertAlmostEqual(6, ptc.world2eye[5], self.accuracy)
+# self.assertAlmostEqual(7, ptc.world2eye[6], self.accuracy)
+# self.assertAlmostEqual(8, ptc.world2eye[7], self.accuracy)
+# self.assertAlmostEqual(9, ptc.world2eye[8], self.accuracy)
+# self.assertAlmostEqual(10, ptc.world2eye[9], self.accuracy)
+# self.assertAlmostEqual(11, ptc.world2eye[10], self.accuracy)
+# self.assertAlmostEqual(12, ptc.world2eye[11], self.accuracy)
+# self.assertAlmostEqual(13, ptc.world2eye[12], self.accuracy)
+# self.assertAlmostEqual(14, ptc.world2eye[13], self.accuracy)
+# self.assertAlmostEqual(15, ptc.world2eye[14], self.accuracy)
+# self.assertAlmostEqual(16, ptc.world2eye[15], self.accuracy)
# self.assertEqual(16, len(ptc.world2ndc))
-# self.assertAlmostEqual(0.1, ptc.world2ndc[0], 5)
-# self.assertAlmostEqual(0.2, ptc.world2ndc[1], 5)
-# self.assertAlmostEqual(0.3, ptc.world2ndc[2], 5)
-# self.assertAlmostEqual(0.4, ptc.world2ndc[3], 5)
-# self.assertAlmostEqual(0.5, ptc.world2ndc[4], 5)
-# self.assertAlmostEqual(0.6, ptc.world2ndc[5], 5)
-# self.assertAlmostEqual(0.7, ptc.world2ndc[6], 5)
-# self.assertAlmostEqual(0.8, ptc.world2ndc[7], 5)
-# self.assertAlmostEqual(0.9, ptc.world2ndc[8], 5)
-# self.assertAlmostEqual(0.10, ptc.world2ndc[9], 5)
-# self.assertAlmostEqual(0.11, ptc.world2ndc[10], 5)
-# self.assertAlmostEqual(0.12, ptc.world2ndc[11], 5)
-# self.assertAlmostEqual(0.13, ptc.world2ndc[12], 5)
-# self.assertAlmostEqual(0.14, ptc.world2ndc[13], 5)
-# self.assertAlmostEqual(0.15, ptc.world2ndc[14], 5)
-# self.assertAlmostEqual(0.16, ptc.world2ndc[15], 5)
+# self.assertAlmostEqual(0.1, ptc.world2ndc[0], self.accuracy)
+# self.assertAlmostEqual(0.2, ptc.world2ndc[1], self.accuracy)
+# self.assertAlmostEqual(0.3, ptc.world2ndc[2], self.accuracy)
+# self.assertAlmostEqual(0.4, ptc.world2ndc[3], self.accuracy)
+# self.assertAlmostEqual(0.5, ptc.world2ndc[4], self.accuracy)
+# self.assertAlmostEqual(0.6, ptc.world2ndc[5], self.accuracy)
+# self.assertAlmostEqual(0.7, ptc.world2ndc[6], self.accuracy)
+# self.assertAlmostEqual(0.8, ptc.world2ndc[7], self.accuracy)
+# self.assertAlmostEqual(0.9, ptc.world2ndc[8], self.accuracy)
+# self.assertAlmostEqual(0.10, ptc.world2ndc[9], self.accuracy)
+# self.assertAlmostEqual(0.11, ptc.world2ndc[10], self.accuracy)
+# self.assertAlmostEqual(0.12, ptc.world2ndc[11], self.accuracy)
+# self.assertAlmostEqual(0.13, ptc.world2ndc[12], self.accuracy)
+# self.assertAlmostEqual(0.14, ptc.world2ndc[13], self.accuracy)
+# self.assertAlmostEqual(0.15, ptc.world2ndc[14], self.accuracy)
+# self.assertAlmostEqual(0.16, ptc.world2ndc[15], self.accuracy)
self.assertEqual((640.0, 480.0, 1.0), ptc.format)
pos,norm,rad,data = ptc.readDataPoint()
- self.assertAlmostEqual(0.1, pos[0], 5)
- self.assertAlmostEqual(0.2, pos[1], 5)
- self.assertAlmostEqual(0.3, pos[2], 5)
- self.assertAlmostEqual(0, norm[0], 5)
- self.assertAlmostEqual(1, norm[1], 5)
- self.assertAlmostEqual(0, norm[2], 5)
- self.assertAlmostEqual(0.5, rad, 5)
+ self.assertAlmostEqual(0.1, pos[0], self.accuracy)
+ self.assertAlmostEqual(0.2, pos[1], self.accuracy)
+ self.assertAlmostEqual(0.3, pos[2], self.accuracy)
+ self.assertAlmostEqual(0, norm[0], self.accuracy)
+ self.assertAlmostEqual(1, norm[1], self.accuracy)
+ self.assertAlmostEqual(0, norm[2], self.accuracy)
+ self.assertAlmostEqual(0.5, rad, self.accuracy)
self.assertEqual({}, data)
pos,norm,rad,data = ptc.readDataPoint()
- self.assertAlmostEqual(1.0, pos[0], 5)
- self.assertAlmostEqual(2.0, pos[1], 5)
- self.assertAlmostEqual(3.0, pos[2], 5)
- self.assertAlmostEqual(1, norm[0], 5)
- self.assertAlmostEqual(0, norm[1], 5)
- self.assertAlmostEqual(0, norm[2], 5)
- self.assertAlmostEqual(1.0, rad, 5)
+ self.assertAlmostEqual(1.0, pos[0], self.accuracy)
+ self.assertAlmostEqual(2.0, pos[1], self.accuracy)
+ self.assertAlmostEqual(3.0, pos[2], self.accuracy)
+ self.assertAlmostEqual(1, norm[0], self.accuracy)
+ self.assertAlmostEqual(0, norm[1], self.accuracy)
+ self.assertAlmostEqual(0, norm[2], self.accuracy)
+ self.assertAlmostEqual(1.0, rad, self.accuracy)
self.assertEqual({}, data)
pos,norm,rad,data = ptc.readDataPoint()
- self.assertAlmostEqual(-1.0, pos[0], 5)
- self.assertAlmostEqual(0.17, pos[1], 5)
- self.assertAlmostEqual(42.0, pos[2], 5)
- self.assertAlmostEqual(0, norm[0], 5)
- self.assertAlmostEqual(0, norm[1], 5)
- self.assertAlmostEqual(1, norm[2], 5)
- self.assertAlmostEqual(1.5, rad, 5)
+ self.assertAlmostEqual(-1.0, pos[0], self.accuracy)
+ self.assertAlmostEqual(0.17, pos[1], self.accuracy)
+ self.assertAlmostEqual(42.0, pos[2], self.accuracy)
+ self.assertAlmostEqual(0, norm[0], self.accuracy)
+ self.assertAlmostEqual(0, norm[1], self.accuracy)
+ self.assertAlmostEqual(1, norm[2], self.accuracy)
+ self.assertAlmostEqual(1.5, rad, self.accuracy)
self.assertEqual({}, data)
self.assertRaises(EOFError, lambda: ptc.readDataPoint())
@@ -119,59 +129,59 @@
rs = (2*ctypes.c_float)()
ds = (8*ctypes.c_float)()
ptc.readDataPoints(2, (ps,ns,rs,ds))
- self.assertAlmostEqual(0.4, ps[0], 5)
- self.assertAlmostEqual(0.8, ps[1], 5)
- self.assertAlmostEqual(1.0, ps[2], 5)
- self.assertAlmostEqual(0.9, ps[3], 5)
- self.assertAlmostEqual(0.7, ps[4], 5)
- self.assertAlmostEqual(0.6, ps[5], 5)
- self.assertAlmostEqual(1, ns[0], 5)
- self.assertAlmostEqual(0, ns[1], 5)
- self.assertAlmostEqual(0, ns[2], 5)
- self.assertAlmostEqual(0, ns[3], 5)
- self.assertAlmostEqual(0, ns[4], 5)
- self.assertAlmostEqual(1, ns[5], 5)
- self.assertAlmostEqual(0.4, rs[0], 5)
- self.assertAlmostEqual(0.5, rs[1], 5)
- self.assertAlmostEqual(12.0, ds[0], 5)
- self.assertAlmostEqual(1, ds[1], 5)
- self.assertAlmostEqual(2, ds[2], 5)
- self.assertAlmostEqual(3, ds[3], 5)
- self.assertAlmostEqual(42.0, ds[4], 5)
- self.assertAlmostEqual(-1, ds[5], 5)
- self.assertAlmostEqual(-2, ds[6], 5)
- self.assertAlmostEqual(-3, ds[7], 5)
+ self.assertAlmostEqual(0.4, ps[0], self.accuracy)
+ self.assertAlmostEqual(0.8, ps[1], self.accuracy)
+ self.assertAlmostEqual(1.0, ps[2], self.accuracy)
+ self.assertAlmostEqual(0.9, ps[3], self.accuracy)
+ self.assertAlmostEqual(0.7, ps[4], self.accuracy)
+ self.assertAlmostEqual(0.6, ps[5], self.accuracy)
+ self.assertAlmostEqual(1, ns[0], self.accuracy)
+ self.assertAlmostEqual(0, ns[1], self.accuracy)
+ self.assertAlmostEqual(0, ns[2], self.accuracy)
+ self.assertAlmostEqual(0, ns[3], self.accuracy)
+ self.assertAlmostEqual(0, ns[4], self.accuracy)
+ self.assertAlmostEqual(1, ns[5], self.accuracy)
+ self.assertAlmostEqual(0.4, rs[0], self.accuracy)
+ self.assertAlmostEqual(0.5, rs[1], self.accuracy)
+ self.assertAlmostEqual(12.0, ds[0], self.accuracy)
+ self.assertAlmostEqual(1, ds[1], self.accuracy)
+ self.assertAlmostEqual(2, ds[2], self.accuracy)
+ self.assertAlmostEqual(3, ds[3], self.accuracy)
+ self.assertAlmostEqual(42.0, ds[4], self.accuracy)
+ self.assertAlmostEqual(-1, ds[5], self.accuracy)
+ self.assertAlmostEqual(-2, ds[6], self.accuracy)
+ self.assertAlmostEqual(-3, ds[7], self.accuracy)
ptc.close()
ptc = pointcloud.open("tmp/pointcloud2.ptc", "r", self.libName)
pos,norm,rad,data = ptc.readDataPoint()
- self.assertAlmostEqual(0.4, pos[0], 5)
- self.assertAlmostEqual(0.8, pos[1], 5)
- self.assertAlmostEqual(1.0, pos[2], 5)
- self.assertAlmostEqual(1, norm[0], 5)
- self.assertAlmostEqual(0, norm[1], 5)
- self.assertAlmostEqual(0, norm[2], 5)
- self.assertAlmostEqual(0.4, rad, 5)
- self.assertAlmostEqual(12, data["fspam"], 5)
- self.assertAlmostEqual(1, data["vspam"][0], 5)
- self.assertAlmostEqual(2, data["vspam"][1], 5)
- self.assertAlmostEqual(3, data["vspam"][2], 5)
+ self.assertAlmostEqual(0.4, pos[0], self.accuracy)
+ self.assertAlmostEqual(0.8, pos[1], self.accuracy)
+ self.assertAlmostEqual(1.0, pos[2], self.accuracy)
+ self.assertAlmostEqual(1, norm[0], self.accuracy)
+ self.assertAlmostEqual(0, norm[1], self.accuracy)
+ self.assertAlmostEqual(0, norm[2], self.accuracy)
+ self.assertAlmostEqual(0.4, rad, self.accuracy)
+ self.assertAlmostEqual(12, data["fspam"], self.accuracy)
+ self.assertAlmostEqual(1, data["vspam"][0], self.accuracy)
+ self.assertAlmostEqual(2, data["vspam"][1], self.accuracy)
+ self.assertAlmostEqual(3, data["vspam"][2], self.accuracy)
ptc.close()
ptc = pointcloud.open("tmp/pointcloud2.ptc", "r", self.libName)
for buf in ptc.iterBatches(10, numpyArray=False, combinedBuffer=True):
self.assertEqual(22, len(buf))
- self.assertAlmostEqual(0.4, buf[0], 5)
- self.assertAlmostEqual(0.8, buf[1], 5)
- self.assertAlmostEqual(1.0, buf[2], 5)
- self.assertAlmostEqual(1, buf[3], 5)
- self.assertAlmostEqual(0, buf[4], 5)
- self.assertAlmostEqual(0, buf[5], 5)
- self.assertAlmostEqual(0.4, buf[6], 5)
- self.assertAlmostEqual(12, buf[7], 5)
- self.assertAlmostEqual(1, buf[8], 5)
- self.assertAlmostEqual(2, buf[9], 5)
- self.assertAlmostEqual(3, buf[10], 5)
+ self.assertAlmostEqual(0.4, buf[0], self.accuracy)
+ self.assertAlmostEqual(0.8, buf[1], self.accuracy)
+ self.assertAlmostEqual(1.0, buf[2], self.accuracy)
+ self.assertAlmostEqual(1, buf[3], self.accuracy)
+ self.assertAlmostEqual(0, buf[4], self.accuracy)
+ self.assertAlmostEqual(0, buf[5], self.accuracy)
+ self.assertAlmostEqual(0.4, buf[6], self.accuracy)
+ self.assertAlmostEqual(12, buf[7], self.accuracy)
+ self.assertAlmostEqual(1, buf[8], self.accuracy)
+ self.assertAlmostEqual(2, buf[9], self.accuracy)
+ self.assertAlmostEqual(3, buf[10], self.accuracy)
ptc.close()
def testMultiPointsOneBuffer(self):
@@ -179,7 +189,7 @@
"""
buffer = numpy.zeros(shape=(2,8), dtype=numpy.float32)
buffer[0] = (1,2,3,1,0,0,7,8)
- buffer[1] = (-1,-2,-3,0,0,1,-7,-8)
+ buffer[1] = (-1,-2,-3,0,0,1,2,-8)
ptc = pointcloud.open("tmp/pointcloud3.ptc", "w", self.libName, vars=[("float", "spam")], world2eye=mat4(1), world2ndc=mat4(1), format=(640,480,1))
ptc.writeDataPoints(2, buffer)
ptc.close()
@@ -188,8 +198,15 @@
ptc = pointcloud.open("tmp/pointcloud3.ptc", "r", self.libName)
n = ptc.readDataPoints(3, buf)
self.assertEqual(2, n)
+ # Round the normals
+ buf[0][3] = round(buf[0][3],self.accuracy)
+ buf[0][4] = round(buf[0][4],self.accuracy)
+ buf[0][5] = round(buf[0][5],self.accuracy)
+ buf[1][3] = round(buf[1][3],self.accuracy)
+ buf[1][4] = round(buf[1][4],self.accuracy)
+ buf[1][5] = round(buf[1][5],self.accuracy)
self.assertEqual([1,2,3,1,0,0,7,8], list(list(buf)[0]))
- self.assertEqual([-1,-2,-3,0,0,1,-7,-8], list(list(buf)[1]))
+ self.assertEqual([-1,-2,-3,0,0,1,2,-8], list(list(buf)[1]))
n = ptc.readDataPoints(3, buf)
self.assertEqual(0, n)
ptc.close()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|