def test_official_pence(self): self.assertEqual(Decimal('0.005'), pounds_and_new_pence(0, 0, 1)) self.assertEqual(Decimal('0.01'), pounds_and_new_pence(0, 0, 2)) self.assertEqual(Decimal('0.01'), pounds_and_new_pence(0, 0, 3)) self.assertEqual(Decimal('0.015'), pounds_and_new_pence(0, 0, 4)) self.assertEqual(Decimal('0.02'), pounds_and_new_pence(0, 0, 5)) self.assertEqual(Decimal('0.025'), pounds_and_new_pence(0, 0, 6))
def test_round_trip_2(self, p): l_, s_, d_ = pounds_shillings_and_pence(p, rounding="fraction") p_ = pounds_and_new_pence(l_, s_, d_, rounding="fraction") self.assertAlmostEqual(p_, p)
def test_round_trip(self, l, s, d): new_money = pounds_and_new_pence(l, s, d, rounding="fraction") l_, s_, d_ = pounds_shillings_and_pence(new_money, rounding="fraction") self.assertEqual(l_, l) self.assertEqual(s_, s) self.assertAlmostEqual(d_, d)
def test_official_shillings(self): self.assertEqual(Decimal('0.05'), pounds_and_new_pence(0, 1, 0)) self.assertEqual(Decimal('0.25'), pounds_and_new_pence(0, 5, 0)) self.assertEqual(Decimal('0.50'), pounds_and_new_pence(0, 10, 0)) self.assertEqual(Decimal('0.60'), pounds_and_new_pence(0, 12, 0)) self.assertEqual(Decimal('0.95'), pounds_and_new_pence(0, 19, 0))
def test_convert_to_new_money(self, l, s, d): try: new_money = pounds_and_new_pence(l, s, d, rounding="strict") self.assertIsNotNone(new_money) except ConversionError: pass
def test_convert_to_new_money(self, l, s, d): new_money = pounds_and_new_pence(l, s, d, rounding="nearest") self.assertIsNotNone(new_money) self.assertNotEqual(Decimal('NaN'), new_money) self.assertNotEqual(Decimal('Infinity'), new_money) self.assertNotEqual(Decimal('-Infinity'), new_money)