Add support for copy, deepcopy, and pickle.

This commit is contained in:
Raymond Hettinger 2008-01-25 00:21:54 +00:00
parent 909e334e8a
commit a6216749fb
2 changed files with 23 additions and 0 deletions

View file

@ -6,6 +6,8 @@ import math
import operator
import rational
import unittest
from copy import copy, deepcopy
from cPickle import dumps, loads
R = rational.Rational
def _components(r):
@ -359,6 +361,12 @@ class RationalTest(unittest.TestCase):
s += num / fact * sign
self.assertAlmostEquals(math.cos(1), s)
def test_copy_deepcopy_pickle(self):
r = R(13, 7)
self.assertEqual(r, loads(dumps(r)))
self.assertEqual(id(r), id(copy(r)))
self.assertEqual(id(r), id(deepcopy(r)))
def test_main():
run_unittest(RationalTest)