You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
2.4 KiB
125 lines
2.4 KiB
# Originally contributed by Stefan Schukat as part of this arbitrary-sized
|
|
# arrays patch.
|
|
from win32com.client import gencache
|
|
from win32com.test import util
|
|
import unittest
|
|
|
|
ZeroD = 0
|
|
OneDEmpty = []
|
|
OneD = [1,2,3]
|
|
TwoD = [
|
|
[1,2,3],
|
|
[1,2,3],
|
|
[1,2,3]
|
|
]
|
|
|
|
TwoD1 = [
|
|
[
|
|
[1,2,3,5],
|
|
[1,2,3],
|
|
[1,2,3]
|
|
],
|
|
[
|
|
[1,2,3],
|
|
[1,2,3],
|
|
[1,2,3]
|
|
]
|
|
]
|
|
|
|
OneD1 = [
|
|
[
|
|
[1,2,3],
|
|
[1,2,3],
|
|
[1,2,3]
|
|
],
|
|
[
|
|
[1,2,3],
|
|
[1,2,3]
|
|
]
|
|
]
|
|
|
|
OneD2 = [
|
|
[1,2,3],
|
|
[1,2,3,4,5],
|
|
[
|
|
[1,2,3,4,5],
|
|
[1,2,3,4,5],
|
|
[1,2,3,4,5]
|
|
]
|
|
]
|
|
|
|
|
|
ThreeD = [
|
|
[
|
|
[1,2,3],
|
|
[1,2,3],
|
|
[1,2,3]
|
|
],
|
|
[
|
|
[1,2,3],
|
|
[1,2,3],
|
|
[1,2,3]
|
|
]
|
|
]
|
|
|
|
FourD = [
|
|
[
|
|
[[1,2,3],[1,2,3],[1,2,3]],
|
|
[[1,2,3],[1,2,3],[1,2,3]],
|
|
[[1,2,3],[1,2,3],[1,2,3]]
|
|
],
|
|
[
|
|
[[1,2,3],[1,2,3],[1,2,3]],
|
|
[[1,2,3],[1,2,3],[1,2,3]],
|
|
[[1,2,3],[1,2,3],[1,2,3]]
|
|
]
|
|
]
|
|
|
|
LargeD = [
|
|
[ [list(range(10))] * 10],
|
|
] * 512
|
|
|
|
def _normalize_array(a):
|
|
if type(a) != type(()):
|
|
return a
|
|
ret = []
|
|
for i in a:
|
|
ret.append(_normalize_array(i))
|
|
return ret
|
|
|
|
class ArrayTest(util.TestCase):
|
|
def setUp(self):
|
|
self.arr = gencache.EnsureDispatch("PyCOMTest.ArrayTest")
|
|
def tearDown(self):
|
|
self.arr = None
|
|
def _doTest(self, array):
|
|
self.arr.Array = array
|
|
self.failUnlessEqual(_normalize_array(self.arr.Array), array)
|
|
def testZeroD(self):
|
|
self._doTest(ZeroD)
|
|
def testOneDEmpty(self):
|
|
self._doTest(OneDEmpty)
|
|
def testOneD(self):
|
|
self._doTest(OneD)
|
|
def testTwoD(self):
|
|
self._doTest(TwoD)
|
|
def testThreeD(self):
|
|
self._doTest(ThreeD)
|
|
def testFourD(self):
|
|
self._doTest(FourD)
|
|
def testTwoD1(self):
|
|
self._doTest(TwoD1)
|
|
def testOneD1(self):
|
|
self._doTest(OneD1)
|
|
def testOneD2(self):
|
|
self._doTest(OneD2)
|
|
def testLargeD(self):
|
|
self._doTest(LargeD)
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
util.testmain()
|
|
except SystemExit as rc:
|
|
if not rc:
|
|
raise
|