summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_slice.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_slice.py')
-rw-r--r--Lib/test/test_slice.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/Lib/test/test_slice.py b/Lib/test/test_slice.py
index c4bc8c8..03fde32 100644
--- a/Lib/test/test_slice.py
+++ b/Lib/test/test_slice.py
@@ -5,6 +5,7 @@ import operator
import sys
import unittest
import weakref
+import copy
from pickle import loads, dumps
from test import support
@@ -244,6 +245,41 @@ class SliceTest(unittest.TestCase):
self.assertEqual(s.indices(15), t.indices(15))
self.assertNotEqual(id(s), id(t))
+ def test_copy(self):
+ s = slice(1, 10)
+ c = copy.copy(s)
+ self.assertIs(s, c)
+
+ s = slice(1, 10, 2)
+ c = copy.copy(s)
+ self.assertIs(s, c)
+
+ # Corner case for mutable indices:
+ s = slice([1, 2], [3, 4], [5, 6])
+ c = copy.copy(s)
+ self.assertIs(s, c)
+ self.assertIs(s.start, c.start)
+ self.assertIs(s.stop, c.stop)
+ self.assertIs(s.step, c.step)
+
+ def test_deepcopy(self):
+ s = slice(1, 10)
+ c = copy.deepcopy(s)
+ self.assertEqual(s, c)
+
+ s = slice(1, 10, 2)
+ c = copy.deepcopy(s)
+ self.assertEqual(s, c)
+
+ # Corner case for mutable indices:
+ s = slice([1, 2], [3, 4], [5, 6])
+ c = copy.deepcopy(s)
+ self.assertIsNot(s, c)
+ self.assertEqual(s, c)
+ self.assertIsNot(s.start, c.start)
+ self.assertIsNot(s.stop, c.stop)
+ self.assertIsNot(s.step, c.step)
+
def test_cycle(self):
class myobj(): pass
o = myobj()