コード例 #1
0
ファイル: test.py プロジェクト: myhololens/manim
def test_rescale_to_fit(mocker):
    mocker.spy(mobject.mobject.Mobject, 'length_over_dim')
    mocker.patch.object(mobject.mobject.Mobject, 'stretch')
    mocker.patch.object(mobject.mobject.Mobject, 'scale')
    mock_dim = 1
    mock_length = 3
    points = np.random.rand(10, 3)
    m = Mobject()
    m.points = points
    m.rescale_to_fit(mock_length, mock_dim, stretch=True)

    m.length_over_dim.assert_called_once()
    assert m.length_over_dim.call_args == call(m, mock_dim)
    length = m.length_over_dim(mock_dim)
    m.stretch.assert_called_once_with(mock_length / length, mock_dim)
コード例 #2
0
ファイル: test.py プロジェクト: myhololens/manim
def test_replace():
    m1_points = np.random.rand(10, 3)
    m1 = Mobject()
    m1.points = m1_points.copy()
    m2_points = np.random.rand(10, 3)
    m2 = Mobject()
    m2.points = m2_points.copy()

    def get_ratio(mob):
        return mob.length_over_dim(0) / mob.length_over_dim(1)

    m1_orig_ratio = get_ratio(m1)
    assert m1.length_over_dim(0) != m2.length_over_dim(0)
    assert (not np.allclose(m1.get_center(), m2.get_center()))
    m1.replace(m2)
    assert get_ratio(m1) == approx(m1_orig_ratio)
    assert m1.length_over_dim(0) == approx(m2.length_over_dim(0))
    assert np.allclose(m1.get_center(), m2.get_center())

    m1.points = m1_points.copy()
    m1.replace(m2, stretch=True)
    assert get_ratio(m1) != approx(m1_orig_ratio)
    assert m1.length_over_dim(0) == approx(m2.length_over_dim(0))
    assert np.allclose(m1.get_center(), m2.get_center())