@@ -254,19 +254,19 @@ def get_internal_samples_examples():
254254 # Set all nodes to be samples.
255255 flags [:] = tskit .NODE_IS_SAMPLE
256256 nodes .flags = flags
257- ret .append (("all nodes samples " , tables .tree_sequence ()))
257+ ret .append (("all_nodes_samples " , tables .tree_sequence ()))
258258
259259 # Set just internal nodes to be samples.
260260 flags [:] = 0
261261 flags [n :] = tskit .NODE_IS_SAMPLE
262262 nodes .flags = flags
263- ret .append (("internal nodes samples " , tables .tree_sequence ()))
263+ ret .append (("internal_nodes_samples " , tables .tree_sequence ()))
264264
265265 # Set a mixture of internal and leaf samples.
266266 flags [:] = 0
267267 flags [n // 2 : n + n // 2 ] = tskit .NODE_IS_SAMPLE
268268 nodes .flags = flags
269- ret .append (("mixture of internal and leaf samples " , tables .tree_sequence ()))
269+ ret .append (("mixed_internal_leaf_samples " , tables .tree_sequence ()))
270270 return ret
271271
272272
@@ -281,7 +281,7 @@ def get_decapitated_examples():
281281
282282 ts = msprime .simulate (20 , recombination_rate = 1 , random_seed = 1234 )
283283 assert ts .num_trees > 2
284- ret .append (("decapitate recomb " , ts .decapitate (ts .tables .nodes .time [- 1 ] / 4 )))
284+ ret .append (("decapitate_recomb " , ts .decapitate (ts .tables .nodes .time [- 1 ] / 4 )))
285285 return ret
286286
287287
@@ -302,7 +302,7 @@ def get_bottleneck_examples():
302302 demographic_events = bottlenecks ,
303303 random_seed = n ,
304304 )
305- yield (f"bottleneck n ={ n } " , ts )
305+ yield (f"bottleneck_n ={ n } " , ts )
306306
307307
308308def get_back_mutation_examples ():
@@ -337,13 +337,13 @@ def make_example_tree_sequences():
337337 )
338338 ts = tsutil .insert_random_ploidy_individuals (ts , 4 , seed = seed )
339339 yield (
340- f"n={ n } m ={ m } rho ={ rho } " ,
340+ f"n={ n } _m ={ m } _rho ={ rho } " ,
341341 tsutil .add_random_metadata (ts , seed = seed ),
342342 )
343343 seed += 1
344344 for name , ts in get_bottleneck_examples ():
345345 yield (
346- f"{ name } mutated " ,
346+ f"{ name } _mutated " ,
347347 msprime .mutate (
348348 ts ,
349349 rate = 0.1 ,
@@ -352,7 +352,7 @@ def make_example_tree_sequences():
352352 ),
353353 )
354354 ts = tskit .Tree .generate_balanced (8 ).tree_sequence
355- yield ("rev node order " , ts .subset (np .arange (ts .num_nodes - 1 , - 1 , - 1 )))
355+ yield ("rev_node_order " , ts .subset (np .arange (ts .num_nodes - 1 , - 1 , - 1 )))
356356 ts = msprime .sim_ancestry (
357357 8 , sequence_length = 40 , recombination_rate = 0.1 , random_seed = seed
358358 )
@@ -361,20 +361,20 @@ def make_example_tree_sequences():
361361 ts = tables .tree_sequence ()
362362 assert ts .num_trees > 1
363363 yield (
364- "back mutations " ,
364+ "back_mutations " ,
365365 tsutil .insert_branch_mutations (ts , mutations_per_branch = 2 ),
366366 )
367367 ts = tsutil .insert_multichar_mutations (ts )
368368 yield ("multichar" , ts )
369- yield ("multichar w/ metadata " , tsutil .add_random_metadata (ts ))
369+ yield ("multichar_no_metadata " , tsutil .add_random_metadata (ts ))
370370 tables = ts .dump_tables ()
371371 tables .nodes .flags = np .zeros_like (tables .nodes .flags )
372- yield ("no samples " , tables .tree_sequence ()) # no samples
372+ yield ("no_samples " , tables .tree_sequence ()) # no samples
373373 tables = ts .dump_tables ()
374374 tables .edges .clear ()
375- yield ("empty tree " , tables .tree_sequence ()) # empty tree
375+ yield ("empty_tree " , tables .tree_sequence ()) # empty tree
376376 yield (
377- "empty ts " ,
377+ "empty_ts " ,
378378 tskit .TableCollection (sequence_length = 1 ).tree_sequence (),
379379 ) # empty tree seq
380380 yield ("all_fields" , tsutil .all_fields_ts ())
@@ -384,6 +384,8 @@ def make_example_tree_sequences():
384384
385385
386386def get_example_tree_sequences (pytest_params = True ):
387+ # NOTE: pytest names should not contain spaces and be shell safe so
388+ # that they can be easily specified on the command line.
387389 if pytest_params :
388390 return [pytest .param (ts , id = name ) for name , ts in _examples ]
389391 else :
@@ -2785,6 +2787,19 @@ def test_simplify_migrations_fails(self):
27852787 with pytest .raises (_tskit .LibraryError ):
27862788 ts .simplify ()
27872789
2790+ @pytest .mark .parametrize ("ts" , get_example_tree_sequences ())
2791+ def test_no_update_sample_flags_no_filter_nodes (self , ts ):
2792+ # Can't simplify edges with metadata
2793+ if ts .tables .edges .metadata_schema == tskit .MetadataSchema (schema = None ):
2794+ k = min (ts .num_samples , 3 )
2795+ subset = ts .samples ()[:k ]
2796+ ts1 = ts .simplify (subset )
2797+ ts2 = ts .simplify (subset , update_sample_flags = False , filter_nodes = False )
2798+ assert ts1 .num_samples == len (subset )
2799+ assert ts2 .num_samples == ts .num_samples
2800+ assert ts1 .num_edges == ts2 .num_edges
2801+ assert ts2 .tables .nodes == ts .tables .nodes
2802+
27882803
27892804class TestMinMaxTime :
27902805 def get_example_tree_sequence (self , use_unknown_time ):
0 commit comments