def test_one_day_from_baseline(self): """ Simple 1-day percent increase with valid ints. """ data = {'2020-01-02': 10, '2020-01-03': 20, '2020-01-04': 40} actual = _pct_changes(list(data.items()), days_from_baseline=1) expected = {'2020-01-03': 100, '2020-01-04': 100} self.assertListEqual(actual, list(expected.items()))
def test_days_from_baseline_larger_than_data_length(self): """ Tests a chunk_size larger than len(data). This is not a valid input. Should return []. """ data = {'2020-01-02': 10, '2020-01-03': 20, '2020-01-04': 30} actual = _pct_changes(list(data.items()), days_from_baseline=4) expected = {} self.assertListEqual(actual, list(expected.items()))
def test_days_from_baseline_equals_data_length(self): """ Tests a days_from_baseline equal to len(data). There is no calculation to perform, should return []. """ data = {'2020-01-02': 10, '2020-01-03': 20, '2020-01-04': 30} actual = _pct_changes(list(data.items()), days_from_baseline=3) expected = {} self.assertListEqual(actual, list(expected.items()))
def test_negative_days_from_baseline(self): """ Tests a negative days_from_baseline. It is not a valid input, should return []. """ data = {'2020-01-02': 10, '2020-01-03': 20, '2020-01-04': 40} actual = _pct_changes(list(data.items()), days_from_baseline=-2) expected = {} self.assertListEqual(actual, list(expected.items()))
def test_zero_and_negative_values(self): """ Tests to make sure that negative values are accepted and zero divisions are omitted. """ data = {'2020-01-02': -10, '2020-01-03': 0, '2020-01-04': 0} actual = _pct_changes(list(data.items()), days_from_baseline=1) expected = {'2020-01-03': -100} # 2020-01-04 is omitted. We can't divide by 0. self.assertListEqual(actual, list(expected.items()))