def test_base_subclass(): tt = TestTaxon() assert isinstance(tt, Taxon) assert tt.__repr__() == "<TestTaxon, tid=None>" np.testing.assert_equal(tt.range_mask, True) record = Record() record.advance_time(10) output = tt._evolve(10, 0, record) np.testing.assert_equal(output, True) d = OrderedDict([("time", [0, 10]), ("vara", [np.nan, 1])]) np.testing.assert_equal(record._dict, d) output = tt._evolve(10, 1, record) np.testing.assert_equal(output, False) np.testing.assert_equal(tt.extant, True) d = OrderedDict([("time", [0, 10]), ("vara", [np.nan, 1]), ("varb", [np.nan, 2])]) np.testing.assert_equal(record._dict, d) tt.extant = False np.testing.assert_equal(tt._extant, False)
def test_set_value(): record = Record() record.advance_time(10) record.set_value('vara', 1) d = OrderedDict([('time', [0, 10]), ('vara', [np.nan, 1])]) np.testing.assert_equal(record._dict, d) record.set_value('vara', 3, time=0) d = OrderedDict([('time', [0, 10]), ('vara', [3, 1])]) np.testing.assert_equal(record._dict, d)
def test_initial_time(): record = Record(initial_time=5) record.set_value('vara', 1) record.advance_time(10) d = OrderedDict([('time', [5, 15]), ('vara', [1, np.nan])]) np.testing.assert_equal(record._dict, d)
def test_attributes(): record = Record() np.testing.assert_equal(record.prior_time, np.nan) record.advance_time(10) record.set_value('vara', 1) record.set_value('varb', 2) np.testing.assert_equal(record.times, [0, 10]) np.testing.assert_equal(record.prior_time, 0) np.testing.assert_equal(record.earliest_time, 0) np.testing.assert_equal(record.latest_time, 10) np.testing.assert_equal(record.variables, ['vara', 'varb']) np.testing.assert_equal(record.count_of_time_steps, 2) np.testing.assert_equal(len(record), 2) df = pd.DataFrame({ 'time': [0, 10], 'vara': [np.nan, 1], 'varb': [np.nan, 2] }) pd.testing.assert_frame_equal(record.data_frame, df, check_like=True)
def test_nonexistent_time(): record = Record() record.set_value('vara', 1) np.testing.assert_raises(ValueError, record.get_value, 'vara', 5)
def test_increment_value(): record = Record() record.set_value('vara', 1) record.increment_value('vara', 100) d = OrderedDict([('time', [0]), ('vara', [101])]) np.testing.assert_equal(record._dict, d) record.advance_time(10) record.increment_value('vara', 100) d = OrderedDict([('time', [0, 10]), ('vara', [101, 100])]) np.testing.assert_equal(record._dict, d) record.increment_value('varb', 200, time=0) d = OrderedDict([('time', [0, 10]), ('vara', [101, 100]), ('varb', [200, np.nan])]) np.testing.assert_equal(record._dict, d)
def test_get_value(): record = Record() record.set_value('vara', 1) record.advance_time(10) record.set_value('vara', 2) value = record.get_value('vara') np.testing.assert_equal(value, 2) value = record.get_value('vara', time=0) np.testing.assert_equal(value, 1) value = record.get_value('varb') np.testing.assert_equal(value, np.nan)