@@ -1396,45 +1396,68 @@ def test_round_trip(self):
13961396 self .assertTrue (
13971397 all (a == b for a , b in zip (a .tables , b .tables ) if a [0 ] != 'provenances' ))
13981398
1399- def test_bad_edge_coords (self ):
1400- ts = msprime .simulate (5 , mutation_rate = 1 , random_seed = self .random_seed )
1399+
1400+ class TestNanDoubleValues (unittest .TestCase ):
1401+ """
1402+ In some tables we need to guard against NaN/infinite values in the input.
1403+ """
1404+
1405+ def test_edge_coords (self ):
1406+ ts = msprime .simulate (5 , mutation_rate = 1 , random_seed = 42 )
14011407
14021408 tables = ts .dump_tables ()
14031409 bad_coords = tables .edges .left + float ('inf' )
1404- tables .edges .set_columns ( ** dict ( tables . edges . asdict (), left = bad_coords ))
1410+ tables .edges .left = bad_coords
14051411 self .assertRaises (_tskit .LibraryError , tables .tree_sequence )
14061412
14071413 tables = ts .dump_tables ()
14081414 bad_coords = tables .edges .right + float ('nan' )
1409- tables .edges .set_columns (** dict (tables .edges .asdict (), right = bad_coords ))
1415+ tables .edges .right = bad_coords
1416+ self .assertRaises (_tskit .LibraryError , tables .tree_sequence )
1417+
1418+ def test_migrations (self ):
1419+ ts = msprime .simulate (5 , mutation_rate = 1 , random_seed = 42 )
1420+
1421+ tables = ts .dump_tables ()
1422+ tables .populations .add_row ()
1423+ tables .migrations .add_row (float ('inf' ), 1 , time = 0 , node = 0 , source = 0 , dest = 1 )
14101424 self .assertRaises (_tskit .LibraryError , tables .tree_sequence )
14111425
1412- def test_bad_site_positions (self ):
1413- ts = msprime .simulate (5 , mutation_rate = 1 , random_seed = self .random_seed )
1426+ tables = ts .dump_tables ()
1427+ tables .populations .add_row ()
1428+ tables .migrations .add_row (0 , float ('nan' ), time = 0 , node = 0 , source = 0 , dest = 1 )
1429+ self .assertRaises (_tskit .LibraryError , tables .tree_sequence )
1430+
1431+ tables = ts .dump_tables ()
1432+ tables .populations .add_row ()
1433+ tables .migrations .add_row (0 , 1 , time = float ('nan' ), node = 0 , source = 0 , dest = 1 )
1434+ self .assertRaises (_tskit .LibraryError , tables .tree_sequence )
1435+
1436+ def test_site_positions (self ):
1437+ ts = msprime .simulate (5 , mutation_rate = 1 , random_seed = 42 )
14141438 tables = ts .dump_tables ()
14151439 bad_pos = tables .sites .position .copy ()
14161440 bad_pos [- 1 ] = np .inf
1417- tables .sites .set_columns ( ** dict ( tables . sites . asdict (), position = bad_pos ))
1441+ tables .sites .position = bad_pos
14181442 self .assertRaises (_tskit .LibraryError , tables .tree_sequence )
14191443
1420- def test_bad_node_times (self ):
1421- ts = msprime .simulate (5 , mutation_rate = 1 , random_seed = self . random_seed )
1444+ def test_node_times (self ):
1445+ ts = msprime .simulate (5 , mutation_rate = 1 , random_seed = 42 )
14221446 tables = ts .dump_tables ()
14231447 bad_times = tables .nodes .time .copy ()
14241448 bad_times [- 1 ] = np .inf
1425- tables .nodes .set_columns ( ** dict ( tables . nodes . asdict (), time = bad_times ))
1449+ tables .nodes .time = bad_times
14261450 self .assertRaises (_tskit .LibraryError , tables .tree_sequence )
14271451
1428- def test_bad_individual (self ):
1429- ts = msprime .simulate (12 , mutation_rate = 1 , random_seed = self . random_seed )
1430- ts = tsutil .insert_random_ploidy_individuals (ts , seed = self . random_seed )
1452+ def test_individual (self ):
1453+ ts = msprime .simulate (12 , mutation_rate = 1 , random_seed = 42 )
1454+ ts = tsutil .insert_random_ploidy_individuals (ts , seed = 42 )
14311455 self .assertGreater (ts .num_individuals , 1 )
14321456 tables = ts .dump_tables ()
14331457 bad_locations = tables .individuals .location .copy ()
14341458 bad_locations [0 ] = np .inf
1435- tables .individuals .set_columns (
1436- ** dict (tables .individuals .asdict (), location = bad_locations ))
1437- self .assertRaises (_tskit .LibraryError , tables .tree_sequence )
1459+ tables .individuals .location = bad_locations
1460+ ts = tables .tree_sequence ()
14381461
14391462
14401463class TestSimplifyTables (unittest .TestCase ):
0 commit comments