36
34
def test_undefined_to_string(self):
37
35
self.assertEqual(undefined_to_string("48 50 50 49"), "0221")
38
36
self.assertEqual(undefined_to_string("48 50 50 49 "), "0221")
39
self.assertEqual(undefined_to_string(""), "")
37
self.assertRaises(ValueError, undefined_to_string, "")
40
38
self.assertRaises(ValueError, undefined_to_string, "foo")
41
39
self.assertRaises(ValueError, undefined_to_string, "48 50 50 49")
50
48
value = "48 50 50 49"
51
49
self.assertEqual(string_to_undefined(undefined_to_string(value)), value)
54
class TestFractions(unittest.TestCase):
56
def test_is_fraction(self):
57
if Fraction is not None:
58
self.failUnless(is_fraction(Fraction()))
59
self.failUnless(is_fraction(Fraction(3, 5)))
60
self.failUnless(is_fraction(Fraction(Fraction(4, 5))))
61
self.failUnless(is_fraction(Fraction('3/2')))
62
self.failUnless(is_fraction(Fraction('-4/5')))
63
self.failUnless(is_fraction(Rational(3, 5)))
64
self.failUnless(is_fraction(Rational(-4, 5)))
65
self.failUnless(is_fraction(Rational.from_string("3/5")))
66
self.failUnless(is_fraction(Rational.from_string("-4/5")))
68
self.failIf(is_fraction(3 / 5))
69
self.failIf(is_fraction('3/5'))
70
self.failIf(is_fraction('2.7'))
71
self.failIf(is_fraction(2.7))
72
self.failIf(is_fraction('notafraction'))
73
self.failIf(is_fraction(None))
75
def test_make_fraction(self):
76
if Fraction is not None:
77
self.assertEqual(make_fraction(3, 5), Fraction(3, 5))
78
self.assertEqual(make_fraction(-3, 5), Fraction(-3, 5))
79
self.assertEqual(make_fraction('3/2'), Fraction(3, 2))
80
self.assertEqual(make_fraction('-3/4'), Fraction(-3, 4))
81
self.assertEqual(make_fraction('0/0'), Fraction(0, 1))
83
self.assertEqual(make_fraction(3, 5), Rational(3, 5))
84
self.assertEqual(make_fraction(-3, 5), Rational(-3, 5))
85
self.assertEqual(make_fraction('3/2'), Rational(3, 2))
86
self.assertEqual(make_fraction('-3/4'), Rational(-3, 4))
87
self.assertEqual(make_fraction('0/0'), Rational(0, 1))
89
self.assertRaises(ZeroDivisionError, make_fraction, 3, 0)
90
self.assertRaises(ZeroDivisionError, make_fraction, '3/0')
91
self.assertRaises(TypeError, make_fraction, 5, 3, 2)
92
self.assertRaises(TypeError, make_fraction, None)
94
def test_fraction_to_string(self):
95
self.assertEqual(fraction_to_string(make_fraction(3, 5)), '3/5')
96
self.assertEqual(fraction_to_string(make_fraction(-3, 5)), '-3/5')
97
self.assertEqual(fraction_to_string(make_fraction(0, 1)), '0/1')
98
self.assertRaises(TypeError, fraction_to_string, None)
99
self.assertRaises(TypeError, fraction_to_string, 'invalid')