def test_yearfrac_basis_1_sub_year(self): assert 11 / 365 == pytest.approx( yearfrac(date(2015, 4, 20), date(2015, 5, 1), basis=1)) assert 11 / 366 == pytest.approx( yearfrac(date(2016, 4, 20), date(2016, 5, 1), basis=1)) assert 316 / 366 == pytest.approx( yearfrac(date(2016, 2, 20), date(2017, 1, 1), basis=1)) assert 61 / 366 == pytest.approx( yearfrac(date(2015, 12, 31), date(2016, 3, 1), basis=1))
def test_yearfrac_basis_1_sub_year(self): assert 11 / 365 == pytest.approx( yearfrac(date(2015, 4, 20), date(2015, 5, 1), 1)) assert 11 / 366 == pytest.approx( yearfrac(date(2016, 4, 20), date(2016, 5, 1), 1)) assert 316 / 366 == pytest.approx( yearfrac(date(2016, 2, 20), date(2017, 1, 1), 1)) assert 61 / 366 == pytest.approx( yearfrac(date(2015, 12, 31), date(2016, 3, 1), 1))
def test_start_date_must_be_positive(self): with self.assertRaises(ValueError): yearfrac(-1, 0)
def test_start_date_must_be_number(self): with self.assertRaises(TypeError): yearfrac('not a number', 1)
def test_end_date_must_be_number(self): assert VALUE_ERROR == yearfrac(1, 'not a number')
def test_yearfrac_basis_3(self): assert 7.304109589 == pytest.approx( yearfrac(date(2008, 1, 1), date(2015, 4, 20), 3))
def test_end_date_must_be_positive(self): with pytest.raises(ValueError): yearfrac(0, -1)
def test_yearfrac_basis_4(self): self.assertAlmostEqual( yearfrac(date(2008, 1, 1), date(2015, 4, 20), 4), 7.302777778)
def test_end_date_must_be_number(self): with self.assertRaises(TypeError): yearfrac(1, 'not a number')
def test_yearfrac_inverted(self): self.assertAlmostEqual(yearfrac(date(2015, 4, 20), date(2008, 1, 1)), yearfrac(date(2008, 1, 1), date(2015, 4, 20)))
def test_basis_must_be_between_0_and_4(self): assert NUM_ERROR == yearfrac(1, 2, 5)
def test_end_date_must_be_positive(self): assert NUM_ERROR == yearfrac(0, -1)
def test_start_date_must_be_positive(self): assert NUM_ERROR == yearfrac(-1, 0)
def test_basis_must_be_between_0_and_4(self): with self.assertRaises(ValueError): yearfrac(1, 2, 5)
def test_yearfrac_basis_2(self): self.assertAlmostEqual( yearfrac(date(2008, 1, 1), date(2015, 4, 20), 2), 7.405555556)
def test_end_date_must_be_number(self): with pytest.raises(TypeError): yearfrac(1, 'not a number')
def test_end_date_must_be_positive(self): with self.assertRaises(ValueError): yearfrac(0, -1)
def test_yearfrac_basis_1(self): assert 7.299110198 == pytest.approx( yearfrac(date(2008, 1, 1), date(2015, 4, 20), 1))
def test_yearfrac_inverted(self): assert yearfrac(date(2008, 1, 1), date(2015, 4, 20)) == pytest.approx( yearfrac(date(2015, 4, 20), date(2008, 1, 1)))
def test_yearfrac_basis_0(self): self.assertAlmostEqual(yearfrac(date(2008, 1, 1), date(2015, 4, 20)), 7.30277777777778)
def test_yearfrac_basis_1(self): self.assertAlmostEqual(yearfrac(date(2008, 1, 1), date(2015, 4, 20), 1), 7.299110198)
def test_yearfrac_basis_2(self): self.assertAlmostEqual(yearfrac(date(2008, 1, 1), date(2015, 4, 20), 2), 7.405555556)
def test_yearfrac_basis_3(self): self.assertAlmostEqual(yearfrac(date(2008, 1, 1), date(2015, 4, 20), 3), 7.304109589)
def test_start_date_must_be_number(self): assert VALUE_ERROR == yearfrac('not a number', 1)
def test_yearfrac_basis_1(self): self.assertAlmostEqual( yearfrac(date(2008, 1, 1), date(2015, 4, 20), 1), 7.299110198)
def test_yearfrac_basis_3(self): self.assertAlmostEqual( yearfrac(date(2008, 1, 1), date(2015, 4, 20), 3), 7.304109589)
def test_start_date_must_be_number(self): with pytest.raises(TypeError): yearfrac('not a number', 1)
def test_start_date_must_be_positive(self): with pytest.raises(ValueError): yearfrac(-1, 0)
def test_basis_must_be_between_0_and_4(self): with pytest.raises(ValueError): yearfrac(1, 2, 5)
def test_yearfrac_basis_2(self): assert 7.405555556 == pytest.approx( yearfrac(date(2008, 1, 1), date(2015, 4, 20), 2))
def test_yearfrac_basis_4(self): assert 7.302777778 == pytest.approx( yearfrac(date(2008, 1, 1), date(2015, 4, 20), 4))