@@ -7232,6 +7232,38 @@ def test_simple(self):
72327232 ts4 = joint_ts .delete_intervals ([[0 , 2 ]]).ltrim ()
72337233 ts4 .tables .assert_equals (ts2 .tables , ignore_provenance = True )
72347234
7235+ def test_metadata (self , ts_fixture ):
7236+ tables = ts_fixture .dump_tables ()
7237+ tables .reference_sequence .clear ()
7238+ tables .migrations .clear ()
7239+ ts = tables .tree_sequence ()
7240+ num_sites = ts .num_sites
7241+ assert num_sites > 0
7242+ joint_ts = ts .concatenate (ts )
7243+ for s1 , s2 in zip (range (num_sites ), range (num_sites , num_sites * 2 )):
7244+ site1 = joint_ts .site (s1 )
7245+ site2 = joint_ts .site (s2 )
7246+ assert site1 .metadata == site2 .metadata
7247+ assert site1 .ancestral_state == site2 .ancestral_state
7248+ assert len (site1 .mutations ) == len (site2 .mutations )
7249+ for m1 , m2 in zip (site1 .mutations , site2 .mutations ):
7250+ assert m1 .metadata == m2 .metadata
7251+ assert m1 .derived_state == m2 .derived_state
7252+ assert m1 .time == m2 .time
7253+ ns_nodes = np .where (ts .tables .nodes .flags & tskit .NODE_IS_SAMPLE == 0 )[0 ]
7254+ assert len (ns_nodes ) > 0
7255+ for u1 , u2 in zip (ns_nodes [: len (ns_nodes )], ns_nodes [len (ns_nodes ) :]):
7256+ node1 = joint_ts .node (u1 )
7257+ node2 = joint_ts .node (u2 )
7258+ assert node1 .metadata == node2 .metadata
7259+ assert node1 .flags == node2 .flags
7260+ assert node1 .time == node2 .time
7261+ ind1 = joint_ts .individual (node1 .individual )
7262+ ind2 = joint_ts .individual (node2 .individual )
7263+ assert ind1 .metadata == ind2 .metadata
7264+ assert ind1 .flags == ind2 .flags
7265+ assert ind1 .location == ind2 .location
7266+
72357267 def test_multiple (self ):
72367268 np .random .seed (42 )
72377269 ts3 = [
0 commit comments