Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_array.py @ 57114:d3a81051663b
importlib.test.source.util referenced variables in the 'finally' part of a
try/finally which may not have been set.
| author | Brett Cannon <bcannon@gmail.com> |
|---|---|
| date | Thu, 05 Nov 2009 01:17:22 +0000 |
| parents | 495eeff3b9ff |
| children | 71acd4482e65 |
| rev | line source |
|---|---|
|
4627
6b765453b041
module to test the arraymodule created and added to testall.py
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
|
6b765453b041
module to test the arraymodule created and added to testall.py
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff
changeset
|
2 """Test the arraymodule. |
|
4811
9ae3cccfa7cd
Many scripts, but small changes. Update the way the scripts obtain the
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4627
diff
changeset
|
3 Roger E. Masse |
|
4627
6b765453b041
module to test the arraymodule created and added to testall.py
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff
changeset
|
4 """ |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
5 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
6 import unittest |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46430
diff
changeset
|
7 from test import support |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
8 import weakref |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
9 import pickle |
|
50214
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
10 import operator |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
11 import io |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
12 import math |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
13 import struct |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
14 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
15 import array |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
16 from array import _array_reconstructor as array_reconstructor |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
17 |
|
34174
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
18 |
|
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
19 class ArraySubclass(array.array): |
|
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
20 pass |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
21 |
|
40737
6ebad2a6b990
Merged revisions 53451-53537 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40644
diff
changeset
|
22 class ArraySubclassWithKwargs(array.array): |
|
6ebad2a6b990
Merged revisions 53451-53537 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40644
diff
changeset
|
23 def __init__(self, typecode, newarg=None): |
|
6ebad2a6b990
Merged revisions 53451-53537 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40644
diff
changeset
|
24 array.array.__init__(typecode) |
|
6ebad2a6b990
Merged revisions 53451-53537 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40644
diff
changeset
|
25 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
26 tests = [] # list to accumulate all tests |
|
42112
ebc87b94e6ea
"Fix" the array module test -- by ripping out the 'c' typecode.
Guido van Rossum <guido@python.org>
parents:
42084
diff
changeset
|
27 typecodes = "ubBhHiIlLfd" |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
28 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
29 class BadConstructorTest(unittest.TestCase): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
30 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
31 def test_constructor(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
32 self.assertRaises(TypeError, array.array) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
33 self.assertRaises(TypeError, array.array, spam=42) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
34 self.assertRaises(TypeError, array.array, 'xx') |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
35 self.assertRaises(ValueError, array.array, 'x') |
|
4811
9ae3cccfa7cd
Many scripts, but small changes. Update the way the scripts obtain the
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4627
diff
changeset
|
36 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
37 tests.append(BadConstructorTest) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
38 |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
39 # Machine format codes. |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
40 # |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
41 # Search for "enum machine_format_code" in Modules/arraymodule.c to get the |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
42 # authoritative values. |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
43 UNKNOWN_FORMAT = -1 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
44 UNSIGNED_INT8 = 0 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
45 SIGNED_INT8 = 1 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
46 UNSIGNED_INT16_LE = 2 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
47 UNSIGNED_INT16_BE = 3 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
48 SIGNED_INT16_LE = 4 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
49 SIGNED_INT16_BE = 5 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
50 UNSIGNED_INT32_LE = 6 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
51 UNSIGNED_INT32_BE = 7 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
52 SIGNED_INT32_LE = 8 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
53 SIGNED_INT32_BE = 9 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
54 UNSIGNED_INT64_LE = 10 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
55 UNSIGNED_INT64_BE = 11 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
56 SIGNED_INT64_LE = 12 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
57 SIGNED_INT64_BE = 13 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
58 IEEE_754_FLOAT_LE = 14 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
59 IEEE_754_FLOAT_BE = 15 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
60 IEEE_754_DOUBLE_LE = 16 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
61 IEEE_754_DOUBLE_BE = 17 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
62 UTF16_LE = 18 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
63 UTF16_BE = 19 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
64 UTF32_LE = 20 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
65 UTF32_BE = 21 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
66 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
67 class ArrayReconstructorTest(unittest.TestCase): |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
68 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
69 def test_error(self): |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
70 self.assertRaises(TypeError, array_reconstructor, |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
71 "", "b", 0, b"") |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
72 self.assertRaises(TypeError, array_reconstructor, |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
73 str, "b", 0, b"") |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
74 self.assertRaises(TypeError, array_reconstructor, |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
75 array.array, "b", '', b"") |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
76 self.assertRaises(TypeError, array_reconstructor, |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
77 array.array, "b", 0, "") |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
78 self.assertRaises(ValueError, array_reconstructor, |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
79 array.array, "?", 0, b"") |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
80 self.assertRaises(ValueError, array_reconstructor, |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
81 array.array, "b", UNKNOWN_FORMAT, b"") |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
82 self.assertRaises(ValueError, array_reconstructor, |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
83 array.array, "b", 22, b"") |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
84 self.assertRaises(ValueError, array_reconstructor, |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
85 array.array, "d", 16, b"a") |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
86 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
87 def test_numbers(self): |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
88 testcases = ( |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
89 (['B', 'H', 'I', 'L'], UNSIGNED_INT8, '=BBBB', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
90 [0x80, 0x7f, 0, 0xff]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
91 (['b', 'h', 'i', 'l'], SIGNED_INT8, '=bbb', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
92 [-0x80, 0x7f, 0]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
93 (['H', 'I', 'L'], UNSIGNED_INT16_LE, '<HHHH', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
94 [0x8000, 0x7fff, 0, 0xffff]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
95 (['H', 'I', 'L'], UNSIGNED_INT16_BE, '>HHHH', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
96 [0x8000, 0x7fff, 0, 0xffff]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
97 (['h', 'i', 'l'], SIGNED_INT16_LE, '<hhh', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
98 [-0x8000, 0x7fff, 0]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
99 (['h', 'i', 'l'], SIGNED_INT16_BE, '>hhh', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
100 [-0x8000, 0x7fff, 0]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
101 (['I', 'L'], UNSIGNED_INT32_LE, '<IIII', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
102 [1<<31, (1<<31)-1, 0, (1<<32)-1]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
103 (['I', 'L'], UNSIGNED_INT32_BE, '>IIII', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
104 [1<<31, (1<<31)-1, 0, (1<<32)-1]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
105 (['i', 'l'], SIGNED_INT32_LE, '<iii', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
106 [-1<<31, (1<<31)-1, 0]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
107 (['i', 'l'], SIGNED_INT32_BE, '>iii', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
108 [-1<<31, (1<<31)-1, 0]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
109 (['L'], UNSIGNED_INT64_LE, '<QQQQ', |
|
55264
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
110 [1<<31, (1<<31)-1, 0, (1<<32)-1]), |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
111 (['L'], UNSIGNED_INT64_BE, '>QQQQ', |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
112 [1<<31, (1<<31)-1, 0, (1<<32)-1]), |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
113 (['l'], SIGNED_INT64_LE, '<qqq', |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
114 [-1<<31, (1<<31)-1, 0]), |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
115 (['l'], SIGNED_INT64_BE, '>qqq', |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
116 [-1<<31, (1<<31)-1, 0]), |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
117 # The following tests for INT64 will raise an OverflowError |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
118 # when run on a 32-bit machine. The tests are simply skipped |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
119 # in that case. |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
120 (['L'], UNSIGNED_INT64_LE, '<QQQQ', |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
121 [1<<63, (1<<63)-1, 0, (1<<64)-1]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
122 (['L'], UNSIGNED_INT64_BE, '>QQQQ', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
123 [1<<63, (1<<63)-1, 0, (1<<64)-1]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
124 (['l'], SIGNED_INT64_LE, '<qqq', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
125 [-1<<63, (1<<63)-1, 0]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
126 (['l'], SIGNED_INT64_BE, '>qqq', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
127 [-1<<63, (1<<63)-1, 0]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
128 (['f'], IEEE_754_FLOAT_LE, '<ffff', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
129 [16711938.0, float('inf'), float('-inf'), -0.0]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
130 (['f'], IEEE_754_FLOAT_BE, '>ffff', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
131 [16711938.0, float('inf'), float('-inf'), -0.0]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
132 (['d'], IEEE_754_DOUBLE_LE, '<dddd', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
133 [9006104071832581.0, float('inf'), float('-inf'), -0.0]), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
134 (['d'], IEEE_754_DOUBLE_BE, '>dddd', |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
135 [9006104071832581.0, float('inf'), float('-inf'), -0.0]) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
136 ) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
137 for testcase in testcases: |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
138 valid_typecodes, mformat_code, struct_fmt, values = testcase |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
139 arraystr = struct.pack(struct_fmt, *values) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
140 for typecode in valid_typecodes: |
|
55264
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
141 try: |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
142 a = array.array(typecode, values) |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
143 except OverflowError: |
|
bd431a0e6827
Don't check 64-bit test cases on 32-bit machine.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55259
diff
changeset
|
144 continue # Skip this test case. |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
145 b = array_reconstructor( |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
146 array.array, typecode, mformat_code, arraystr) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
147 self.assertEqual(a, b, |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
148 msg="{0!r} != {1!r}; testcase={2!r}".format(a, b, testcase)) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
149 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
150 def test_unicode(self): |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
151 teststr = "Bonne Journ\xe9e \U0002030a\U00020347" |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
152 testcases = ( |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
153 (UTF16_LE, "UTF-16-LE"), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
154 (UTF16_BE, "UTF-16-BE"), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
155 (UTF32_LE, "UTF-32-LE"), |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
156 (UTF32_BE, "UTF-32-BE") |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
157 ) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
158 for testcase in testcases: |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
159 mformat_code, encoding = testcase |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
160 a = array.array('u', teststr) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
161 b = array_reconstructor( |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
162 array.array, 'u', mformat_code, teststr.encode(encoding)) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
163 self.assertEqual(a, b, |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
164 msg="{0!r} != {1!r}; testcase={2!r}".format(a, b, testcase)) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
165 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
166 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
167 tests.append(ArrayReconstructorTest) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
168 |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
169 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
170 class BaseTest(unittest.TestCase): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
171 # Required class attributes (provided by subclasses |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
172 # typecode: the typecode to test |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
173 # example: an initializer usable in the constructor for this type |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
174 # smallerexample: the same length as example, but smaller |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
175 # biggerexample: the same length as example, but bigger |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
176 # outside: An entry that is not in example |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
177 # minitemsize: the minimum guaranteed itemsize |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
178 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
179 def assertEntryEqual(self, entry1, entry2): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
180 self.assertEqual(entry1, entry2) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
181 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
182 def badtypecode(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
183 # Return a typecode that is different from our own |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
184 return typecodes[(typecodes.index(self.typecode)+1) % len(typecodes)] |
|
4811
9ae3cccfa7cd
Many scripts, but small changes. Update the way the scripts obtain the
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
4627
diff
changeset
|
185 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
186 def test_constructor(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
187 a = array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
188 self.assertEqual(a.typecode, self.typecode) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
189 self.assertTrue(a.itemsize>=self.minitemsize) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
190 self.assertRaises(TypeError, array.array, self.typecode, None) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
191 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
192 def test_len(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
193 a = array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
194 a.append(self.example[0]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
195 self.assertEqual(len(a), 1) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
196 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
197 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
198 self.assertEqual(len(a), len(self.example)) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
199 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
200 def test_buffer_info(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
201 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
202 self.assertRaises(TypeError, a.buffer_info, 42) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
203 bi = a.buffer_info() |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
204 self.assertTrue(isinstance(bi, tuple)) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
205 self.assertEqual(len(bi), 2) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
206 self.assertTrue(isinstance(bi[0], int)) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
207 self.assertTrue(isinstance(bi[1], int)) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
208 self.assertEqual(bi[1], len(a)) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
209 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
210 def test_byteswap(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
211 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
212 self.assertRaises(TypeError, a.byteswap, 42) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
213 if a.itemsize in (1, 2, 4, 8): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
214 b = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
215 b.byteswap() |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
216 if a.itemsize==1: |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
217 self.assertEqual(a, b) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
218 else: |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
219 self.assertNotEqual(a, b) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
220 b.byteswap() |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
221 self.assertEqual(a, b) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
222 |
|
31651
35cb8114b45c
SF bug #910986: copy.copy fails for array.array
Raymond Hettinger <python@rcn.com>
parents:
30040
diff
changeset
|
223 def test_copy(self): |
|
35cb8114b45c
SF bug #910986: copy.copy fails for array.array
Raymond Hettinger <python@rcn.com>
parents:
30040
diff
changeset
|
224 import copy |
|
35cb8114b45c
SF bug #910986: copy.copy fails for array.array
Raymond Hettinger <python@rcn.com>
parents:
30040
diff
changeset
|
225 a = array.array(self.typecode, self.example) |
|
35cb8114b45c
SF bug #910986: copy.copy fails for array.array
Raymond Hettinger <python@rcn.com>
parents:
30040
diff
changeset
|
226 b = copy.copy(a) |
|
35cb8114b45c
SF bug #910986: copy.copy fails for array.array
Raymond Hettinger <python@rcn.com>
parents:
30040
diff
changeset
|
227 self.assertNotEqual(id(a), id(b)) |
|
35cb8114b45c
SF bug #910986: copy.copy fails for array.array
Raymond Hettinger <python@rcn.com>
parents:
30040
diff
changeset
|
228 self.assertEqual(a, b) |
|
35cb8114b45c
SF bug #910986: copy.copy fails for array.array
Raymond Hettinger <python@rcn.com>
parents:
30040
diff
changeset
|
229 |
|
40450
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39543
diff
changeset
|
230 def test_deepcopy(self): |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39543
diff
changeset
|
231 import copy |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39543
diff
changeset
|
232 a = array.array(self.typecode, self.example) |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39543
diff
changeset
|
233 b = copy.deepcopy(a) |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39543
diff
changeset
|
234 self.assertNotEqual(id(a), id(b)) |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39543
diff
changeset
|
235 self.assertEqual(a, b) |
|
cc992d75d5b3
Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents:
39543
diff
changeset
|
236 |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
237 def test_reduce_ex(self): |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
238 a = array.array(self.typecode, self.example) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
239 for protocol in range(3): |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
240 self.assert_(a.__reduce_ex__(protocol)[0] is array.array) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
241 for protocol in range(3, pickle.HIGHEST_PROTOCOL): |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
242 self.assert_(a.__reduce_ex__(protocol)[0] is array_reconstructor) |
|
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
243 |
|
34174
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
244 def test_pickle(self): |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
245 for protocol in range(pickle.HIGHEST_PROTOCOL + 1): |
|
34174
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
246 a = array.array(self.typecode, self.example) |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
247 b = pickle.loads(pickle.dumps(a, protocol)) |
|
34174
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
248 self.assertNotEqual(id(a), id(b)) |
|
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
249 self.assertEqual(a, b) |
|
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
250 |
|
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
251 a = ArraySubclass(self.typecode, self.example) |
|
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
252 a.x = 10 |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
253 b = pickle.loads(pickle.dumps(a, protocol)) |
|
34174
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
254 self.assertNotEqual(id(a), id(b)) |
|
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
255 self.assertEqual(a, b) |
|
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
256 self.assertEqual(a.x, b.x) |
|
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
257 self.assertEqual(type(a), type(b)) |
|
30b97c1bb12d
SF #1085304: Make array.array pickle-able
Raymond Hettinger <python@rcn.com>
parents:
33316
diff
changeset
|
258 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
259 def test_pickle_for_empty_array(self): |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
260 for protocol in range(pickle.HIGHEST_PROTOCOL + 1): |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
261 a = array.array(self.typecode) |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
262 b = pickle.loads(pickle.dumps(a, protocol)) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
263 self.assertNotEqual(id(a), id(b)) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
264 self.assertEqual(a, b) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
265 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
266 a = ArraySubclass(self.typecode) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
267 a.x = 10 |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
268 b = pickle.loads(pickle.dumps(a, protocol)) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
269 self.assertNotEqual(id(a), id(b)) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
270 self.assertEqual(a, b) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
271 self.assertEqual(a.x, b.x) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
272 self.assertEqual(type(a), type(b)) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41434
diff
changeset
|
273 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
274 def test_insert(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
275 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
276 a.insert(0, self.example[0]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
277 self.assertEqual(len(a), 1+len(self.example)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
278 self.assertEqual(a[0], a[1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
279 self.assertRaises(TypeError, a.insert) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
280 self.assertRaises(TypeError, a.insert, None) |
|
29158
001d3c7e9637
Add another error case to the insert test.
Walter Dörwald <walter@livinglogic.de>
parents:
29157
diff
changeset
|
281 self.assertRaises(TypeError, a.insert, 0, None) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
282 |
|
29163
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
283 a = array.array(self.typecode, self.example) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
284 a.insert(-1, self.example[0]) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
285 self.assertEqual( |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
286 a, |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
287 array.array( |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
288 self.typecode, |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
289 self.example[:-1] + self.example[:1] + self.example[-1:] |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
290 ) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
291 ) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
292 |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
293 a = array.array(self.typecode, self.example) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
294 a.insert(-1000, self.example[0]) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
295 self.assertEqual( |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
296 a, |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
297 array.array(self.typecode, self.example[:1] + self.example) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
298 ) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
299 |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
300 a = array.array(self.typecode, self.example) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
301 a.insert(1000, self.example[0]) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
302 self.assertEqual( |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
303 a, |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
304 array.array(self.typecode, self.example + self.example[:1]) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
305 ) |
|
2bb5ceef9ac3
Fix array.array.insert(), so that it treats negative indices as
Walter Dörwald <walter@livinglogic.de>
parents:
29158
diff
changeset
|
306 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
307 def test_tofromfile(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
308 a = array.array(self.typecode, 2*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
309 self.assertRaises(TypeError, a.tofile) |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46430
diff
changeset
|
310 support.unlink(support.TESTFN) |
|
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46430
diff
changeset
|
311 f = open(support.TESTFN, 'wb') |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
312 try: |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
313 a.tofile(f) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
314 f.close() |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
315 b = array.array(self.typecode) |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46430
diff
changeset
|
316 f = open(support.TESTFN, 'rb') |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
317 self.assertRaises(TypeError, b.fromfile) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
318 b.fromfile(f, len(self.example)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
319 self.assertEqual(b, array.array(self.typecode, self.example)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
320 self.assertNotEqual(a, b) |
|
52041
4a3b44c21b4f
Merged revisions 70203 via svnmerge from
Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>
parents:
51117
diff
changeset
|
321 self.assertRaises(EOFError, b.fromfile, f, len(self.example)+1) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
322 self.assertEqual(a, b) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
323 f.close() |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
324 finally: |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
325 if not f.closed: |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
326 f.close() |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46430
diff
changeset
|
327 support.unlink(support.TESTFN) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
328 |
|
55665
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
329 def test_filewrite(self): |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
330 a = array.array(self.typecode, 2*self.example) |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
331 f = open(support.TESTFN, 'wb') |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
332 try: |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
333 f.write(a) |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
334 f.close() |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
335 b = array.array(self.typecode) |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
336 f = open(support.TESTFN, 'rb') |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
337 b.fromfile(f, len(self.example)) |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
338 self.assertEqual(b, array.array(self.typecode, self.example)) |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
339 self.assertNotEqual(a, b) |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
340 b.fromfile(f, len(self.example)) |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
341 self.assertEqual(a, b) |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
342 f.close() |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
343 finally: |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
344 if not f.closed: |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
345 f.close() |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
346 support.unlink(support.TESTFN) |
|
495eeff3b9ff
Merged revisions 74477 via svnmerge from
Frank Wierzbicki <fwierzbicki@gmail.com>
parents:
55264
diff
changeset
|
347 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
348 def test_tofromlist(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
349 a = array.array(self.typecode, 2*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
350 b = array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
351 self.assertRaises(TypeError, a.tolist, 42) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
352 self.assertRaises(TypeError, b.fromlist) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
353 self.assertRaises(TypeError, b.fromlist, 42) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
354 self.assertRaises(TypeError, b.fromlist, [None]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
355 b.fromlist(a.tolist()) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
356 self.assertEqual(a, b) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
357 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
358 def test_tofromstring(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
359 a = array.array(self.typecode, 2*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
360 b = array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
361 self.assertRaises(TypeError, a.tostring, 42) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
362 self.assertRaises(TypeError, b.fromstring) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
363 self.assertRaises(TypeError, b.fromstring, 42) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
364 b.fromstring(a.tostring()) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
365 self.assertEqual(a, b) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
366 if a.itemsize>1: |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
367 self.assertRaises(ValueError, b.fromstring, "x") |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
368 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
369 def test_repr(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
370 a = array.array(self.typecode, 2*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
371 self.assertEqual(a, eval(repr(a), {"array": array.array})) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
372 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
373 a = array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
374 self.assertEqual(repr(a), "array('%s')" % self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
375 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
376 def test_str(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
377 a = array.array(self.typecode, 2*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
378 str(a) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
379 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
380 def test_cmp(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
381 a = array.array(self.typecode, self.example) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
382 self.assertTrue((a == 42) is False) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
383 self.assertTrue((a != 42) is True) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
384 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
385 self.assertTrue((a == a) is True) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
386 self.assertTrue((a != a) is False) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
387 self.assertTrue((a < a) is False) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
388 self.assertTrue((a <= a) is True) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
389 self.assertTrue((a > a) is False) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
390 self.assertTrue((a >= a) is True) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
391 |
|
37055
fdc05b167236
as is on the road to keyword-hood, use a different var name.
Neal Norwitz <nnorwitz@gmail.com>
parents:
34479
diff
changeset
|
392 al = array.array(self.typecode, self.smallerexample) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
393 ab = array.array(self.typecode, self.biggerexample) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
394 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
395 self.assertTrue((a == 2*a) is False) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
396 self.assertTrue((a != 2*a) is True) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
397 self.assertTrue((a < 2*a) is True) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
398 self.assertTrue((a <= 2*a) is True) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
399 self.assertTrue((a > 2*a) is False) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
400 self.assertTrue((a >= 2*a) is False) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
401 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
402 self.assertTrue((a == al) is False) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
403 self.assertTrue((a != al) is True) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
404 self.assertTrue((a < al) is False) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
405 self.assertTrue((a <= al) is False) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
406 self.assertTrue((a > al) is True) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
407 self.assertTrue((a >= al) is True) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
408 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
409 self.assertTrue((a == ab) is False) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
410 self.assertTrue((a != ab) is True) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
411 self.assertTrue((a < ab) is True) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
412 self.assertTrue((a <= ab) is True) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
413 self.assertTrue((a > ab) is False) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
414 self.assertTrue((a >= ab) is False) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
415 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
416 def test_add(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
417 a = array.array(self.typecode, self.example) \ |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
418 + array.array(self.typecode, self.example[::-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
419 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
420 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
421 array.array(self.typecode, self.example + self.example[::-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
422 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
423 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
424 b = array.array(self.badtypecode()) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
425 self.assertRaises(TypeError, a.__add__, b) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
426 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
427 self.assertRaises(TypeError, a.__add__, "bad") |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
428 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
429 def test_iadd(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
430 a = array.array(self.typecode, self.example[::-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
431 b = a |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
432 a += array.array(self.typecode, 2*self.example) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
433 self.assertTrue(a is b) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
434 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
435 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
436 array.array(self.typecode, self.example[::-1]+2*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
437 ) |
|
55115
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
438 a = array.array(self.typecode, self.example) |
|
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
439 a += a |
|
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
440 self.assertEqual( |
|
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
441 a, |
|
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
442 array.array(self.typecode, self.example + self.example) |
|
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
443 ) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
444 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
445 b = array.array(self.badtypecode()) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
446 self.assertRaises(TypeError, a.__add__, b) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
447 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
448 self.assertRaises(TypeError, a.__iadd__, "bad") |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
449 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
450 def test_mul(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
451 a = 5*array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
452 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
453 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
454 array.array(self.typecode, 5*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
455 ) |
|
5289
47d3d396d4ef
Use TESTFN instead of /etc/passwd and /dev/null as test files.
Guido van Rossum <guido@python.org>
parents:
4811
diff
changeset
|
456 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
457 a = array.array(self.typecode, self.example)*5 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
458 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
459 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
460 array.array(self.typecode, self.example*5) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
461 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
462 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
463 a = 0*array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
464 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
465 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
466 array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
467 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
468 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
469 a = (-1)*array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
470 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
471 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
472 array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
473 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
474 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
475 self.assertRaises(TypeError, a.__mul__, "bad") |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
476 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
477 def test_imul(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
478 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
479 b = a |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
480 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
481 a *= 5 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
482 self.assertTrue(a is b) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
483 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
484 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
485 array.array(self.typecode, 5*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
486 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
487 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
488 a *= 0 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
489 self.assertTrue(a is b) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
490 self.assertEqual(a, array.array(self.typecode)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
491 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
492 a *= 1000 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
493 self.assertTrue(a is b) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
494 self.assertEqual(a, array.array(self.typecode)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
495 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
496 a *= -1 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52041
diff
changeset
|
497 self.assertTrue(a is b) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
498 self.assertEqual(a, array.array(self.typecode)) |
|
4627
6b765453b041
module to test the arraymodule created and added to testall.py
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff
changeset
|
499 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
500 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
501 a *= -1 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
502 self.assertEqual(a, array.array(self.typecode)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
503 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
504 self.assertRaises(TypeError, a.__imul__, "bad") |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
505 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
506 def test_getitem(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
507 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
508 self.assertEntryEqual(a[0], self.example[0]) |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40450
diff
changeset
|
509 self.assertEntryEqual(a[0], self.example[0]) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
510 self.assertEntryEqual(a[-1], self.example[-1]) |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40450
diff
changeset
|
511 self.assertEntryEqual(a[-1], self.example[-1]) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
512 self.assertEntryEqual(a[len(self.example)-1], self.example[-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
513 self.assertEntryEqual(a[-len(self.example)], self.example[0]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
514 self.assertRaises(TypeError, a.__getitem__) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
515 self.assertRaises(IndexError, a.__getitem__, len(self.example)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
516 self.assertRaises(IndexError, a.__getitem__, -len(self.example)-1) |
|
13069
b76df68099a5
Trent Mick <trentm@activestate.com>:
Fred Drake <fdrake@acm.org>
parents:
8676
diff
changeset
|
517 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
518 def test_setitem(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
519 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
520 a[0] = a[-1] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
521 self.assertEntryEqual(a[0], a[-1]) |
|
13069
b76df68099a5
Trent Mick <trentm@activestate.com>:
Fred Drake <fdrake@acm.org>
parents:
8676
diff
changeset
|
522 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
523 a = array.array(self.typecode, self.example) |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40450
diff
changeset
|
524 a[0] = a[-1] |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
525 self.assertEntryEqual(a[0], a[-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
526 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
527 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
528 a[-1] = a[0] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
529 self.assertEntryEqual(a[0], a[-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
530 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
531 a = array.array(self.typecode, self.example) |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40450
diff
changeset
|
532 a[-1] = a[0] |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
533 self.assertEntryEqual(a[0], a[-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
534 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
535 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
536 a[len(self.example)-1] = a[0] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
537 self.assertEntryEqual(a[0], a[-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
538 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
539 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
540 a[-len(self.example)] = a[-1] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
541 self.assertEntryEqual(a[0], a[-1]) |
|
13069
b76df68099a5
Trent Mick <trentm@activestate.com>:
Fred Drake <fdrake@acm.org>
parents:
8676
diff
changeset
|
542 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
543 self.assertRaises(TypeError, a.__setitem__) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
544 self.assertRaises(TypeError, a.__setitem__, None) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
545 self.assertRaises(TypeError, a.__setitem__, 0, None) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
546 self.assertRaises( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
547 IndexError, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
548 a.__setitem__, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
549 len(self.example), self.example[0] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
550 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
551 self.assertRaises( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
552 IndexError, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
553 a.__setitem__, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
554 -len(self.example)-1, self.example[0] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
555 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
556 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
557 def test_delitem(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
558 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
559 del a[0] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
560 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
561 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
562 array.array(self.typecode, self.example[1:]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
563 ) |
|
4627
6b765453b041
module to test the arraymodule created and added to testall.py
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff
changeset
|
564 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
565 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
566 del a[-1] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
567 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
568 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
569 array.array(self.typecode, self.example[:-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
570 ) |
|
4627
6b765453b041
module to test the arraymodule created and added to testall.py
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff
changeset
|
571 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
572 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
573 del a[len(self.example)-1] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
574 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
575 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
576 array.array(self.typecode, self.example[:-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
577 ) |
|
15409
99ca419ca58b
Verify that str(a) and repr(a) don't blow up (part of SF patch 102068).
Tim Peters <tim.peters@gmail.com>
parents:
15305
diff
changeset
|
578 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
579 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
580 del a[-len(self.example)] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
581 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
582 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
583 array.array(self.typecode, self.example[1:]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
584 ) |
|
15409
99ca419ca58b
Verify that str(a) and repr(a) don't blow up (part of SF patch 102068).
Tim Peters <tim.peters@gmail.com>
parents:
15305
diff
changeset
|
585 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
586 self.assertRaises(TypeError, a.__delitem__) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
587 self.assertRaises(TypeError, a.__delitem__, None) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
588 self.assertRaises(IndexError, a.__delitem__, len(self.example)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
589 self.assertRaises(IndexError, a.__delitem__, -len(self.example)-1) |
|
4627
6b765453b041
module to test the arraymodule created and added to testall.py
Roger E. Masse <rmasse@newcnri.cnri.reston.va.us>
parents:
diff
changeset
|
590 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
591 def test_getslice(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
592 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
593 self.assertEqual(a[:], a) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
594 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
595 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
596 a[1:], |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
597 array.array(self.typecode, self.example[1:]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
598 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
599 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
600 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
601 a[:1], |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
602 array.array(self.typecode, self.example[:1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
603 ) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
604 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
605 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
606 a[:-1], |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
607 array.array(self.typecode, self.example[:-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
608 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
609 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
610 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
611 a[-1:], |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
612 array.array(self.typecode, self.example[-1:]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
613 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
614 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
615 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
616 a[-1:-1], |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
617 array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
618 ) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
619 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
620 self.assertEqual( |
|
34479
b9bc49b53f4d
Add a slice test with high < low.
Walter Dörwald <walter@livinglogic.de>
parents:
34174
diff
changeset
|
621 a[2:1], |
|
b9bc49b53f4d
Add a slice test with high < low.
Walter Dörwald <walter@livinglogic.de>
parents:
34174
diff
changeset
|
622 array.array(self.typecode) |
|
b9bc49b53f4d
Add a slice test with high < low.
Walter Dörwald <walter@livinglogic.de>
parents:
34174
diff
changeset
|
623 ) |
|
b9bc49b53f4d
Add a slice test with high < low.
Walter Dörwald <walter@livinglogic.de>
parents:
34174
diff
changeset
|
624 |
|
b9bc49b53f4d
Add a slice test with high < low.
Walter Dörwald <walter@livinglogic.de>
parents:
34174
diff
changeset
|
625 self.assertEqual( |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
626 a[1000:], |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
627 array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
628 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
629 self.assertEqual(a[-1000:], a) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
630 self.assertEqual(a[:1000], a) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
631 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
632 a[:-1000], |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
633 array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
634 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
635 self.assertEqual(a[-1000:1000], a) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
636 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
637 a[2000:1000], |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
638 array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
639 ) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
640 |
|
42954
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
641 def test_extended_getslice(self): |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
642 # Test extended slicing by comparing with list slicing |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
643 # (Assumes list conversion works correctly, too) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
644 a = array.array(self.typecode, self.example) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
645 indices = (0, None, 1, 3, 19, 100, -1, -2, -31, -100) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
646 for start in indices: |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
647 for stop in indices: |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
648 # Everything except the initial 0 (invalid step) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
649 for step in indices[1:]: |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
650 self.assertEqual(list(a[start:stop:step]), |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
651 list(a)[start:stop:step]) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
652 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
653 def test_setslice(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
654 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
655 a[:1] = a |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
656 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
657 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
658 array.array(self.typecode, self.example + self.example[1:]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
659 ) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
660 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
661 a = array.array(self.typecode, self.example) |
|
15305
07f24261c6e6
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
14649
diff
changeset
|
662 a[:-1] = a |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
663 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
664 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
665 array.array(self.typecode, self.example + self.example[-1:]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
666 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
667 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
668 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
669 a[-1:] = a |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
670 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
671 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
672 array.array(self.typecode, self.example[:-1] + self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
673 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
674 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
675 a = array.array(self.typecode, self.example) |
|
15305
07f24261c6e6
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
14649
diff
changeset
|
676 a[1:] = a |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
677 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
678 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
679 array.array(self.typecode, self.example[:1] + self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
680 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
681 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
682 a = array.array(self.typecode, self.example) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
683 a[1:-1] = a |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
684 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
685 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
686 array.array( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
687 self.typecode, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
688 self.example[:1] + self.example + self.example[-1:] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
689 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
690 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
691 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
692 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
693 a[1000:] = a |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
694 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
695 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
696 array.array(self.typecode, 2*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
697 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
698 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
699 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
700 a[-1000:] = a |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
701 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
702 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
703 array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
704 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
705 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
706 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
707 a[:1000] = a |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
708 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
709 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
710 array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
711 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
712 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
713 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
714 a[:-1000] = a |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
715 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
716 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
717 array.array(self.typecode, 2*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
718 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
719 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
720 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
721 a[1:0] = a |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
722 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
723 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
724 array.array(self.typecode, self.example[:1] + self.example + self.example[1:]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
725 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
726 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
727 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
728 a[2000:1000] = a |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
729 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
730 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
731 array.array(self.typecode, 2*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
732 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
733 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
734 a = array.array(self.typecode, self.example) |
|
42954
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
735 self.assertRaises(TypeError, a.__setitem__, slice(0, 0), None) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
736 self.assertRaises(TypeError, a.__setitem__, slice(0, 1), None) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
737 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
738 b = array.array(self.badtypecode()) |
|
42954
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
739 self.assertRaises(TypeError, a.__setitem__, slice(0, 0), b) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
740 self.assertRaises(TypeError, a.__setitem__, slice(0, 1), b) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
741 |
|
42954
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
742 def test_extended_set_del_slice(self): |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
743 indices = (0, None, 1, 3, 19, 100, -1, -2, -31, -100) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
744 for start in indices: |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
745 for stop in indices: |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
746 # Everything except the initial 0 (invalid step) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
747 for step in indices[1:]: |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
748 a = array.array(self.typecode, self.example) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
749 L = list(a) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
750 # Make sure we have a slice of exactly the right length, |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
751 # but with (hopefully) different data. |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
752 data = L[start:stop:step] |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
753 data.reverse() |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
754 L[start:stop:step] = data |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
755 a[start:stop:step] = array.array(self.typecode, data) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
756 self.assertEquals(a, array.array(self.typecode, L)) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
757 |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
758 del L[start:stop:step] |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
759 del a[start:stop:step] |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
760 self.assertEquals(a, array.array(self.typecode, L)) |
|
27f0289b6835
Merge the trunk changes in. Breaks socket.ssl for now.
Thomas Wouters <thomas@python.org>
parents:
42145
diff
changeset
|
761 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
762 def test_index(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
763 example = 2*self.example |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
764 a = array.array(self.typecode, example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
765 self.assertRaises(TypeError, a.index) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
766 for x in example: |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
767 self.assertEqual(a.index(x), example.index(x)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
768 self.assertRaises(ValueError, a.index, None) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
769 self.assertRaises(ValueError, a.index, self.outside) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
770 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
771 def test_count(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
772 example = 2*self.example |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
773 a = array.array(self.typecode, example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
774 self.assertRaises(TypeError, a.count) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
775 for x in example: |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
776 self.assertEqual(a.count(x), example.count(x)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
777 self.assertEqual(a.count(self.outside), 0) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
778 self.assertEqual(a.count(None), 0) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
779 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
780 def test_remove(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
781 for x in self.example: |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
782 example = 2*self.example |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
783 a = array.array(self.typecode, example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
784 pos = example.index(x) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
785 example2 = example[:pos] + example[pos+1:] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
786 a.remove(x) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
787 self.assertEqual(a, array.array(self.typecode, example2)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
788 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
789 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
790 self.assertRaises(ValueError, a.remove, self.outside) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
791 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
792 self.assertRaises(ValueError, a.remove, None) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
793 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
794 def test_pop(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
795 a = array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
796 self.assertRaises(IndexError, a.pop) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
797 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
798 a = array.array(self.typecode, 2*self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
799 self.assertRaises(TypeError, a.pop, 42, 42) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
800 self.assertRaises(TypeError, a.pop, None) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
801 self.assertRaises(IndexError, a.pop, len(a)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
802 self.assertRaises(IndexError, a.pop, -len(a)-1) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
803 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
804 self.assertEntryEqual(a.pop(0), self.example[0]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
805 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
806 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
807 array.array(self.typecode, self.example[1:]+self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
808 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
809 self.assertEntryEqual(a.pop(1), self.example[2]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
810 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
811 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
812 array.array(self.typecode, self.example[1:2]+self.example[3:]+self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
813 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
814 self.assertEntryEqual(a.pop(0), self.example[1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
815 self.assertEntryEqual(a.pop(), self.example[-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
816 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
817 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
818 array.array(self.typecode, self.example[3:]+self.example[:-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
819 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
820 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
821 def test_reverse(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
822 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
823 self.assertRaises(TypeError, a.reverse, 42) |
|
22098
966725095854
Patch 520694: arraymodule.c improvements:
Martin v. Löwis <martin@v.loewis.de>
parents:
15966
diff
changeset
|
824 a.reverse() |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
825 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
826 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
827 array.array(self.typecode, self.example[::-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
828 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
829 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
830 def test_extend(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
831 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
832 self.assertRaises(TypeError, a.extend) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
833 a.extend(array.array(self.typecode, self.example[::-1])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
834 self.assertEqual( |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
835 a, |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
836 array.array(self.typecode, self.example+self.example[::-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
837 ) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
838 |
|
55115
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
839 a = array.array(self.typecode, self.example) |
|
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
840 a.extend(a) |
|
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
841 self.assertEqual( |
|
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
842 a, |
|
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
843 array.array(self.typecode, self.example+self.example) |
|
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
844 ) |
|
a76b34cfc897
Fix array.extend and array.__iadd__ to handle the case where an array
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55114
diff
changeset
|
845 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
846 b = array.array(self.badtypecode()) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
847 self.assertRaises(TypeError, a.extend, b) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
848 |
|
31660
35f56e08727f
SF feature request #686323: Minor array module enhancements
Raymond Hettinger <python@rcn.com>
parents:
31651
diff
changeset
|
849 a = array.array(self.typecode, self.example) |
|
35f56e08727f
SF feature request #686323: Minor array module enhancements
Raymond Hettinger <python@rcn.com>
parents:
31651
diff
changeset
|
850 a.extend(self.example[::-1]) |
|
35f56e08727f
SF feature request #686323: Minor array module enhancements
Raymond Hettinger <python@rcn.com>
parents:
31651
diff
changeset
|
851 self.assertEqual( |
|
35f56e08727f
SF feature request #686323: Minor array module enhancements
Raymond Hettinger <python@rcn.com>
parents:
31651
diff
changeset
|
852 a, |
|
35f56e08727f
SF feature request #686323: Minor array module enhancements
Raymond Hettinger <python@rcn.com>
parents:
31651
diff
changeset
|
853 array.array(self.typecode, self.example+self.example[::-1]) |
|
35f56e08727f
SF feature request #686323: Minor array module enhancements
Raymond Hettinger <python@rcn.com>
parents:
31651
diff
changeset
|
854 ) |
|
35f56e08727f
SF feature request #686323: Minor array module enhancements
Raymond Hettinger <python@rcn.com>
parents:
31651
diff
changeset
|
855 |
|
33316
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
856 def test_constructor_with_iterable_argument(self): |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
857 a = array.array(self.typecode, iter(self.example)) |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
858 b = array.array(self.typecode, self.example) |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
859 self.assertEqual(a, b) |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
860 |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
861 # non-iterable argument |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
862 self.assertRaises(TypeError, array.array, self.typecode, 10) |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
863 |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
864 # pass through errors raised in __iter__ |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
865 class A: |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
866 def __iter__(self): |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
867 raise UnicodeError |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
868 self.assertRaises(UnicodeError, array.array, self.typecode, A()) |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
869 |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
870 # pass through errors raised in next() |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
871 def B(): |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
872 raise UnicodeError |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
873 yield None |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
874 self.assertRaises(UnicodeError, array.array, self.typecode, B()) |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
875 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
876 def test_coveritertraverse(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
877 try: |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
878 import gc |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
879 except ImportError: |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
880 return |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
881 a = array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
882 l = [iter(a)] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
883 l.append(l) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
884 gc.collect() |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
885 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
886 def test_buffer(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
887 a = array.array(self.typecode, self.example) |
|
50214
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
888 m = memoryview(a) |
|
55124
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
889 expected = m.tobytes() |
|
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
890 self.assertEqual(a.tostring(), expected) |
|
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
891 self.assertEqual(a.tostring()[0], expected[0]) |
|
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
892 # Resizing is forbidden when there are buffer exports. |
|
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
893 # For issue 4509, we also check after each error that |
|
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
894 # the array was not modified. |
|
50214
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
895 self.assertRaises(BufferError, a.append, a[0]) |
|
55124
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
896 self.assertEqual(m.tobytes(), expected) |
|
50214
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
897 self.assertRaises(BufferError, a.extend, a[0:1]) |
|
55124
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
898 self.assertEqual(m.tobytes(), expected) |
|
50214
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
899 self.assertRaises(BufferError, a.remove, a[0]) |
|
55124
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
900 self.assertEqual(m.tobytes(), expected) |
|
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
901 self.assertRaises(BufferError, a.pop, 0) |
|
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
902 self.assertEqual(m.tobytes(), expected) |
|
50214
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
903 self.assertRaises(BufferError, a.fromlist, a.tolist()) |
|
55124
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
904 self.assertEqual(m.tobytes(), expected) |
|
50214
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
905 self.assertRaises(BufferError, a.fromstring, a.tostring()) |
|
55124
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
906 self.assertEqual(m.tobytes(), expected) |
|
50214
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
907 if self.typecode == 'u': |
|
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
908 self.assertRaises(BufferError, a.fromunicode, a.tounicode()) |
|
55124
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
909 self.assertEqual(m.tobytes(), expected) |
|
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
910 self.assertRaises(BufferError, operator.imul, a, 2) |
|
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
911 self.assertEqual(m.tobytes(), expected) |
|
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
912 self.assertRaises(BufferError, operator.imul, a, 0) |
|
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
913 self.assertEqual(m.tobytes(), expected) |
|
50214
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
914 self.assertRaises(BufferError, operator.setitem, a, slice(0, 0), a) |
|
55124
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
915 self.assertEqual(m.tobytes(), expected) |
|
50214
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
916 self.assertRaises(BufferError, operator.delitem, a, 0) |
|
55124
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
917 self.assertEqual(m.tobytes(), expected) |
|
50214
aebf7124dd32
Merged revisions 67840 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
49490
diff
changeset
|
918 self.assertRaises(BufferError, operator.delitem, a, slice(0, 1)) |
|
55124
7bb7758e6d64
Add the fix for issue 4509 to the mapping methods.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55115
diff
changeset
|
919 self.assertEqual(m.tobytes(), expected) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
920 |
|
32159
2c169ca5fa69
Add weakref support to array.array and file objects.
Raymond Hettinger <python@rcn.com>
parents:
31660
diff
changeset
|
921 def test_weakref(self): |
|
2c169ca5fa69
Add weakref support to array.array and file objects.
Raymond Hettinger <python@rcn.com>
parents:
31660
diff
changeset
|
922 s = array.array(self.typecode, self.example) |
|
55259
edc714ffe6cc
Issue #2389: Implement a portable mechanism for pickling array objects.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55124
diff
changeset
|
923 p = weakref.proxy(s) |
|
32159
2c169ca5fa69
Add weakref support to array.array and file objects.
Raymond Hettinger <python@rcn.com>
parents:
31660
diff
changeset
|
924 self.assertEqual(p.tostring(), s.tostring()) |
|
2c169ca5fa69
Add weakref support to array.array and file objects.
Raymond Hettinger <python@rcn.com>
parents:
31660
diff
changeset
|
925 s = None |
|
2c169ca5fa69
Add weakref support to array.array and file objects.
Raymond Hettinger <python@rcn.com>
parents:
31660
diff
changeset
|
926 self.assertRaises(ReferenceError, len, p) |
|
2c169ca5fa69
Add weakref support to array.array and file objects.
Raymond Hettinger <python@rcn.com>
parents:
31660
diff
changeset
|
927 |
|
30039
d8c8fe0c73ed
added test for bug 782369
Skip Montanaro <skip@pobox.com>
parents:
29205
diff
changeset
|
928 def test_bug_782369(self): |
|
d8c8fe0c73ed
added test for bug 782369
Skip Montanaro <skip@pobox.com>
parents:
29205
diff
changeset
|
929 import sys |
|
30040
643ffb7db18f
protect against test problems with Jython
Skip Montanaro <skip@pobox.com>
parents:
30039
diff
changeset
|
930 if hasattr(sys, "getrefcount"): |
|
643ffb7db18f
protect against test problems with Jython
Skip Montanaro <skip@pobox.com>
parents:
30039
diff
changeset
|
931 for i in range(10): |
|
643ffb7db18f
protect against test problems with Jython
Skip Montanaro <skip@pobox.com>
parents:
30039
diff
changeset
|
932 b = array.array('B', range(64)) |
|
643ffb7db18f
protect against test problems with Jython
Skip Montanaro <skip@pobox.com>
parents:
30039
diff
changeset
|
933 rc = sys.getrefcount(10) |
|
643ffb7db18f
protect against test problems with Jython
Skip Montanaro <skip@pobox.com>
parents:
30039
diff
changeset
|
934 for i in range(10): |
|
643ffb7db18f
protect against test problems with Jython
Skip Montanaro <skip@pobox.com>
parents:
30039
diff
changeset
|
935 b = array.array('B', range(64)) |
|
643ffb7db18f
protect against test problems with Jython
Skip Montanaro <skip@pobox.com>
parents:
30039
diff
changeset
|
936 self.assertEqual(rc, sys.getrefcount(10)) |
|
30039
d8c8fe0c73ed
added test for bug 782369
Skip Montanaro <skip@pobox.com>
parents:
29205
diff
changeset
|
937 |
|
40737
6ebad2a6b990
Merged revisions 53451-53537 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40644
diff
changeset
|
938 def test_subclass_with_kwargs(self): |
|
6ebad2a6b990
Merged revisions 53451-53537 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40644
diff
changeset
|
939 # SF bug #1486663 -- this used to erroneously raise a TypeError |
|
6ebad2a6b990
Merged revisions 53451-53537 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40644
diff
changeset
|
940 ArraySubclassWithKwargs('b', newarg=1) |
|
32159
2c169ca5fa69
Add weakref support to array.array and file objects.
Raymond Hettinger <python@rcn.com>
parents:
31660
diff
changeset
|
941 |
|
42145
8eeaa9923901
Creating an array with a bytes object as initializer
Guido van Rossum <guido@python.org>
parents:
42112
diff
changeset
|
942 def test_create_from_bytes(self): |
|
55113
8e8157445a55
Issue 4509: Do not modify an array if we know the change would result
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55593
diff
changeset
|
943 # XXX This test probably needs to be moved in a subclass or |
|
8e8157445a55
Issue 4509: Do not modify an array if we know the change would result
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
55593
diff
changeset
|
944 # generalized to use self.typecode. |
|
42145
8eeaa9923901
Creating an array with a bytes object as initializer
Guido van Rossum <guido@python.org>
parents:
42112
diff
changeset
|
945 a = array.array('H', b"1234") |
|
8eeaa9923901
Creating an array with a bytes object as initializer
Guido van Rossum <guido@python.org>
parents:
42112
diff
changeset
|
946 self.assertEqual(len(a) * a.itemsize, 4) |
|
8eeaa9923901
Creating an array with a bytes object as initializer
Guido van Rossum <guido@python.org>
parents:
42112
diff
changeset
|
947 |
|
32159
2c169ca5fa69
Add weakref support to array.array and file objects.
Raymond Hettinger <python@rcn.com>
parents:
31660
diff
changeset
|
948 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
949 class StringTest(BaseTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
950 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
951 def test_setitem(self): |
|
42084
229c28cb9afb
Merged revisions 55817-55961 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41859
diff
changeset
|
952 super().test_setitem() |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
953 a = array.array(self.typecode, self.example) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
954 self.assertRaises(TypeError, a.__setitem__, 0, self.example[:2]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
955 |
|
41821
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
956 class UnicodeTest(StringTest): |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
957 typecode = 'u' |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
958 example = '\x01\u263a\x00\ufeff' |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
959 smallerexample = '\x01\u263a\x00\ufefe' |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
960 biggerexample = '\x01\u263a\x01\ufeff' |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
961 outside = str('\x33') |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
962 minitemsize = 2 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
963 |
|
41821
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
964 def test_unicode(self): |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
965 self.assertRaises(TypeError, array.array, 'b', 'foo') |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
966 |
|
41821
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
967 a = array.array('u', '\xa0\xc2\u1234') |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
968 a.fromunicode(' ') |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
969 a.fromunicode('') |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
970 a.fromunicode('') |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
971 a.fromunicode('\x11abc\xff\u1234') |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
972 s = a.tounicode() |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
973 self.assertEqual(s, '\xa0\xc2\u1234 \x11abc\xff\u1234') |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
974 |
|
41821
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
975 s = '\x00="\'a\\b\x80\xff\u0000\u0001\u1234' |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
976 a = array.array('u', s) |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
977 self.assertEqual( |
|
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
978 repr(a), |
|
47611
da47e7e135ae
#2630: Implement PEP 3138.
Georg Brandl <georg@python.org>
parents:
47463
diff
changeset
|
979 "array('u', '\\x00=\"\\'a\\\\b\\x80\xff\\x00\\x01\u1234')") |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
980 |
|
41821
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
981 self.assertRaises(TypeError, a.fromunicode) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
982 |
|
41821
ae691227fd34
Remove have_unicode checks and merge those tests into the
Walter Dörwald <walter@livinglogic.de>
parents:
41685
diff
changeset
|
983 tests.append(UnicodeTest) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
984 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
985 class NumberTest(BaseTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
986 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
987 def test_extslice(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
988 a = array.array(self.typecode, range(5)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
989 self.assertEqual(a[::], a) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
990 self.assertEqual(a[::2], array.array(self.typecode, [0,2,4])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
991 self.assertEqual(a[1::2], array.array(self.typecode, [1,3])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
992 self.assertEqual(a[::-1], array.array(self.typecode, [4,3,2,1,0])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
993 self.assertEqual(a[::-2], array.array(self.typecode, [4,2,0])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
994 self.assertEqual(a[3::-2], array.array(self.typecode, [3,1])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
995 self.assertEqual(a[-100:100:], a) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
996 self.assertEqual(a[100:-100:-1], a[::-1]) |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40450
diff
changeset
|
997 self.assertEqual(a[-100:100:2], array.array(self.typecode, [0,2,4])) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
998 self.assertEqual(a[1000:2000:2], array.array(self.typecode, [])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
999 self.assertEqual(a[-1000:-2000:-2], array.array(self.typecode, [])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1000 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1001 def test_delslice(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1002 a = array.array(self.typecode, range(5)) |
|
23929
26ba17b758b9
Fix the bug described in
Michael W. Hudson <mwh@python.net>
parents:
23459
diff
changeset
|
1003 del a[::2] |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1004 self.assertEqual(a, array.array(self.typecode, [1,3])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1005 a = array.array(self.typecode, range(5)) |
|
23929
26ba17b758b9
Fix the bug described in
Michael W. Hudson <mwh@python.net>
parents:
23459
diff
changeset
|
1006 del a[1::2] |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1007 self.assertEqual(a, array.array(self.typecode, [0,2,4])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1008 a = array.array(self.typecode, range(5)) |
|
23929
26ba17b758b9
Fix the bug described in
Michael W. Hudson <mwh@python.net>
parents:
23459
diff
changeset
|
1009 del a[1::-2] |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1010 self.assertEqual(a, array.array(self.typecode, [0,2,3,4])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1011 a = array.array(self.typecode, range(10)) |
| 24424 | 1012 del a[::1000] |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1013 self.assertEqual(a, array.array(self.typecode, [1,2,3,4,5,6,7,8,9])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1014 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1015 def test_assignment(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1016 a = array.array(self.typecode, range(10)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1017 a[::2] = array.array(self.typecode, [42]*5) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1018 self.assertEqual(a, array.array(self.typecode, [42, 1, 42, 3, 42, 5, 42, 7, 42, 9])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1019 a = array.array(self.typecode, range(10)) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1020 a[::-4] = array.array(self.typecode, [10]*3) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1021 self.assertEqual(a, array.array(self.typecode, [0, 10, 2, 3, 4, 10, 6, 7, 8 ,10])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1022 a = array.array(self.typecode, range(4)) |
|
23929
26ba17b758b9
Fix the bug described in
Michael W. Hudson <mwh@python.net>
parents:
23459
diff
changeset
|
1023 a[::-1] = a |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1024 self.assertEqual(a, array.array(self.typecode, [3, 2, 1, 0])) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1025 a = array.array(self.typecode, range(10)) |
|
23929
26ba17b758b9
Fix the bug described in
Michael W. Hudson <mwh@python.net>
parents:
23459
diff
changeset
|
1026 b = a[:] |
|
26ba17b758b9
Fix the bug described in
Michael W. Hudson <mwh@python.net>
parents:
23459
diff
changeset
|
1027 c = a[:] |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1028 ins = array.array(self.typecode, range(2)) |
|
23929
26ba17b758b9
Fix the bug described in
Michael W. Hudson <mwh@python.net>
parents:
23459
diff
changeset
|
1029 a[2:3] = ins |
|
26ba17b758b9
Fix the bug described in
Michael W. Hudson <mwh@python.net>
parents:
23459
diff
changeset
|
1030 b[slice(2,3)] = ins |
|
26ba17b758b9
Fix the bug described in
Michael W. Hudson <mwh@python.net>
parents:
23459
diff
changeset
|
1031 c[2:3:] = ins |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1032 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1033 def test_iterationcontains(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1034 a = array.array(self.typecode, range(10)) |
|
41642
a6eb6acfe04a
Merged revisions 55007-55179 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41592
diff
changeset
|
1035 self.assertEqual(list(a), list(range(10))) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1036 b = array.array(self.typecode, [20]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1037 self.assertEqual(a[-1] in a, True) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1038 self.assertEqual(b[0] not in a, True) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1039 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1040 def check_overflow(self, lower, upper): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1041 # method to be used by subclasses |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1042 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1043 # should not overflow assigning lower limit |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1044 a = array.array(self.typecode, [lower]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1045 a[0] = lower |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1046 # should overflow assigning less than lower limit |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1047 self.assertRaises(OverflowError, array.array, self.typecode, [lower-1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1048 self.assertRaises(OverflowError, a.__setitem__, 0, lower-1) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1049 # should not overflow assigning upper limit |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1050 a = array.array(self.typecode, [upper]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1051 a[0] = upper |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1052 # should overflow assigning more than upper limit |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1053 self.assertRaises(OverflowError, array.array, self.typecode, [upper+1]) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1054 self.assertRaises(OverflowError, a.__setitem__, 0, upper+1) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1055 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1056 def test_subclassing(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1057 typecode = self.typecode |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1058 class ExaggeratingArray(array.array): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1059 __slots__ = ['offset'] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1060 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1061 def __new__(cls, typecode, data, offset): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1062 return array.array.__new__(cls, typecode, data) |
|
8676
7d96842383bb
Add tests for array self-assigns. (This one has no relevance to JPython.)
Guido van Rossum <guido@python.org>
parents:
7747
diff
changeset
|
1063 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1064 def __init__(self, typecode, data, offset): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1065 self.offset = offset |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1066 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1067 def __getitem__(self, i): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1068 return array.array.__getitem__(self, i) + self.offset |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1069 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1070 a = ExaggeratingArray(self.typecode, [3, 6, 7, 11], 4) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1071 self.assertEntryEqual(a[0], 7) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1072 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1073 self.assertRaises(AttributeError, setattr, a, "color", "blue") |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1074 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1075 class SignedNumberTest(NumberTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1076 example = [-1, 0, 1, 42, 0x7f] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1077 smallerexample = [-1, 0, 1, 42, 0x7e] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1078 biggerexample = [-1, 0, 1, 43, 0x7f] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1079 outside = 23 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1080 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1081 def test_overflow(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1082 a = array.array(self.typecode) |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40450
diff
changeset
|
1083 lower = -1 * int(pow(2, a.itemsize * 8 - 1)) |
|
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40450
diff
changeset
|
1084 upper = int(pow(2, a.itemsize * 8 - 1)) - 1 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1085 self.check_overflow(lower, upper) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1086 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1087 class UnsignedNumberTest(NumberTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1088 example = [0, 1, 17, 23, 42, 0xff] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1089 smallerexample = [0, 1, 17, 23, 42, 0xfe] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1090 biggerexample = [0, 1, 17, 23, 43, 0xff] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1091 outside = 0xaa |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1092 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1093 def test_overflow(self): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1094 a = array.array(self.typecode) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1095 lower = 0 |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40450
diff
changeset
|
1096 upper = int(pow(2, a.itemsize * 8)) - 1 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1097 self.check_overflow(lower, upper) |
|
15305
07f24261c6e6
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
14649
diff
changeset
|
1098 |
|
07f24261c6e6
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
14649
diff
changeset
|
1099 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1100 class ByteTest(SignedNumberTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1101 typecode = 'b' |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1102 minitemsize = 1 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1103 tests.append(ByteTest) |
|
15305
07f24261c6e6
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
14649
diff
changeset
|
1104 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1105 class UnsignedByteTest(UnsignedNumberTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1106 typecode = 'B' |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1107 minitemsize = 1 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1108 tests.append(UnsignedByteTest) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1109 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1110 class ShortTest(SignedNumberTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1111 typecode = 'h' |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1112 minitemsize = 2 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1113 tests.append(ShortTest) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1114 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1115 class UnsignedShortTest(UnsignedNumberTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1116 typecode = 'H' |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1117 minitemsize = 2 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1118 tests.append(UnsignedShortTest) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1119 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1120 class IntTest(SignedNumberTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1121 typecode = 'i' |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1122 minitemsize = 2 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1123 tests.append(IntTest) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1124 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1125 class UnsignedIntTest(UnsignedNumberTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1126 typecode = 'I' |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1127 minitemsize = 2 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1128 tests.append(UnsignedIntTest) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1129 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1130 class LongTest(SignedNumberTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1131 typecode = 'l' |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1132 minitemsize = 4 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1133 tests.append(LongTest) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1134 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1135 class UnsignedLongTest(UnsignedNumberTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1136 typecode = 'L' |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1137 minitemsize = 4 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1138 tests.append(UnsignedLongTest) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1139 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1140 class FPTest(NumberTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1141 example = [-42.0, 0, 42, 1e5, -1e10] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1142 smallerexample = [-42.0, 0, 42, 1e5, -2e10] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1143 biggerexample = [-42.0, 0, 42, 1e5, 1e10] |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1144 outside = 23 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1145 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1146 def assertEntryEqual(self, entry1, entry2): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1147 self.assertAlmostEqual(entry1, entry2) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1148 |
|
29204
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1149 def test_byteswap(self): |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1150 a = array.array(self.typecode, self.example) |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1151 self.assertRaises(TypeError, a.byteswap, 42) |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1152 if a.itemsize in (1, 2, 4, 8): |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1153 b = array.array(self.typecode, self.example) |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1154 b.byteswap() |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1155 if a.itemsize==1: |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1156 self.assertEqual(a, b) |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1157 else: |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1158 # On alphas treating the byte swapped bit patters as |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1159 # floats/doubles results in floating point exceptions |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1160 # => compare the 8bit string values instead |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1161 self.assertNotEqual(a.tostring(), b.tostring()) |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1162 b.byteswap() |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1163 self.assertEqual(a, b) |
|
b1f643690a88
test_byteswap() fails on alphas, because treating the byte swapped bit
Walter Dörwald <walter@livinglogic.de>
parents:
29163
diff
changeset
|
1164 |
|
29205
56ffca02c824
Walter's last checkin also needs to work on doubles.
Neal Norwitz <nnorwitz@gmail.com>
parents:
29204
diff
changeset
|
1165 class FloatTest(FPTest): |
|
56ffca02c824
Walter's last checkin also needs to work on doubles.
Neal Norwitz <nnorwitz@gmail.com>
parents:
29204
diff
changeset
|
1166 typecode = 'f' |
|
56ffca02c824
Walter's last checkin also needs to work on doubles.
Neal Norwitz <nnorwitz@gmail.com>
parents:
29204
diff
changeset
|
1167 minitemsize = 4 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1168 tests.append(FloatTest) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1169 |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1170 class DoubleTest(FPTest): |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1171 typecode = 'd' |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1172 minitemsize = 8 |
|
48330
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1173 |
|
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1174 def test_alloc_overflow(self): |
|
49490
c0ac47984b11
Merged revisions 66703,66708 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48330
diff
changeset
|
1175 from sys import maxsize |
|
48330
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1176 a = array.array('d', [-1]*65536) |
|
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1177 try: |
|
49490
c0ac47984b11
Merged revisions 66703,66708 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48330
diff
changeset
|
1178 a *= maxsize//65536 + 1 |
|
48330
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1179 except MemoryError: |
|
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1180 pass |
|
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1181 else: |
|
49490
c0ac47984b11
Merged revisions 66703,66708 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48330
diff
changeset
|
1182 self.fail("Array of size > maxsize created - MemoryError expected") |
|
48330
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1183 b = array.array('d', [ 2.71828183, 3.14159265, -1]) |
|
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1184 try: |
|
49490
c0ac47984b11
Merged revisions 66703,66708 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48330
diff
changeset
|
1185 b * (maxsize//3 + 1) |
|
48330
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1186 except MemoryError: |
|
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1187 pass |
|
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1188 else: |
|
49490
c0ac47984b11
Merged revisions 66703,66708 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48330
diff
changeset
|
1189 self.fail("Array of size > maxsize created - MemoryError expected") |
|
48330
ac854cde3135
Merged revisions 64114 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47611
diff
changeset
|
1190 |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1191 tests.append(DoubleTest) |
|
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1192 |
|
33316
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1193 def test_main(verbose=None): |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1194 import sys |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1195 |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46430
diff
changeset
|
1196 support.run_unittest(*tests) |
|
29157
7f0074ee8ab9
Port test_array and test_winsound to PyUnit. Enhance tests for array
Walter Dörwald <walter@livinglogic.de>
parents:
27128
diff
changeset
|
1197 |
|
33316
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1198 # verify reference counting |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1199 if verbose and hasattr(sys, "gettotalrefcount"): |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1200 import gc |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1201 counts = [None] * 5 |
|
41642
a6eb6acfe04a
Merged revisions 55007-55179 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41592
diff
changeset
|
1202 for i in range(len(counts)): |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46430
diff
changeset
|
1203 support.run_unittest(*tests) |
|
33316
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1204 gc.collect() |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1205 counts[i] = sys.gettotalrefcount() |
|
40775
4cdf21a0dbbc
Fix most trivially-findable print statements.
Guido van Rossum <guido@python.org>
parents:
40737
diff
changeset
|
1206 print(counts) |
|
33316
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1207 |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1208 if __name__ == "__main__": |
|
0b181bf230c9
SF feature request #992967: array.array objects should support sequences.
Raymond Hettinger <python@rcn.com>
parents:
32159
diff
changeset
|
1209 test_main(verbose=True) |
