In that case, why not setup some simple test cases where you know the correct answer and try your algorithm? For example, if all the points in your point cloud are in the X-Y plane then the normal MUST be <0, 0, 1> (or <0, 0, -1>). Or you could try a huge number of points that are all exactly 1 unit away from the origin (a perfect sphere). In that case the normal at each point would be the point itself.

Thanks for the suggestion. The XY plane stuff worked as expected (normals always equal to (0,0,1)). But the unity sphere stuff show that there are problems. I took every point and divided by it's length relative to the origin to put them at a distance of 1 to the origin. The normals generated for these points are never equal to the points themselves, so something is wrong.

What I am talking about is related to what they are talking here: http://www.pointclouds.org/documentation/tutorials/normal_estimation.php