Skip to content

Commit cc9e445

Browse files
authored
Merge pull request #1832 from benjeffery/time-units-enumeration
Add time_units enumeration
2 parents 631ed78 + 3840429 commit cc9e445

File tree

13 files changed

+33
-14
lines changed

13 files changed

+33
-14
lines changed

c/tests/test_tables.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@ test_table_collection_time_units(void)
454454
tsk_table_collection_free(&tc2);
455455
ret = tsk_table_collection_init(&tc1, 0);
456456
CU_ASSERT_EQUAL_FATAL(ret, 0);
457-
CU_ASSERT_EQUAL_FATAL(ret, strncmp(tc1.time_units, TSK_DEFAULT_TIME_UNITS, 7));
457+
CU_ASSERT_EQUAL_FATAL(ret, strncmp(tc1.time_units, TSK_TIME_UNITS_UNKNOWN, 7));
458458
tc1.sequence_length = 1.0;
459459
ret = tsk_table_collection_dump(&tc1, _tmp_file_name, 0);
460460
CU_ASSERT_EQUAL_FATAL(ret, 0);

c/tskit/core.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ __tsk_nan_f(void)
8787
}
8888
#define TSK_UNKNOWN_TIME __tsk_nan_f()
8989

90-
#define TSK_DEFAULT_TIME_UNITS "unknown"
90+
#define TSK_TIME_UNITS_UNKNOWN "unknown"
9191
#define TSK_TIME_UNITS_UNCALIBRATED "uncalibrated"
9292

9393
/**

c/tskit/tables.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9789,7 +9789,7 @@ tsk_table_collection_init(tsk_table_collection_t *self, tsk_flags_t options)
97899789

97909790
/* Set default time_units value */
97919791
ret = tsk_table_collection_set_time_units(
9792-
self, TSK_DEFAULT_TIME_UNITS, strlen(TSK_DEFAULT_TIME_UNITS));
9792+
self, TSK_TIME_UNITS_UNKNOWN, strlen(TSK_TIME_UNITS_UNKNOWN));
97939793
if (ret != 0) {
97949794
goto out;
97959795
}

python/CHANGELOG.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656

5757
- Add ``time_units`` to ``TreeSequence`` to describe the units of the time dimension of the
5858
tree sequence. This is then used to generate an error if ``time_units`` is ``uncalibrated`` when
59-
using the branch lengths in statistics. (:user:`benjeffery`, :issue:`1644`, :pr:`1760`)
59+
using the branch lengths in statistics. (:user:`benjeffery`, :issue:`1644`, :pr:`1760`, :pr:`1832`)
6060

6161
- Add the ``virtual_root`` property to the Tree class (:user:`jeromekelleher`, :pr:`1704`).
6262

python/_tskitmodule.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11915,5 +11915,9 @@ PyInit__tskit(void)
1191511915
PyModule_AddIntConstant(module, "FORWARD", TSK_DIR_FORWARD);
1191611916
PyModule_AddIntConstant(module, "REVERSE", TSK_DIR_REVERSE);
1191711917

11918+
PyModule_AddStringConstant(module, "TIME_UNITS_UNKNOWN", TSK_TIME_UNITS_UNKNOWN);
11919+
PyModule_AddStringConstant(
11920+
module, "TIME_UNITS_UNCALIBRATED", TSK_TIME_UNITS_UNCALIBRATED);
11921+
1191811922
return module;
1191911923
}

python/lwt_interface/dict_encoding_testlib.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ def test_missing_time_units(self, tables):
211211
lwt = lwt_module.LightweightTableCollection()
212212
lwt.fromdict(d)
213213
tables = tskit.TableCollection.fromdict(lwt.asdict())
214-
assert tables.time_units == "unknown"
214+
assert tables.time_units == tskit.TIME_UNITS_UNKNOWN
215215

216216
def test_missing_metadata(self, tables):
217217
assert tables.metadata != b""
@@ -603,7 +603,7 @@ def test_top_level_time_units(self, tables):
603603
lwt.fromdict(d)
604604
out = lwt.asdict()
605605
tables = tskit.TableCollection.fromdict(out)
606-
assert tables.time_units == "unknown"
606+
assert tables.time_units == tskit.TIME_UNITS_UNKNOWN
607607
# Missing is tested in TestMissingData above
608608
d = tables.asdict()
609609
# None should give default value

python/tests/test_highlevel.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2402,14 +2402,16 @@ def test_tree_sequence_metadata(self):
24022402
def test_tree_sequence_time_units(self):
24032403
tc = tskit.TableCollection(1)
24042404
ts = tc.tree_sequence()
2405-
assert ts.time_units == "unknown"
2405+
assert ts.time_units == tskit.TIME_UNITS_UNKNOWN
24062406
tc.time_units = "something else"
24072407
ts = tc.tree_sequence()
24082408
assert ts.time_units == "something else"
24092409
with pytest.raises(AttributeError):
24102410
del ts.time_units
24112411
with pytest.raises(AttributeError):
24122412
ts.time_units = "readonly"
2413+
assert tskit.TIME_UNITS_UNKNOWN == "unknown"
2414+
assert tskit.TIME_UNITS_UNCALIBRATED == "uncalibrated"
24132415

24142416
def test_table_metadata_schemas(self):
24152417
ts = msprime.simulate(5)

python/tests/test_lowlevel.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ def test_set_time_units_errors(self):
234234

235235
def test_set_time_units(self):
236236
tables = _tskit.TableCollection(1)
237-
assert tables.time_units == "unknown"
237+
assert tables.time_units == tskit.TIME_UNITS_UNKNOWN
238238
for value in ["foo", "", "💩", "null char \0 in string"]:
239239
tables.time_units = value
240240
assert tables.time_units == value
@@ -1309,7 +1309,7 @@ def test_time_units(self):
13091309
tables.build_index()
13101310
ts = _tskit.TreeSequence()
13111311
ts.load_tables(tables)
1312-
assert ts.get_time_units() == "unknown"
1312+
assert ts.get_time_units() == tskit.TIME_UNITS_UNKNOWN
13131313
for value in ["foo", "", "💩", "null char \0 in string"]:
13141314
tables.time_units = value
13151315
ts = _tskit.TreeSequence()
@@ -3254,3 +3254,8 @@ def test_uninitialised():
32543254
method = getattr(uninitialised, method_name)
32553255
with pytest.raises((SystemError, ValueError)):
32563256
method()
3257+
3258+
3259+
def test_constants():
3260+
assert _tskit.TIME_UNITS_UNKNOWN == "unknown"
3261+
assert _tskit.TIME_UNITS_UNCALIBRATED == "uncalibrated"

python/tests/test_tables.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4078,7 +4078,7 @@ def test_set_metadata(self):
40784078

40794079
def test_set_time_units(self):
40804080
tc = tskit.TableCollection(1)
4081-
assert tc.time_units == "unknown"
4081+
assert tc.time_units == tskit.TIME_UNITS_UNKNOWN
40824082

40834083
ex1 = "years"
40844084
ex2 = "generations"

python/tests/test_tree_stats.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6084,7 +6084,7 @@ class TestTimeUncalibratedErrors:
60846084
def test_uncalibrated_time_allele_frequency_spectrum(self, ts_fixture):
60856085
ts_fixture.allele_frequency_spectrum(mode="branch")
60866086
tables = ts_fixture.dump_tables()
6087-
tables.time_units = "uncalibrated"
6087+
tables.time_units = tskit.TIME_UNITS_UNCALIBRATED
60886088
ts_uncalibrated = tables.tree_sequence()
60896089
ts_uncalibrated.allele_frequency_spectrum(mode="site")
60906090
with pytest.raises(
@@ -6100,7 +6100,7 @@ def test_uncalibrated_time_general_stat(self, ts_fixture):
61006100
W, lambda x: x * (x < ts_fixture.num_samples), W.shape[1], mode="branch"
61016101
)
61026102
tables = ts_fixture.dump_tables()
6103-
tables.time_units = "uncalibrated"
6103+
tables.time_units = tskit.TIME_UNITS_UNCALIBRATED
61046104
ts_uncalibrated = tables.tree_sequence()
61056105
ts_uncalibrated.general_stat(
61066106
W, lambda x: x * (x < ts_uncalibrated.num_samples), W.shape[1], mode="site"

0 commit comments

Comments
 (0)