示例#1
0
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
示例#2
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
示例#3
0
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
示例#4
0
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)]
示例#5
0
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)))
示例#6
0
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)))
示例#7
0
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)
示例#8
0
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
示例#9
0
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