#!/usr/bin/env python
"""
.. py:currentmodule:: FileFormat.Results.test_SpectraEDS
.. moduleauthor:: Hendrix Demers <hendrix.demers@mail.mcgill.ca>
Tests for module `SpectraEDS`.
"""
# Script information for the file.
__author__ = "Hendrix Demers (hendrix.demers@mail.mcgill.ca)"
__version__ = ""
__date__ = ""
__copyright__ = "Copyright (c) 2012 Hendrix Demers"
__license__ = ""
# Subversion informations for the file.
__svnRevision__ = "$Revision$"
__svnDate__ = "$Date$"
__svnId__ = "$Id$"
# Standard library modules.
import unittest
import os.path
# Third party modules.
# Local modules.
# Project modules
import pymcxray.FileFormat.Results.SpectraEDS as SpectraEDS
# Globals and constants variables.
[docs]class TestSpectraEDS(unittest.TestCase):
"""
TestCase class for the module `SpectraEDS`.
"""
[docs] def setUp(self):
"""
Setup method.
"""
unittest.TestCase.setUp(self)
self.testDataPath = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../test_data"))
self.spectraEdsRegion0Filepath = os.path.join(self.testDataPath, "version1.1/autoSavedFiles/DetectionLimits_N1000x_C_r10A_z11A_Au_E30d0keVEDSRegion0.txt")
self.spectraEdsRegion1Filepath = os.path.join(self.testDataPath, "version1.1/autoSavedFiles/DetectionLimits_N1000x_C_r10A_z11A_Au_E30d0keVEDSRegion1.txt")
[docs] def tearDown(self):
"""
Teardown method.
"""
unittest.TestCase.tearDown(self)
[docs] def testSkeleton(self):
"""
First test to check if the testcase is working with the testing framework.
"""
#self.fail("Test if the testcase is working.")
self.assert_(True)
[docs] def test_FindTestData(self):
"""
Tests for method `FindTestData`.
"""
self.assertTrue(os.path.isfile(self.spectraEdsRegion0Filepath))
self.assertTrue(os.path.isfile(self.spectraEdsRegion1Filepath))
#self.fail("Test if the testcase is working.")
#self.fail("Test if the testcase is working.")
#self.fail("Test if the testcase is working.")
[docs] def test__isPartialSpectraReferenceSection(self):
"""
Tests for method `_isTestInputSection`.
"""
lines = open(self.spectraEdsRegion0Filepath, 'r').readlines()
lines =[line.strip() for line in lines]
self.assertTrue(SpectraEDS.SpectraEDS()._isPartialSpectraReferenceSection(lines))
lines = open(self.spectraEdsRegion1Filepath, 'r').readlines()
lines =[line.strip() for line in lines]
self.assertTrue(SpectraEDS.SpectraEDS()._isPartialSpectraReferenceSection(lines))
lines = """TEST INPUT - START
E_C = %7.5e, I_C = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
TEST INPUT - STOP
""".splitlines()
lines =[line.strip() for line in lines]
self.assertFalse(SpectraEDS.SpectraEDS()._isPartialSpectraReferenceSection(lines))
#self.fail("Test if the testcase is working.")
[docs] def test_readPartialSpectraReferenceSection(self):
"""
Tests for method `readTestInputSection`.
"""
lines = """TEST INPUT - START
E_C = %7.5e, I_C = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
TEST INPUT - STOP
""".splitlines()
self.assertRaises(ValueError, SpectraEDS.SpectraEDS().readPartialSpectraReferenceSection, lines)
lines = open(self.spectraEdsRegion0Filepath, 'r').readlines()
lines =[line.strip() for line in lines]
self.assertEquals(2097, SpectraEDS.SpectraEDS().readPartialSpectraReferenceSection(lines))
lines = open(self.spectraEdsRegion1Filepath, 'r').readlines()
lines =[line.strip() for line in lines]
self.assertEquals(2097, SpectraEDS.SpectraEDS().readPartialSpectraReferenceSection(lines))
#self.fail("Test if the testcase is working.")
#self.fail("Test if the testcase is working.")
[docs] def test__isRegionSpectraSection(self):
"""
Tests for method `_isRegionSpectraSection`.
"""
lines = open(self.spectraEdsRegion0Filepath, 'r').readlines()
self.assertTrue(SpectraEDS.SpectraEDS()._isRegionSpectraSection(lines))
lines = open(self.spectraEdsRegion1Filepath, 'r').readlines()
self.assertTrue(SpectraEDS.SpectraEDS()._isRegionSpectraSection(lines))
lines = """TEST INPUT - START
E_C = %7.5e, I_C = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
TEST INPUT - STOP
""".splitlines()
self.assertFalse(SpectraEDS.SpectraEDS()._isRegionSpectraSection(lines))
#self.fail("Test if the testcase is working.")
[docs] def test_readRegionSpectraSection(self):
"""
Tests for method `readRegionSpectraSection`.
"""
lines = """TEST INPUT - START
E_C = %7.5e, I_C = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
E_Brut = %7.5e, I_Brut = %15.14e
TEST INPUT - STOP
""".splitlines()
self.assertRaises(ValueError, SpectraEDS.SpectraEDS().readRegionSpectraSection, lines)
spectraEDS = SpectraEDS.SpectraEDS()
# Region 0 file.
lines = open(self.spectraEdsRegion0Filepath, 'r').readlines()
lines =[line.strip() for line in lines]
self.assertEquals(6279, spectraEDS.readRegionSpectraSection(lines))
self.assertEquals(0, spectraEDS.regionID)
self.assertEquals(1, spectraEDS.numberElements)
for symbol in spectraEDS.elements:
weightFraction = spectraEDS.elements[symbol]
self.assertEquals("Au", symbol)
self.assertAlmostEquals(1.0, weightFraction)
self.assertAlmostEquals(0.65211, spectraEDS.characteristicProbability)
self.assertEquals(1000, spectraEDS.numberSimulatedPhotons)
self.assertEquals(5, spectraEDS.numberCharateristicPeaks)
self.assertEquals(1024, len(spectraEDS.iOutSpectrumEDS.channels))
self.assertEquals(5, len(spectraEDS.eNetSpectrumEDS))
self.assertEquals(1024, len(spectraEDS.eNetSpectrumEDS[0].channels))
self.assertEquals(5, len(spectraEDS.pCharacteristic))
self.assertEquals(1024, len(spectraEDS.pBackground))
self.assertEquals(1024, len(spectraEDS.continuumCumulativeEquiprobableChannels))
# Region 1 file
lines = open(self.spectraEdsRegion1Filepath, 'r').readlines()
lines =[line.strip() for line in lines]
self.assertEquals(6263, spectraEDS.readRegionSpectraSection(lines))
self.assertEquals(1, spectraEDS.regionID)
self.assertEquals(1, spectraEDS.numberElements)
for symbol in spectraEDS.elements:
weightFraction = spectraEDS.elements[symbol]
self.assertEquals("C", symbol)
self.assertAlmostEquals(1.0, weightFraction)
self.assertAlmostEquals(0.825861, spectraEDS.characteristicProbability)
self.assertEquals(0, spectraEDS.numberSimulatedPhotons)
self.assertEquals(1, spectraEDS.numberCharateristicPeaks)
self.assertEquals(1024, len(spectraEDS.iOutSpectrumEDS.channels))
self.assertEquals(1, len(spectraEDS.eNetSpectrumEDS))
self.assertEquals(1024, len(spectraEDS.eNetSpectrumEDS[0].channels))
self.assertEquals(1, len(spectraEDS.pCharacteristic))
self.assertEquals(1024, len(spectraEDS.pBackground))
self.assertEquals(1024, len(spectraEDS.continuumCumulativeEquiprobableChannels))
#self.fail("Test if the testcase is working.")
if __name__ == '__main__': #pragma: no cover
import nose
nose.runmodule()