Skip to content

Commit bcc9619

Browse files
committed
Test passing metadata with union (via concatenate)
1 parent e846d3e commit bcc9619

2 files changed

Lines changed: 33 additions & 0 deletions

File tree

python/tests/test_tables.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5298,6 +5298,7 @@ def test_both_empty(self):
52985298

52995299
def test_one_empty(self):
53005300
ts = self.get_msprime_example(5, T=2, seed=928)
5301+
ts = ts.simplify() # the example has a load of unreferenced individuals
53015302
tables = ts.dump_tables()
53025303
empty = tskit.TableCollection(sequence_length=tables.sequence_length)
53035304
empty.time_units = tables.time_units

python/tests/test_topology.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)