'Util.number.exact_div'

def test_exact_div(self):

    self.assertEqual(1, number.exact_div(1, 1))
    self.assertRaises(ValueError, number.exact_div, 1, 2)
    self.assertEqual(1, number.exact_div(2, 2))
    self.assertRaises(ValueError, number.exact_div, 3, 2)
    self.assertEqual(2, number.exact_div(4, 2))
    self.assertEqual((-1), number.exact_div((-1), 1))
    self.assertEqual((-1), number.exact_div(1, (-1)))
    self.assertRaises(ValueError, number.exact_div, (-1), 2)
    self.assertEqual(1, number.exact_div((-2), (-2)))
    self.assertEqual((-2), number.exact_div((-4), 2))
    self.assertEqual(0, number.exact_div(0, 1))
    self.assertEqual(0, number.exact_div(0, 2))
    self.assertRaises(ZeroDivisionError, number.exact_div, 0, 0)
    self.assertRaises(ZeroDivisionError, number.exact_div, 1, 0)
    self.assertEqual(0, number.exact_div(0, 0, allow_divzero=True))
    self.assertRaises(ValueError, number.exact_div, 1, 0, allow_divzero=True)
