mirror of
https://github.com/panda3d/panda3d.git
synced 2026-05-03 13:10:19 -05:00
express: Implement copy.deepcopy() for PointerToArray
It actually makes a unique copy of the underlying array.
This commit is contained in:
@@ -69,3 +69,63 @@ def test_cpta_float_pickle():
|
||||
data_pta2 = loads(dumps(data_pta, proto))
|
||||
assert tuple(data_pta2) == (1.0, 2.0, 3.0)
|
||||
assert data_pta2.get_data() == data_pta.get_data()
|
||||
|
||||
|
||||
def test_pta_float_copy():
|
||||
from panda3d.core import PTA_float
|
||||
from copy import copy
|
||||
|
||||
null_pta = PTA_float()
|
||||
assert copy(null_pta).is_null()
|
||||
|
||||
empty_pta = PTA_float([])
|
||||
empty_pta_copy = copy(empty_pta)
|
||||
assert not empty_pta_copy.is_null()
|
||||
assert len(empty_pta_copy) == 0
|
||||
assert empty_pta_copy.get_ref_count() == 2
|
||||
|
||||
data_pta = PTA_float([1.0, 2.0, 3.0])
|
||||
data_pta_copy = copy(data_pta)
|
||||
assert not data_pta_copy.is_null()
|
||||
assert data_pta_copy.get_ref_count() == 2
|
||||
assert tuple(data_pta_copy) == (1.0, 2.0, 3.0)
|
||||
|
||||
|
||||
def test_pta_float_deepcopy():
|
||||
from panda3d.core import PTA_float
|
||||
from copy import deepcopy
|
||||
|
||||
null_pta = PTA_float()
|
||||
assert deepcopy(null_pta).is_null()
|
||||
|
||||
empty_pta = PTA_float([])
|
||||
empty_pta_copy = deepcopy(empty_pta)
|
||||
assert not empty_pta_copy.is_null()
|
||||
assert len(empty_pta_copy) == 0
|
||||
assert empty_pta_copy.get_ref_count() == 1
|
||||
|
||||
data_pta = PTA_float([1.0, 2.0, 3.0])
|
||||
data_pta_copy = deepcopy(data_pta)
|
||||
assert not data_pta_copy.is_null()
|
||||
assert data_pta_copy.get_ref_count() == 1
|
||||
assert tuple(data_pta_copy) == (1.0, 2.0, 3.0)
|
||||
|
||||
|
||||
def test_cpta_float_deepcopy():
|
||||
from panda3d.core import PTA_float, CPTA_float
|
||||
from copy import deepcopy
|
||||
|
||||
null_pta = CPTA_float(PTA_float())
|
||||
assert deepcopy(null_pta).is_null()
|
||||
|
||||
empty_pta = CPTA_float([])
|
||||
empty_pta_copy = deepcopy(empty_pta)
|
||||
assert not empty_pta_copy.is_null()
|
||||
assert len(empty_pta_copy) == 0
|
||||
assert empty_pta_copy.get_ref_count() == 1
|
||||
|
||||
data_pta = CPTA_float([1.0, 2.0, 3.0])
|
||||
data_pta_copy = deepcopy(data_pta)
|
||||
assert not data_pta_copy.is_null()
|
||||
assert data_pta_copy.get_ref_count() == 1
|
||||
assert tuple(data_pta_copy) == (1.0, 2.0, 3.0)
|
||||
|
||||
Reference in New Issue
Block a user