@@ -2364,7 +2364,8 @@ def modify(ts, func):
23642364 def test_tree_node_edges (self ):
23652365 for ts in get_example_tree_sequences ():
23662366 edge_visited = np .zeros (ts .num_edges , dtype = bool )
2367- for mapping , tree in zip (ts ._tree_node_edges (), ts .trees ()):
2367+ for tree in ts .trees ():
2368+ mapping = tree .edge_array
23682369 node_mapped = mapping >= 0
23692370 edge_visited [mapping [node_mapped ]] = True
23702371 # Note that tree.nodes() does not necessarily list all the nodes
@@ -3711,13 +3712,15 @@ def verify_tree_arrays(self, tree):
37113712 assert tree .left_sib_array .shape == (N ,)
37123713 assert tree .right_sib_array .shape == (N ,)
37133714 assert tree .num_children_array .shape == (N ,)
3715+ assert tree .edge_array .shape == (N ,)
37143716 for u in range (N ):
37153717 assert tree .parent (u ) == tree .parent_array [u ]
37163718 assert tree .left_child (u ) == tree .left_child_array [u ]
37173719 assert tree .right_child (u ) == tree .right_child_array [u ]
37183720 assert tree .left_sib (u ) == tree .left_sib_array [u ]
37193721 assert tree .right_sib (u ) == tree .right_sib_array [u ]
37203722 assert tree .num_children (u ) == tree .num_children_array [u ]
3723+ assert tree .edge (u ) == tree .edge_array [u ]
37213724
37223725 def verify_tree_arrays_python_ts (self , ts ):
37233726 pts = tests .PythonTreeSequence (ts )
@@ -3730,6 +3733,7 @@ def verify_tree_arrays_python_ts(self, ts):
37303733 assert np .all (st1 .left_sib_array == st2 .left_sib )
37313734 assert np .all (st1 .right_sib_array == st2 .right_sib )
37323735 assert np .all (st1 .num_children_array == st2 .num_children )
3736+ assert np .all (st1 .edge_array == st2 .edge )
37333737
37343738 def test_tree_arrays (self ):
37353739 ts = msprime .simulate (10 , recombination_rate = 1 , random_seed = 1 )
@@ -3747,6 +3751,7 @@ def test_tree_arrays(self):
37473751 "left_sib" ,
37483752 "right_sib" ,
37493753 "num_children" ,
3754+ "edge" ,
37503755 ],
37513756 )
37523757 def test_tree_array_properties (self , array ):
@@ -3770,6 +3775,7 @@ def verify_empty_tree(self, tree):
37703775 assert tree .left_child (u ) == tskit .NULL
37713776 assert tree .right_child (u ) == tskit .NULL
37723777 assert tree .num_children (u ) == 0
3778+ assert tree .edge (u ) == tskit .NULL
37733779 if not ts .node (u ).is_sample ():
37743780 assert tree .left_sib (u ) == tskit .NULL
37753781 assert tree .right_sib (u ) == tskit .NULL
@@ -3817,6 +3823,7 @@ def verify_trees_identical(self, t1, t2):
38173823 assert np .all (t1 .left_sib_array == t2 .left_sib_array )
38183824 assert np .all (t1 .right_sib_array == t2 .right_sib_array )
38193825 assert np .all (t1 .num_children_array == t2 .num_children_array )
3826+ assert np .all (t1 .edge_array == t2 .edge_array )
38203827 assert list (t1 .sites ()) == list (t2 .sites ())
38213828
38223829 def test_copy_seek (self ):
@@ -3924,7 +3931,8 @@ def test_node_edges(self):
39243931 for tree in ts .trees ():
39253932 nodes = set (tree .nodes ())
39263933 midpoint = sum (tree .interval ) / 2
3927- mapping = tree ._node_edges ()
3934+ # mapping = tree._node_edges()
3935+ mapping = tree .edge_array
39283936 for node , edge in enumerate (mapping ):
39293937 if node in nodes and tree .parent (node ) != tskit .NULL :
39303938 edge_above_node = np .where (
0 commit comments