def test_average_points_dist(): p0 = Point(0.0, 0.0, 0.0, 3.0) p1 = Point(0.0, 0.0, 1.0, 3.0) p2 = Point(0.0, 1.0, 0.0, 3.0) p3 = Point(1.0, 0.0, 0.0, 3.0) av_dist = mm.average_points_dist(p0, [p1, p2, p3]) assert av_dist == 1.0
def test_path_distance(): p1 = Point(3.0, 4.0, 5.0, 3.0) p2 = Point(3.0, 5.0, 5.0, 3.0) p3 = Point(3.0, 6.0, 5.0, 3.0) p4 = Point(3.0, 7.0, 5.0, 3.0) p5 = Point(3.0, 8.0, 5.0, 3.0) dist = mm.path_distance([p1, p2, p3, p4, p5]) assert dist == 4
def test_polygon_diameter(): p1 = Point(3.0, 4.0, 5.0, 3.0) p2 = Point(3.0, 5.0, 5.0, 3.0) p3 = Point(3.0, 6.0, 5.0, 3.0) dia = mm.polygon_diameter([p1, p2, p3]) assert dia == 2.0 surfpoint = soma_points() dia1 = mm.polygon_diameter(surfpoint) assert fabs(dia1-10.0) < 0.1
def soma_points(radius=5, number_points=20): phi = uniform(0, 2*pi, number_points) costheta = uniform(-1, 1, number_points) theta = np.arccos(costheta) x = radius * np.sin(theta) * np.cos(phi) y = radius * np.sin(theta) * np.sin(phi) z = radius * np.cos(theta) return [Point(i, j, k, 0.0) for (i, j, k) in zip(x, y, z)]
def test_segment_volume(): p0 = Point(0.0, 0.0, 0.0, 3.0) p1 = Point(2.0, 0.0, 0.0, 3.0) p2 = Point(4.0, 0.0, 0.0, 3.0) p3 = Point(4.0, 0.0, 0.0, 6.0) p4 = Point(1.0, 0.0, 0.0, 3.0) p5 = Point(4.0, 0.0, 0.0, 3.0) v01 = mm.segment_volume((p0, p1)) v02 = mm.segment_volume((p0, p2)) v03 = mm.segment_volume((p0, p3)) v04 = mm.segment_volume((p0, p4)) v45 = mm.segment_volume((p4, p5)) v05 = mm.segment_volume((p0, p5)) assert_almost_equal(v01, 56.5486677, decimal=6) assert_almost_equal(2 * v01, v02) assert_almost_equal(v03, 263.8937829, decimal=6) assert_almost_equal(v45, v05 - v04) assert_almost_equal(mm.segment_volume((p0, p3)), mm.segment_volume((p3, p0)))
def test_segment_area(): p0 = Point(0.0, 0.0, 0.0, 3.0) p1 = Point(2.0, 0.0, 0.0, 3.0) p2 = Point(4.0, 0.0, 0.0, 3.0) p3 = Point(4.0, 0.0, 0.0, 6.0) p4 = Point(1.0, 0.0, 0.0, 3.0) p5 = Point(4.0, 0.0, 0.0, 3.0) a01 = mm.segment_area((p0, p1)) a02 = mm.segment_area((p0, p2)) a03 = mm.segment_area((p0, p3)) a04 = mm.segment_area((p0, p4)) a45 = mm.segment_area((p4, p5)) a05 = mm.segment_area((p0, p5)) assert_almost_equal(a01, 37.6991118, decimal=6) assert_almost_equal(2 * a01, a02) assert_almost_equal(a03, 141.3716694, decimal=6) assert_almost_equal(a45, a05 - a04) assert_almost_equal(mm.segment_area((p0, p3)), mm.segment_area((p3, p0)))
def test_point_dist(): p1 = Point(3.0, 4.0, 5.0, 3.0) p2 = Point(4.0, 5.0, 6.0, 3.0) dist = mm.point_dist(p1, p2) assert dist == sqrt(3)
def test_segment_length2(): p1 = Point(3.0, 4.0, 5.0, 3.0) p2 = Point(4.0, 5.0, 6.0, 3.0) dist = mm.segment_length2((p1, p2)) assert dist == 3
def test_point_members(): p = Point(1, 2, 3, 4) assert p.x == 1 assert p.y == 2 assert p.z == 3 assert p.r == 4