Esempio n. 1
0
 def testG0(self):
     "basic equalities"
     f1 = F(1)
     f2 = F(2)
     f3 = F(3)
     f7 = F(7)
     g1 = G(1)
     g2 = G(2)
     g3 = G(3)
     g7 = G(7)
     self.assertEqual(str(f1), str(g1))
     self.assertEqual(str(f1/f3), str(g1/g3))
     self.assertEqual(str(f2/f3), str(g2/g3))
     self.assertEqual(F.mul(f2, f3, round='down'), G.mul(g2, g3, round='down'))
     self.assertEqual(F.mul(f2, f3, round='up'), G.mul(g2, g3, round='up'))
     self.assertEqual(F.div(f2, f3, round='down'), G.div(g2, g3, round='down'))
     self.assertEqual(F.div(f2, f3, round='up'), G.div(g2, g3, round='up'))
     self.assertEqual(F.muldiv(f2, f3, f7, round='down'), G.muldiv(g2, g3, g7, round='down'))
     self.assertEqual(F.muldiv(f2, f3, f7, round='up'), G.muldiv(g2, g3, g7, round='up'))
Esempio n. 2
0
 def testRoundUpExact(self):
     "up is bigger by an epsilon but not if exact result"
     self.assertEqual(F.div(F(2), F(4), round='up')._value, 500)
Esempio n. 3
0
 def testRoundDownExact(self):
     "no rounding if exact result"
     self.assertEqual(F.div(F(2), F(4), round='down')._value, 500)
Esempio n. 4
0
 def testRoundUp(self):
     "up is bigger by an epsilon"
     self.assertEqual(F.div(F(1), F(3), round='up')._value, 334)
Esempio n. 5
0
 def testRoundDown(self):
     "down is same as default"
     self.assertEqual(F.div(F(1), F(3), round='down')._value, 333)