diff -r 2bb806539ca6 Lib/test/test_turtle.py --- a/Lib/test/test_turtle.py Sat Jun 04 20:53:38 2016 -0700 +++ b/Lib/test/test_turtle.py Sat Jun 04 22:29:32 2016 -0700 @@ -1,3 +1,4 @@ +import pickle import unittest from test import support @@ -129,6 +130,43 @@ class TestVec2D(VectorComparisonMixin, unittest.TestCase): + def test_constructor(self): + vec = Vec2D(0, 1) + self.assertEqual(vec[0], 0) + self.assertEqual(vec[1], 1) + self.assertIsInstance(vec, Vec2D) + + with self.assertRaises(TypeError): + Vec2D() + + with self.assertRaises(TypeError): + Vec2D((0, 1)) + + with self.assertRaises(TypeError): + Vec2D(0, 1, 2) + + def test_repr(self): + vec = Vec2D(0, 1) + self.assertEqual(repr(vec), '(0.00,1.00)') + + def test_equality(self): + vec1 = Vec2D(0, 1) + vec2 = Vec2D(0.0, 1) + vec3 = Vec2D(42, 1) + self.assertEqual(tuple(vec1), vec1) + self.assertEqual(vec1, vec2) + self.assertNotEqual(vec1, vec3) + self.assertNotEqual(vec2, vec3) + + def test_pickling(self): + vec = Vec2D(0, 1) + for proto in range(pickle.HIGHEST_PROTOCOL + 1): + with self.subTest(proto=proto): + pickled = pickle.dumps(vec, protocol=proto) + unpickled = pickle.loads(pickled) + self.assertEqual(unpickled, vec) + self.assertIsInstance(unpickled, Vec2D) + def _assert_arithmetic_cases(self, test_cases, lambda_operator): for test_case in test_cases: with self.subTest(case=test_case):