Module EDTestCaseEDUtilsArray
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 __authors__ = ["Jérôme Kieffer"]
30 __contact__ = "Jerome.Kieffer@esrf.eu"
31 __license__ = "LGPLv3+"
32 __copyright__ = "European Synchrotron Radiation Facility, Grenoble, France"
33
34 import os, sys
35 from EDVerbose import EDVerbose
36 from EDTestCase import EDTestCase
37 from EDAssert import EDAssert
38 from EDUtilsArray import EDUtilsArray
39 from XSDataCommon import XSDataArray
40 from EDUtilsLibraryInstaller import EDUtilsLibraryInstaller
41 from EDFactoryPluginStatic import EDFactoryPluginStatic
42 from EDUtilsPlatform import EDUtilsPlatform
43
44
45 EDFactoryPluginStatic.loadModule("EDInstallNumpyv1_3")
46 numpyPath = os.path.join(os.environ["EDNA_HOME"], "libraries", "20090405-Numpy-1.3", EDUtilsPlatform.architecture)
47 numpy = EDFactoryPluginStatic.preImport("numpy", numpyPath, _strMethodVersion="__version__")
48 if numpy is None:
49 EDVerbose.WARNING("Numpy is not directly available, I will run all tests without it")
50
51
52 EDFactoryPluginStatic.loadModule("EDInstallPILv1_1_7")
53
54
55
56
57
58
59
60 EDFactoryPluginStatic.loadModule("EDInstallFabio_v0_0_7")
61
62
63
64
65
66
67 EDFactoryPluginStatic.loadModule("EDInstallH5Pyv1_3_0")
68
69
70
71
72
73
74
76 """
77 Unit & execution test for the EDUtilsArray static class
78 """
79
81 EDTestCase.__init__(self, "EDUtilsArray")
82 self.strXSDataArrayNumpy = """<?xml version="1.0" ?>
83 <XSDataArray>
84 <shape>10</shape>
85 <shape>10</shape>
86 <size>100</size>
87 <dtype>uint8</dtype>
88 <data>AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiYw==</data>
89 <coding><value>base64</value></coding>
90 <md5sum><value>7acedd1a84a4cfcb6e7a16003242945e</value></md5sum>
91 </XSDataArray>"""
92 self.xsDataArrayNumpy = XSDataArray.parseString(self.strXSDataArrayNumpy)
93 self.strXSDataArrayNoNumpy = """<?xml version="1.0" ?>
94 <XSDataArray>
95 <shape>10</shape>
96 <shape>10</shape>
97 <size>100</size>
98 <dtype>int64</dtype>
99 <data>AAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAUAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAgAAAAAAAAACQAAAAAAAAAKAAAAAAAAAAsAAAAAAAAADAAAAAAAAAANAAAAAAAAAA4AAAAAAAAADwAAAAAAAAAQAAAAAAAAABEAAAAAAAAAEgAAAAAAAAATAAAAAAAAABQAAAAAAAAAFQAAAAAAAAAWAAAAAAAAABcAAAAAAAAAGAAAAAAAAAAZAAAAAAAAABoAAAAAAAAAGwAAAAAAAAAcAAAAAAAAAB0AAAAAAAAAHgAAAAAAAAAfAAAAAAAAACAAAAAAAAAAIQAAAAAAAAAiAAAAAAAAACMAAAAAAAAAJAAAAAAAAAAlAAAAAAAAACYAAAAAAAAAJwAAAAAAAAAoAAAAAAAAACkAAAAAAAAAKgAAAAAAAAArAAAAAAAAACwAAAAAAAAALQAAAAAAAAAuAAAAAAAAAC8AAAAAAAAAMAAAAAAAAAAxAAAAAAAAADIAAAAAAAAAMwAAAAAAAAA0AAAAAAAAADUAAAAAAAAANgAAAAAAAAA3AAAAAAAAADgAAAAAAAAAOQAAAAAAAAA6AAAAAAAAADsAAAAAAAAAPAAAAAAAAAA9AAAAAAAAAD4AAAAAAAAAPwAAAAAAAABAAAAAAAAAAEEAAAAAAAAAQgAAAAAAAABDAAAAAAAAAEQAAAAAAAAARQAAAAAAAABGAAAAAAAAAEcAAAAAAAAASAAAAAAAAABJAAAAAAAAAEoAAAAAAAAASwAAAAAAAABMAAAAAAAAAE0AAAAAAAAATgAAAAAAAABPAAAAAAAAAFAAAAAAAAAAUQAAAAAAAABSAAAAAAAAAFMAAAAAAAAAVAAAAAAAAABVAAAAAAAAAFYAAAAAAAAAVwAAAAAAAABYAAAAAAAAAFkAAAAAAAAAWgAAAAAAAABbAAAAAAAAAFwAAAAAAAAAXQAAAAAAAABeAAAAAAAAAF8AAAAAAAAAYAAAAAAAAABhAAAAAAAAAGIAAAAAAAAAYwAAAAAAAAA=</data>
100 <coding><value>base64</value></coding>
101 <md5sum><value>13e5d157161f66d98fe0b75ce51c982b</value></md5sum>
102 </XSDataArray>"""
103
104 self.arrayNoNumpy = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
105 [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
106 [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
107 [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
108 [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
109 [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
110 [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
111 [70, 71, 72, 73, 74, 75, 76, 77, 78, 79],
112 [80, 81, 82, 83, 84, 85, 86, 87, 88, 89],
113 [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]
114 if numpy is not None:
115 self.arrayNumpy = numpy.arange(100, dtype="uint8").reshape((10, 10))
116 else:
117 self.arrayNumpy = self.arrayNoNumpy
118
120 """
121 test the execution of xsDataToArray static method
122 """
123 EDVerbose.DEBUG("EDTestCaseEDUtilsArray.unitTestXsdToArray")
124 if numpy is not None:
125 EDAssert.arraySimilar(self.arrayNumpy,
126 EDUtilsArray.xsDataToArray(self.xsDataArrayNumpy, _bForceNoNumpy=False),
127 _strComment="Array are the same (Numpy used)")
128 else:
129 EDAssert.equal(self.arrayNoNumpy,
130 EDUtilsArray.xsDataToArray(self.xsDataArrayNumpy, _bCheckMd5sum=True, _bForceNoNumpy=False),
131 "Array are the same (no Numpy available)")
132
134 """
135 test the execution of detectNumberOfCPUs
136 """
137 EDVerbose.DEBUG("EDTestCaseEDUtilsArray.unitTestXsdToArrayNoNumpy")
138 EDAssert.equal(self.arrayNoNumpy,
139 EDUtilsArray.xsDataToArray(self.xsDataArrayNumpy, _bForceNoNumpy=True),
140 "Array are the same (forced No Numpy)")
141
142
144 """
145 test the execution of xsDataToArray static method
146 """
147 EDVerbose.DEBUG("EDTestCaseEDUtilsArray.unitTestArraytoXsd")
148 if numpy is not None:
149 EDAssert.strAlmostEqual(XSDataArray.parseString(self.strXSDataArrayNumpy).marshal(),
150 EDUtilsArray.arrayToXSData(self.arrayNumpy).marshal(),
151 _strComment="XSDataArray from (numpyArray) are the same")
152 else:
153 EDAssert.strAlmostEqual(XSDataArray.parseString(self.strXSDataArrayNoNumpy).marshal(),
154 EDUtilsArray.arrayToXSData(self.arrayNumpy).marshal(),
155 _strComment="XSDataArray from (Non numpy Array) are the same")
156
157
159 """
160 test the execution of detectNumberOfCPUs
161 """
162 EDVerbose.DEBUG("EDTestCaseEDUtilsArray.unitTestArraytoXsdNoNumpy")
163 EDAssert.strAlmostEqual(XSDataArray.parseString(self.strXSDataArrayNoNumpy).marshal(),
164 EDUtilsArray.arrayToXSData(self.arrayNumpy, _bForceNoNumpy=True).marshal(),
165 _strComment="XSDataArray from (numpyArray) are the same (forced No Numpy)")
166 EDAssert.strAlmostEqual(XSDataArray.parseString(self.strXSDataArrayNoNumpy).marshal(),
167 EDUtilsArray.arrayToXSData(self.arrayNoNumpy, _bForceNoNumpy=True).marshal(),
168 _strComment="XSDataArray from (list of lists) are the same (forced No Numpy)")
169
170
176
177
178
179 if __name__ == '__main__':
180
181 edTestCaseEDUtils = EDTestCaseEDUtilsArray("EDTestCaseEDUtilsArray")
182 edTestCaseEDUtils.execute()
183