Module EDTestCaseEDUtilsArray
[hide private]
[frames] | no frames]

Source Code for Module EDTestCaseEDUtilsArray

  1  #    coding: utf8 
  2  # 
  3  #    Project: The EDNA Kernel 
  4  #             http://www.edna-site.org 
  5  # 
  6  #    File: "$Id: EDTestCaseParallelExecute.py 2128 2010-10-04 16:39:42Z kieffer $" 
  7  # 
  8  #    Copyright (C) 2008-2009 European Synchrotron Radiation Facility 
  9  #                            Grenoble, France 
 10  # 
 11  #    Principal authors: Jérôme Kieffer (kieffer@esrf.fr) 
 12  #  
 13  # 
 14  #    This program is free software: you can redistribute it and/or modify 
 15  #    it under the terms of the GNU Lesser General Public License as published 
 16  #    by the Free Software Foundation, either version 3 of the License, or 
 17  #    (at your option) any later version. 
 18  # 
 19  #    This program is distributed in the hope that it will be useful, 
 20  #    but WITHOUT ANY WARRANTY; without even the implied warranty of 
 21  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 22  #    GNU Lesser General Public License for more details. 
 23  # 
 24  #    You should have received a copy of the GNU General Public License 
 25  #    and the GNU Lesser General Public License  along with this program.   
 26  #    If not, see <http://www.gnu.org/licenses/>. 
 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  #EDVerbose.screen("Check Install Numpy") 
 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  #EDVerbose.screen("Check Install PIL") 
 52  EDFactoryPluginStatic.loadModule("EDInstallPILv1_1_7") 
 53  #ImagePath = os.path.join(os.environ["EDNA_HOME"], "libraries", "20091115-PIL-1.1.7", EDUtilsPlatform.architecture) 
 54  #Image = EDFactoryPluginStatic.preImport("Image", ImagePath, _strMethodVersion="VERSION") 
 55  #if Image is None: 
 56  #    EDVerbose.WARNING("Image is not directly available, I will run all tests without it") 
 57   
 58   
 59  #EDVerbose.screen("Check Install Fabio") 
 60  EDFactoryPluginStatic.loadModule("EDInstallFabio_v0_0_7") 
 61  #fabioPath = os.path.join(os.environ["EDNA_HOME"], "libraries", "FabIO-0.0.7", EDUtilsPlatform.architecture) 
 62  #fabio = EDFactoryPluginStatic.preImport("fabio", fabioPath, _strMethodVersion="version") 
 63  #if fabio is None: 
 64  #    EDVerbose.WARNING("FabIO is not directly available, I will run all tests without it") 
 65   
 66  #EDVerbose.screen("Check Install H5Py") 
 67  EDFactoryPluginStatic.loadModule("EDInstallH5Pyv1_3_0") 
 68  #h5pyPath = os.path.join(os.environ["EDNA_HOME"], "libraries", "H5Py-1.3.0", EDUtilsPlatform.architecture) 
 69  #h5py = EDFactoryPluginStatic.preImport("h5py", h5pyPath, _strMethodVersion="version.version") 
 70  #if h5py is None: 
 71  #    EDVerbose.WARNING("H5Py is not directly available, I will run all tests without it") 
 72   
 73   
 74   
75 -class EDTestCaseEDUtilsArray(EDTestCase):
76 """ 77 Unit & execution test for the EDUtilsArray static class 78 """ 79
80 - def __init__(self, _strTestName=None):
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
119 - def unitTestXsdToArray(self):
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
143 - def unitTestArraytoXsd(self):
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
171 - def process(self):
176 177 178 179 if __name__ == '__main__': 180 181 edTestCaseEDUtils = EDTestCaseEDUtilsArray("EDTestCaseEDUtilsArray") 182 edTestCaseEDUtils.execute() 183