public void ReturnValues_Test( float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2 ) { GameObject g1 = new GameObject(), g2 = new GameObject(), g0 = new GameObject(); Vector3 p0 = g0.transform.position = new Vector3(x0, y0, z0); Vector3 p1 = g1.transform.position = new Vector3(x1, y1, z1); Vector3 p2 = g2.transform.position = new Vector3(x2, y2, z2); Transform[] transforms = new Transform[] { g0.transform, g1.transform, g2.transform }; Vector4[] r = ShaderHelper.ToHomogeneousCoordinates(transforms).ToArray(); Vector4 r0 = r[0], r1 = r[1], r2 = r[2]; Assert.AreEqual(r0.x, p0.x, "x0"); Assert.AreEqual(r0.y, p0.y, "y0"); Assert.AreEqual(r0.z, p0.z, "z0"); Assert.AreEqual(r0.w, 1, "w0"); Assert.AreEqual(r1.x, p1.x, "x1"); Assert.AreEqual(r1.y, p1.y, "y1"); Assert.AreEqual(r1.z, p1.z, "z1"); Assert.AreEqual(r1.w, 1, "w2"); Assert.AreEqual(r2.x, p2.x, "x2"); Assert.AreEqual(r2.y, p2.y, "y2"); Assert.AreEqual(r2.z, p2.z, "z2"); Assert.AreEqual(r2.w, 1, "w2"); }