Exemple #1
0
def test_generate_target():
    m1 = Mobject()
    for attr in m1.get_array_attrs():
        setattr(m1, attr, np.zeros((3, 3)))
    m1.submobjects = [Mobject()]
    m1.mob_attr = m1.submobjects[0]
    m1.submobjects[0].points = np.zeros((3, 3))
    m1.arr = [0]

    # test shallow copy
    m1.generate_target()
    for attr in m1.target.get_array_attrs():
        setattr(m1.target, attr, np.ones((3, 3)))
    m1.target.add(Mobject())
    m1.target.mob_attr = None
    m1.target.arr[0] = 1
    assert np.allclose(m1.points, np.zeros((3, 3)))
    assert len(m1.submobjects) == 1
    assert m1.mob_attr is not None
    assert m1.arr[0] == 1

    # test deep copy
    m1.generate_target(use_deepcopy=True)
    m1.target = m1.deepcopy()
    for attr in m1.target.get_array_attrs():
        setattr(m1.target, attr, np.full((3, 3), 2))
    m1.target.add(Mobject())
    m1.target.mob_attr = None
    m1.target.arr[0] = 2
    assert np.allclose(m1.points, np.zeros((3, 3)))
    assert len(m1.submobjects) == 1
    assert m1.mob_attr is not None
    assert m1.arr[0] == 1
Exemple #2
0
def test_deepcopy():
    m1 = Mobject()
    for attr in m1.get_array_attrs():
        setattr(m1, attr, np.zeros((3, 3)))
    m1.submobjects = [Mobject()]
    m1.mob_attr = m1.submobjects[0]
    m1.submobjects[0].points = np.zeros((3, 3))
    m1.arr = [0]

    m2 = m1.deepcopy()
    for attr in m2.get_array_attrs():
        setattr(m2, attr, np.ones((3, 3)))
    m2.add(Mobject())
    m2.mob_attr = None
    m2.arr[0] = 1

    # no attributes are shared
    assert np.allclose(m1.points, np.zeros((3, 3)))
    assert len(m1.submobjects) == 1
    assert m1.mob_attr is not None
    assert m1.arr[0] == 0