/usr/lib/python2.7/dist-packages/PyMca/tests/EdfFileTest.py is in pymca 4.7.4+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | #/*##########################################################################
# Copyright (C) 2004 - 2014 European Synchrotron Radiation Facility
#
# This file is part of the PyMca X-ray Fluorescence Toolkit developed at
# the ESRF by the Software group.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This file is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
#############################################################################*/
__author__ = "V.A. Sole - ESRF Data Analysis"
import unittest
import sys
import os
import gc
import tempfile
import numpy
class testEdfFile(unittest.TestCase):
def setUp(self):
"""
import the EdfFile module
"""
tmpFile = tempfile.mkstemp(text=False)
os.close(tmpFile[0])
self.fname = tmpFile[1]
try:
from PyMca.PyMcaIO.EdfFile import EdfFile
self.fileClass = EdfFile
except:
self.fileClass = None
def tearDown(self):
"""clean up any possible files"""
gc.collect()
if self.fileClass is not None:
if os.path.exists(self.fname):
os.remove(self.fname)
def testEdfFileImport(self):
#"""Test successful import"""
self.assertTrue(self.fileClass is not None)
def testEdfFileReadWrite(self):
# create a file
self.assertTrue(self.fileClass is not None)
data = numpy.arange(10000).astype(numpy.int32)
data.shape = 100, 100
edf = self.fileClass(self.fname, 'wb+')
edf.WriteImage({'Title': "title",
'key': 'key'}, data)
edf = None
# read it
edf = self.fileClass(self.fname, 'rb')
# the number of images
nImages = edf.GetNumImages()
self.assertEqual(nImages, 1)
# the header information
header = edf.GetHeader(0)
self.assertEqual(header['Title'], "title")
self.assertEqual(header['key'], "key")
#the data information
readData = edf.GetData(0)
self.assertEqual(readData.dtype, numpy.int32,
'Read type %s instead of %s' %\
(readData.dtype, numpy.int32))
self.assertEqual(readData[10,20], data[10,20])
self.assertEqual(readData[20,10], data[20,10])
edf =None
# add a second Image
edf = self.fileClass(self.fname, 'rb+')
edf.WriteImage({'Title': "title2", 'key': 'key2'},
data.astype(numpy.float32), Append=1)
edf = None
# read it
edf = self.fileClass(self.fname, 'rb')
# the number of images
nImages = edf.GetNumImages()
self.assertEqual(nImages, 2)
# the header information
header = edf.GetHeader(1)
self.assertEqual(header['Title'], "title2")
self.assertEqual(header['key'], "key2")
# the data information
readData = edf.GetData(1)
self.assertEqual(readData.dtype, numpy.float32)
self.assertTrue(abs(readData[10,20]-data[10,20]) < 0.00001)
self.assertTrue(abs(readData[20,10]-data[20,10]) < 0.00001)
edf =None
gc.collect()
def getSuite(auto=True):
testSuite = unittest.TestSuite()
if auto:
testSuite.addTest(\
unittest.TestLoader().loadTestsFromTestCase(testEdfFile))
else:
# use a predefined order
testSuite.addTest(testEdfFile("testEdfFileImport"))
testSuite.addTest(testEdfFile("testEdfFileReadWrite"))
return testSuite
def test(auto=False):
unittest.TextTestRunner(verbosity=2).run(getSuite(auto=auto))
if __name__ == '__main__':
test()
|