Beispiel #1
0
    def test_problem_sim_v250(self):
        if is_bad_file(self.filepath_problem_sim_v250):
            raise SkipTest

        # .sim
        file = File.File()
        file.readFromFilepath(self.filepath_problem_sim_v250)
        self.assertEqual(self.filepath_problem_sim_v250, file._filepath)
        self.assertEqual(0, file._numberSimulations)

        option_simulation_data = file.getOptionSimulationData()
        version = option_simulation_data.getVersion()
        self.assertEqual(Version.VERSION_2_50, version)

        simulation_options = option_simulation_data.getSimulationOptions()

        number_electrons = simulation_options.getNumberElectrons()
        self.assertEqual(200, number_electrons)

        incident_energy_keV = simulation_options.getIncidentEnergy_keV()
        self.assertAlmostEqual(1.0, incident_energy_keV)

        toa_deg = simulation_options.getTOA_deg()
        self.assertAlmostEqual(40.0, toa_deg)

        number_xray_layers = simulation_options.getNumberXRayLayers()
        self.assertEqual(500, number_xray_layers)

        if is_bad_file(self.filepath_good_sim_v251):
            raise SkipTest

        # .sim
        file = File.File()
        file.readFromFilepath(self.filepath_good_sim_v251)
        self.assertEqual(self.filepath_good_sim_v251, file._filepath)
        self.assertEqual(0, file._numberSimulations)

        option_simulation_data = file.getOptionSimulationData()
        version = option_simulation_data.getVersion()
        self.assertEqual(Version.VERSION_2_51, version)

        simulation_options = option_simulation_data.getSimulationOptions()

        number_electrons = simulation_options.getNumberElectrons()
        self.assertEqual(200, number_electrons)

        incident_energy_keV = simulation_options.getIncidentEnergy_keV()
        self.assertAlmostEqual(1.0, incident_energy_keV)

        toa_deg = simulation_options.getTOA_deg()
        self.assertAlmostEqual(40.0, toa_deg)

        number_xray_layers = simulation_options.getNumberXRayLayers()
        self.assertEqual(500, number_xray_layers)
    def test_CasNoPsfs(self):
        """
        Tests for method `CasNoPsfs`.
        """

        filepath = resource_filename(__name__, "../../../test_data/casino3.x/PSFs/SiN_woPSFs_bG_T200nm.cas")
        if is_bad_file(filepath):
            raise SkipTest(filepath)

        casinoFile = File.File(filepath)

        versionRef = Version.SIM_OPTIONS_VERSION_3_3_0_0
        versionStrRef = "3.3.0.0"

        version = casinoFile.getVersion()
        self.assertEqual(versionRef, version)

        versionStr = casinoFile._extractVersionString(version)
        self.assertEqual(versionStrRef, versionStr)

        optionsAdvancedPsfsSettings = casinoFile.getOptions().getOptionsAdvancedPsfsSettings()
        self.assertEqual(False, optionsAdvancedPsfsSettings.isGeneratingPSFs())

        scanPointResults = casinoFile.getScanPointResults()
        self.assertEqual(False, scanPointResults[0].isPsfs())
        self.assertEqual(None, scanPointResults[0].getPointSpreadFunctionMatrix())
Beispiel #3
0
    def setUp(self):
        unittest.TestCase.setUp(self)

        filepath = resource_filename(__name__, "../../test_data/casino3.x/SiSubstrateThreeLines_Points.sim")
        if is_bad_file(filepath):
            raise SkipTest
        self.file = open(filepath, 'rb')
    def test_read(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest
        file = open(self.filepathSim, 'rb')
        reader = OptionsMicro.OptionsMicro()
        error = reader.read(file)

        self.assertEqual(None, error)
        self.assertEqual(30107002, reader._version)
        self.assertEqual(0, reader.scanning_mode)
        self.assertAlmostEqual(0.0, reader.X_plane_position)

        self.assertAlmostEqual(1.0, reader.scanPtDist)
        self.assertEqual(1, reader.keep_simulation_data)

        reader = OptionsMicro.OptionsMicro()
        file = open(self.filepathCas, 'rb')
        error = reader.read(file)

        self.assertEqual(None, error)
        self.assertEqual(30107002, reader._version)
        self.assertEqual(0, reader.scanning_mode)
        self.assertAlmostEqual(0.0, reader.X_plane_position)

        self.assertAlmostEqual(1.0, reader.scanPtDist)
        self.assertEqual(1, reader.keep_simulation_data)
    def test_read(self):
        if is_bad_file(self.filepathCas):
            raise SkipTest
        file = open(self.filepathCas, 'rb')
        file.seek(2012986)
        results = RegionIntensityInfo.RegionIntensityInfo()
        error = results.read(file)

        self.assertEqual(None, error)

        self.assertEqual(30105022, results._version)
        self.assertAlmostEqual(0.0, results._energyIntensity)
        self.assertEqual(1, results._regionID)
        self.assertAlmostEqual(0.0, results._normalizedEnergyIntensity)

        error = results.read(file)
        self.assertEqual(None, error)
        self.assertEqual(30105022, results._version)
        self.assertAlmostEqual(0.0, results._energyIntensity)
        self.assertEqual(2, results._regionID)
        self.assertAlmostEqual(0.0, results._normalizedEnergyIntensity)

        error = results.read(file)
        self.assertEqual(None, error)
        self.assertEqual(30105022, results._version)
        self.assertAlmostEqual(7.268071702406E+05, results._energyIntensity)
        self.assertEqual(3, results._regionID)
        self.assertAlmostEqual(7.268071702406E-01, results._normalizedEnergyIntensity)
Beispiel #6
0
    def test_getFileType(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest
        casinoFile = File.File(self.filepathSim)

        type = casinoFile.getFileType()
        self.assertEqual(File.SIMULATION_CONFIGURATIONS, type)
Beispiel #7
0
    def test_init(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest

        casinoFile = File.File(self.filepathSim)

        self.assertEqual(self.filepathSim, casinoFile.getFilepath())
Beispiel #8
0
    def test_get_total_xray_intensities_1_esr(self):
        if is_bad_file(self.filepath_cas_v251):
            raise SkipTest

        with open(self.filepath_cas_v251, 'rb') as file:
            file.seek(0)
            element = Element.Element()
            # read the empty simulation data structure.
            element.read(file, 500, self.version_2_51)
            self.assertEqual(50193, file.tell())
            # read the first simulation data structure.
            element.read(file, 500, self.version_2_51)
            self.assertEqual(100638, file.tell())

            intensities_ref = {}

            intensities_ref[ATOMLINE_KA1] = 9.269059346795805e-07
            intensities_ref[ATOMLINE_KA2] = 4.662984097246555e-07
            intensities_ref[ATOMLINE_KB1] = 1.355707793206891e-08

            intensities = element.get_total_xray_intensities_1_esr()

            self.assertEqual(len(intensities_ref), len(intensities))

            for atomic_line in intensities:
                with self.subTest(atomic_line=atomic_line):
                    self.assertAlmostEqual(intensities_ref[atomic_line]*1.0e6, intensities[atomic_line]*1.0e6)
Beispiel #9
0
 def test__readVersion(self):
     if is_bad_file(self.filepathSim):
         raise SkipTest
     casinoFile = File.File(self.filepathSim)
     file = casinoFile._open(self.filepathSim)
     version = casinoFile._readVersion(file)
     self.assertEqual(30107002, version)
Beispiel #10
0
    def test_read(self):
        if is_bad_file(self.filepathCas):
            raise SkipTest
        file = open(self.filepathSim, 'rb')
        file.seek(7159)
        element = Element.Element()
        element.read(file)

        self.assertEqual(30105010, element._version)
        self.assertEqual(0, element._elementID)
        self.assertAlmostEqual(0.660569621292935, element._weightFraction)
        self.assertAlmostEqual(0.372901678657074, element._atomicFraction)
        self.assertAlmostEqual(0.0, element._sigmaTElastic)
        self.assertEqual(311, element._repetition)

        self.assertEqual(6.0, element.Z)
        self.assertEqual('C', element.Nom)
        self.assertAlmostEqual(2.62, element.Rho)
        self.assertAlmostEqual(12.011, element.A)
        self.assertAlmostEqual(0.0, element.J)
        self.assertAlmostEqual(0.0, element.K_Gauvin)
        self.assertAlmostEqual(-9.584629012423031e+36, element.K_Monsel)
        self.assertAlmostEqual(1.0, element.ef)
        self.assertAlmostEqual(7.000000000000E+07, element.kf)
        self.assertAlmostEqual(15.0, element.ep)

        for index in range(3):
            self.assertAlmostEqual(0.0, element.Int_PRZ[index])
            self.assertAlmostEqual(0.0, element.Int_PRZ_ABS[index])
    def test_readTextFile(self):
        if is_bad_file(self.filepath_Cu_K):
            raise SkipTest
        xrayRadialReader = XrayRadialReader.XrayRadialReader()
        xrayRadialReader.readTextFile(self.filepath_Cu_K)

        xrayRadial = xrayRadialReader.getData('Cu', XrayRadialReader.K)
        self.assertEqual(XrayRadialReader.K, xrayRadial.getLine())
        self.assertEqual("Cu", xrayRadial.getElementSymbol())

        dataLabelsRef = [XrayRadial.DISTANCE_nm, XrayRadial.INTENSITY, XrayRadial.INTENSITY_ABSORBED]
        self.assertEqual(dataLabelsRef, xrayRadial.getDataLabels())

        distances_nm = xrayRadial.getDistances_nm()
        self.assertEqual(500, len(distances_nm))
        self.assertAlmostEqual(0.0, distances_nm[0])
        self.assertAlmostEqual(953.396625, distances_nm[-1])

        intensities = xrayRadial.getIntensities()
        self.assertEqual(500, len(intensities))
        self.assertAlmostEqual(111.260633, intensities[0])
        self.assertAlmostEqual(0.000128, intensities[-1])

        intensitiesAbsorbed = xrayRadial.getIntensitiesAbsorbed()
        self.assertEqual(500, len(intensitiesAbsorbed))
        self.assertAlmostEqual(111.007526, intensitiesAbsorbed[0])
        self.assertAlmostEqual(0.000127, intensitiesAbsorbed[-1])
Beispiel #12
0
    def test_read(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest
        file = open(self.filepathSim, 'rb')
        file.seek(6560)
        region = Region.Region()
        region.read(file)

        self.assertEqual(30107003, region._version)
        self.assertAlmostEqual(50.0, region._carrierDiffusionLength)
        self.assertEqual(1, region._numberElements)
        self.assertAlmostEqual(2.33, region.Rho)
        self.assertAlmostEqual(-1.0, region._workFunction)
        self.assertAlmostEqual(-1.0, region._averagePlasmonEnergy)
        self.assertEqual(1, region.ID)
        self.assertEqual(0, region.Substrate)
        self.assertEqual(0, region.User_Density)
        self.assertEqual(0, region.User_Composition)
        self.assertEqual(0, region._checked)

        self.assertEqual("SiSubtrate", region.Name)

        self.assertEqual(1, region._numberSampleObjects)
        self.assertEqual(1, region._sampleObjectIDs[0])

        self.assertAlmostEqual(0.0, region._mollerInit)
        self.assertAlmostEqual(0.235, region._triangleColor_X)
        self.assertAlmostEqual(0.235, region._triangleColor_Y)
        self.assertAlmostEqual(1.0, region._triangleColor_Z)

        self.assertEqual("Si", region._chemicalName)
    def test_read(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest
        file = open(self.filepathSim, 'rb')
        reader = OptionsDist.OptionsDist()
        error = reader.read(file)

        self.assertEqual(None, error)
        self.assertEqual(30107002, reader._version)
        self.assertAlmostEqual(1.0, reader.DenrMax / OptionsDist.autoFlag)

        self.assertAlmostEqual(1000.0, reader.DEposCyl_Z)
        self.assertEqual(0, reader.DEposCyl_Z_Log)
        self.assertEqual(OptionsDist.DIST_DEPOS_POSITION_ABSOLUTE, reader.DEpos_Position)

        reader = OptionsDist.OptionsDist()
        file = open(self.filepathCas, 'rb')
        error = reader.read(file)

        self.assertEqual(None, error)
        self.assertEqual(30107002, reader._version)
        self.assertAlmostEqual(1.0, reader.DenrMax / OptionsDist.autoFlag)

        self.assertAlmostEqual(1000.0, reader.DEposCyl_Z)
        self.assertEqual(0, reader.DEposCyl_Z_Log)
        self.assertEqual(OptionsDist.DIST_DEPOS_POSITION_ABSOLUTE, reader.DEpos_Position)
Beispiel #14
0
    def testReadCasFile(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest
        casinoFile = File.File(self.filepathCas)
        casinoFile.open()

        self.assertEqual(30107002, casinoFile._version)
        self.assertEqual(1, casinoFile._numberSimulations)
Beispiel #15
0
 def test_read_StringIO(self):
     if is_bad_file(self.filepathCas):
         raise SkipTest
     f = open(self.filepathCas, 'rb')
     file = BytesIO(f.read())
     file.mode = 'rb'
     f.close()
     self._read_tests(file)
Beispiel #16
0
 def test_read_StringIO(self):
     if is_bad_file(self.filepathSim):
         raise SkipTest
     f = open(self.filepathSim, 'rb')
     file = BytesIO(f.read())
     file.mode = 'rb'
     f.close()
     self._read_tests(file, self.version_2_45)
    def test_read(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest
        file = open(self.filepathSim, 'rb')
        reader = SampleReader.SampleReader()
        error = reader.read(file)

        self.assertEqual(None, error)
        self.assertEqual(30107002, reader._version)

        if is_bad_file(self.filepathCas):
            raise SkipTest
        file = open(self.filepathCas, 'rb')
        reader = SampleReader.SampleReader()
        error = reader.read(file)

        self.assertEqual(None, error)
        self.assertEqual(30107002, reader._version)
    def test_read(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest
        file = open(self.filepathSim, 'rb')
        file.seek(6536)
        regionOptions = RegionOptions.RegionOptions()
        regionOptions.read(file)

        self.assertEqual(8, regionOptions._numberRegions)
    def test_read_StringIO(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest

        f = open(self.filepathSim, 'rb')
        buf = BytesIO(f.read())
        buf.mode = 'rb'
        f.close()
        self._read_tests(buf)
    def testGetTotalXrayIntensities(self):
        if is_bad_file(self.filepathCas):
            raise SkipTest
        # Single region
        f = open(self.filepathCas, 'rb')
        f.seek(98348)
        simulation_data = SimulationData.SimulationData()
        simulation_data.read(f)
        f.close()

        intensities = simulation_data.getTotalXrayIntensities()

        self.assertAlmostEqual(2538.63, intensities[5][LINE_K][GENERATED], 2)
        self.assertAlmostEqual(344.49, intensities[5][LINE_K][EMITTED], 2)

        self.assertAlmostEqual(111.30, intensities[6][LINE_K][GENERATED], 2)
        self.assertAlmostEqual(46.88, intensities[6][LINE_K][EMITTED], 2)

        # Multiple regions
        if is_bad_file(self.filepathCas_nicr):
            raise SkipTest
        f = open(self.filepathCas_nicr, 'rb')
        f.seek(98348)
        simulation_data = SimulationData.SimulationData()
        simulation_data.read(f)
        f.close()

        intensities = simulation_data.getTotalXrayIntensities()

        self.assertAlmostEqual(0.76, intensities[79][LINE_M][GENERATED], 2)
        self.assertAlmostEqual(0.52, intensities[79][LINE_M][EMITTED], 2)

        self.assertAlmostEqual(293.88, intensities[24][LINE_K][GENERATED], 2)
        self.assertAlmostEqual(290.78, intensities[24][LINE_K][EMITTED], 2)
        self.assertAlmostEqual(712.32, intensities[24][LINE_L][GENERATED], 2)
        self.assertAlmostEqual(430.56, intensities[24][LINE_L][EMITTED], 2)

        self.assertAlmostEqual(6.62, intensities[28][LINE_K][GENERATED], 2)
        self.assertAlmostEqual(6.53, intensities[28][LINE_K][EMITTED], 2)
        self.assertAlmostEqual(1115.51, intensities[28][LINE_L][GENERATED], 2)
        self.assertAlmostEqual(457.79, intensities[28][LINE_L][EMITTED], 2)

        self.assertAlmostEqual(1.57, intensities[14][LINE_K][GENERATED], 2)
        self.assertAlmostEqual(1.22, intensities[14][LINE_K][EMITTED], 2)
    def setUp(self):
        unittest.TestCase.setUp(self)
        resultsPath = resource_filename(__name__, "../../../test_data/casino3.x/createImage")
        self._casBinnedFilepath = os.path.join(resultsPath, "Au_C_thin_1nm_Inside_100ke_binned.cas")
        if is_bad_file(self._casBinnedFilepath):
            raise SkipTest()

        self._casAllFilepath = os.path.join(resultsPath, "Au_C_thin_1nm_Inside_100ke_all.cas")

        self._imageBinned = IntensityImage.IntensityImage(self._casBinnedFilepath)
Beispiel #22
0
    def test__readExtension(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest
        casinoFile = File.File(self.filepathSim)
        file = casinoFile._open(self.filepathSim)
        extension = casinoFile._readExtension(file)
        self.assertEqual(File.SIMULATION_CONFIGURATIONS, extension)

        file = open(self.filepathCas, 'rb')
        extension = casinoFile._readExtension(file)
        self.assertEqual(File.SIMULATION_RESULTS, extension)
    def test_getLine(self):
        if is_bad_file(self.filepath_Cu_K):
            raise SkipTest
        xrayRadialReader = XrayRadialReader.XrayRadialReader()
        xrayRadialReader.readTextFile(self.filepath_Cu_K)
        xrayRadial = xrayRadialReader.getData('Cu', XrayRadialReader.K)
        self.assertEqual(XrayRadialReader.K, xrayRadial.getLine())

        if is_bad_file(self.filepath_Cu_L):
            raise SkipTest
        xrayRadialReader = XrayRadialReader.XrayRadialReader()
        xrayRadialReader.readTextFile(self.filepath_Cu_L)
        xrayRadial = xrayRadialReader.getData('Cu', XrayRadialReader.L)
        self.assertEqual(XrayRadialReader.L, xrayRadial.getLine())

        if is_bad_file(self.filepath_Au_M):
            raise SkipTest
        xrayRadialReader = XrayRadialReader.XrayRadialReader()
        xrayRadialReader.readTextFile(self.filepath_Au_M)
        xrayRadial = xrayRadialReader.getData('Au', XrayRadialReader.M)
        self.assertEqual(XrayRadialReader.M, xrayRadial.getLine())
    def test_getElementSymbol(self):
        if is_bad_file(self.filepath_Cu_K):
            raise SkipTest
        xrayRadialReader = XrayRadialReader.XrayRadialReader()
        xrayRadialReader.readTextFile(self.filepath_Cu_K)
        xrayRadial = xrayRadialReader.getData('Cu', XrayRadialReader.K)
        self.assertEqual("Cu", xrayRadial.getElementSymbol())

        if is_bad_file(self.filepath_Cu_L):
            raise SkipTest
        xrayRadialReader = XrayRadialReader.XrayRadialReader()
        xrayRadialReader.readTextFile(self.filepath_Cu_L)
        xrayRadial = xrayRadialReader.getData('Cu', XrayRadialReader.L)
        self.assertEqual("Cu", xrayRadial.getElementSymbol())

        if is_bad_file(self.filepath_Au_M):
            raise SkipTest
        xrayRadialReader = XrayRadialReader.XrayRadialReader()
        xrayRadialReader.readTextFile(self.filepath_Au_M)
        xrayRadial = xrayRadialReader.getData('Au', XrayRadialReader.M)
        self.assertEqual("Au", xrayRadial.getElementSymbol())
Beispiel #25
0
    def test_skipReadingData(self):
        if is_bad_file(self.filepathCas):
            raise SkipTest

        file = File.File()
        file.readFromFilepath(self.filepathCas, isSkipReadingData=False)

        trajectories_data = file.getResultsFirstSimulation().getTrajectoriesData()
        self.assertEqual(221, trajectories_data._numberTrajectories)
        self.assertEqual(89, trajectories_data._trajectories[0].NbElec)
        self.assertEqual(89, len(trajectories_data._trajectories[0]._scatteringEvents))

        event = trajectories_data._trajectories[0]._scatteringEvents[0]
        self.assertAlmostEqual(-2.903983831406E+00, event.X)
        self.assertAlmostEqual(-3.020418643951E+00, event.Y)
        self.assertAlmostEqual(0.0, event.Z)
        self.assertAlmostEqual(4.000000000000E+00, event.E)
        self.assertEqual(0, event.Intersect)
        self.assertEqual(0, event.id)

        file = File.File()
        file.readFromFilepath(self.filepathCas, isSkipReadingData=True)

        trajectories_data = file.getResultsFirstSimulation().getTrajectoriesData()
        self.assertEqual(221, trajectories_data._numberTrajectories)
        self.assertEqual(89, trajectories_data._trajectories[0].NbElec)
        self.assertEqual(0, len(trajectories_data._trajectories[0]._scatteringEvents))

        simulation_results = file.getResultsFirstSimulation().getSimulationResults()

        self.assertEqual(1, simulation_results.BE_Intensity_Size)
        self.assertEqual(3.950000000000E-02, simulation_results.BE_Intensity[0])

        element = simulation_results._elementIntensityList[0]
        self.assertEqual("B", element.Name)
        self.assertAlmostEqual(3.444919288026E+02, element.IntensityK[0])

        element = simulation_results._elementIntensityList[1]
        self.assertEqual("C", element.Name)
        self.assertAlmostEqual(4.687551040349E+01, element.IntensityK[0])

        self.assertEqual(1000, simulation_results.NbPointDZMax)
        self.assertEqual(500, simulation_results.NbPointDENR)
        self.assertEqual(500, simulation_results.NbPointDENT)
        self.assertEqual(500, simulation_results.NbPointDRSR)
        # self.assertEqual(0, simulationResults.NbPointDNCR)
        self.assertEqual(50, simulation_results.NbPointDEpos_X)
        self.assertEqual(50, simulation_results.NbPointDEpos_Y)
        self.assertEqual(50, simulation_results.NbPointDEpos_Z)
        self.assertAlmostEqual(1.608165461510E-02, simulation_results.DEpos_maxE)
        self.assertEqual(91, simulation_results.NbPointDBANG)
        self.assertEqual(91, simulation_results.NbPointDAngleVSEnergie)
Beispiel #26
0
    def test_read(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest
        file = File.File()
        file.readFromFilepath(self.filepathSim)
        self.assertEqual(self.filepathSim, file._filepath)
        self.assertEqual(0, file._numberSimulations)

        file = File.File()
        file.readFromFilepath(self.filepathCas)
        self.assertEqual(self.filepathCas, file._filepath)
        self.assertEqual(1, file._numberSimulations)

        self.assertEqual(1, len(file._resultSimulationDataList))
    def test_read(self):
        options = SimulationOptions.SimulationOptions()
        options._optionsDist.DEpos_Type = OptionsDist.DIST_DEPOS_TYPE_CARTESIAN
        results = EnergyMatrix.EnergyMatrix(options, None)
        if is_bad_file(self.filepathCas):
            raise SkipTest
        file = open(self.filepathCas, 'rb')
        file.seek(4042541)

        error = results.read(file)
        self.assertEqual(None, error)
        self.assertEqual(125000, results._numberElements)
        self.assertEqual(4042541, results._startPosition)
        self.assertEqual(4042541 + 125000 * 8, results._endPosition)
    def test_read(self):
        options = SimulationOptions.SimulationOptions()
        options._optionsDist.DEpos_Type = OptionsDist.DIST_DEPOS_TYPE_CARTESIAN
        results = DiffusedEnergyMatrix.DiffusedEnergyMatrix(options, None)
        if is_bad_file(self.filepathCas):
            raise SkipTest
        file = open(self.filepathCas, 'rb')
        file.seek(1012742)

        error = results.read(file)
        self.assertEqual(None, error)
        self.assertEqual(30107000, results._version)
        self.assertEqual(125000, results._numberElements)
        self.assertEqual(1012762, results._startPosition)
        self.assertEqual(2012806, results._endPosition)
    def test_read(self):
        if is_bad_file(self.filepathCas):
            raise SkipTest
        file = open(self.filepathCas, 'rb')
        file.seek(4042617)
        results = TrajectoryCollision.TrajectoryCollision()

        error = results.read(file)
        self.assertEqual(None, error)
        self.assertAlmostEqual(-9.168622881064E-02, results._positionX)
        self.assertAlmostEqual(-4.931083223782E-01, results._positionY)
        self.assertAlmostEqual(-1.049980000000E+05, results._positionZ)
        self.assertAlmostEqual(8.000000000000E-01, results._energy)
        self.assertAlmostEqual(1.000000000000E+04, results._segmentLength)
        self.assertEqual(3, results._collisionType)
        self.assertEqual(-1, results._regionID)
    def test_read(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest
        file = open(self.filepathSim, 'rb')
        reader = OptionsAdvBackSet.OptionsAdvBackSet()
        error = reader.read(file)

        self.assertEqual(None, error)
        self.assertEqual(30107002, reader._version)
        self.assertEqual(False, reader.UseEnBack)
        self.assertAlmostEqual(10.0, reader.WorkDist)
        self.assertAlmostEqual(1.0, reader.DetectScaleX)
        self.assertAlmostEqual(1.0, reader.DetectScaleY)
        self.assertEqual(False, reader.ValidMatrix)

        self.assertAlmostEqual(0.0, reader.BEMin_Angle)
        self.assertAlmostEqual(0.0, reader.BEMax_Angle)
        self.assertAlmostEqual(0.0, reader.EFilterMax)
        self.assertAlmostEqual(0.0, reader.EFilterMin)

        for i in range(101):
            self.assertAlmostEqual(1.0, reader.EFilterVal[i])

        self.assertEqual(0, reader.FEFilter)

        reader = OptionsAdvBackSet.OptionsAdvBackSet()
        file = open(self.filepathCas, 'rb')
        error = reader.read(file)

        self.assertEqual(None, error)
        self.assertEqual(30107002, reader._version)
        self.assertEqual(False, reader.UseEnBack)
        self.assertAlmostEqual(10.0, reader.WorkDist)
        self.assertAlmostEqual(1.0, reader.DetectScaleX)
        self.assertAlmostEqual(1.0, reader.DetectScaleY)
        self.assertEqual(False, reader.ValidMatrix)

        self.assertAlmostEqual(0.0, reader.BEMin_Angle)
        self.assertAlmostEqual(0.0, reader.BEMax_Angle)
        self.assertAlmostEqual(0.0, reader.EFilterMax)
        self.assertAlmostEqual(0.0, reader.EFilterMin)

        for i in range(101):
            self.assertAlmostEqual(1.0, reader.EFilterVal[i])

        self.assertEqual(0, reader.FEFilter)
    def test_read(self):
        if is_bad_file(self.filepathCas):
            raise SkipTest
        file = open(self.filepathCas, 'rb')
        file.seek(2013179)

        results = GraphData.GraphData(file)
        self.assertEqual(30105020, results._version)

        self.assertEqual(1000, results._size)
        self.assertAlmostEqual(0.0, results._borneInf)
        self.assertAlmostEqual(8.900000000000E+01, results._borneSup)
        self.assertEqual(0, results._isLog)
        self.assertEqual(0, results._isUneven)

        self.assertEqual("Z Max", results._title)
        self.assertEqual("Depth (nm)", results._xTitle)
        self.assertEqual("Hits (Normalized)", results._yTitle)

        values = results.getValues()
        self.assertAlmostEqual(1.0, values[0])
        self.assertAlmostEqual(0.0, values[-1])
Beispiel #32
0
    def test_read_StringIO(self):
        # sim
        if is_bad_file(self.filepathSim):
            raise SkipTest
        f = open(self.filepathSim, 'rb')
        buf = BytesIO(f.read())
        buf.mode = 'rb'
        f.close()

        file = File.File()
        file.readFromFileObject(buf)
        self.assertEqual(0, file._numberSimulations)

        # cas
        f = open(self.filepathCas, 'rb')
        buf = BytesIO(f.read())
        buf.mode = 'rb'
        f.close()

        file = File.File()
        file.readFromFileObject(buf)
        self.assertEqual(1, file._numberSimulations)

        self.assertEqual(1, len(file._resultSimulationDataList))
    def test_read(self):
        if is_bad_file(self.filepathCas):
            raise SkipTest
        file = open(self.filepathCas, 'rb')
        options = SimulationOptions.SimulationOptions()
        options.read(file)
        file.close()
        del file

        results = SimulationResults.SimulationResults()
        file = open(self.filepathCas, 'rb')
        file.seek(12648)
        error = results.read(file, options)

        self.assertEqual(None, error)
        self.assertEqual(1, results._numberSimulations)

        self.assertEqual(20031202, results._version)

        self.assertAlmostEqual(0.8, results._initialEnergy_keV)
        self.assertEqual(0.0, results._rkoMax)

        self.assertEqual(30107002, results._versionSimulationResults)
        self.assertTrue(results._isTotalEnergyDensitySaved)
Beispiel #34
0
    def test_extract_version(self):
        """
        Test extract_version method.
        """
        if is_bad_file(self.filepathSim):
            raise SkipTest

        file_paths = []
        file_paths.append((self.filepathSim, VERSION_2_45))
        file_paths.append((self.filepathCas, VERSION_2_45))
        file_paths.append((self.filepathStd, VERSION_2_50))
        file_paths.append((self.filepathSim_v242, VERSION_2_42))
        file_paths.append((self.filepathCas_v242, VERSION_2_42))
        file_paths.append((self.filepathCas_nicr, VERSION_2_46))
        file_paths.append((self.filepath_sim_v250, VERSION_2_50))
        file_paths.append((self.filepath_cas_v250, VERSION_2_50))
        file_paths.append((self.filepath_problem_sim_v250, VERSION_2_50))
        file_paths.append((self.filepath_problem_pymontecarlo_sim_v250, VERSION_2_50))
        file_paths.append((self.filepath_good_sim_v251, VERSION_2_51))

        for file_path, version_ref in file_paths:
            casino_file = File.File()
            version = casino_file.extract_version(file_path)
            self.assertEqual(version_ref, version, msg=file_path)
    def test_extractVersionString(self):
        if is_bad_file(self.filepathSim):
            raise SkipTest
        casinoFile = File.File(self.filepathSim)

        version = File.V30103040
        versionStrRef = "3.1.3.40"
        versionStr = casinoFile._extractVersionString(version)
        self.assertEqual(versionStrRef, versionStr)

        version = File.V30103070
        versionStrRef = "3.1.3.70"
        versionStr = casinoFile._extractVersionString(version)
        self.assertEqual(versionStrRef, versionStr)

        version = File.V30104060
        versionStrRef = "3.1.4.60"
        versionStr = casinoFile._extractVersionString(version)
        self.assertEqual(versionStrRef, versionStr)

        version = File.V30107002
        versionStrRef = "3.1.7.2"
        versionStr = casinoFile._extractVersionString(version)
        self.assertEqual(versionStrRef, versionStr)
 def test_read(self):
     if is_bad_file(self.filepathSim):
         raise SkipTest
     with open(self.filepathSim, 'rb') as file:
         self._read_tests(file, self.version_2_45)
Beispiel #37
0
    def test_read(self):
        if is_bad_file(self.filepathCas):
            raise SkipTest
        file = open(self.filepathCas, 'rb')
        options = SimulationOptions.SimulationOptions()
        options.read(file)
        file.close()
        del file

        results = ScanPointResults.ScanPointResults()
        file = open(self.filepathCas, 'rb')
        #file.seek(12648)
        error = results.read(file, options)

        self.assertEqual(None, error)

        self.assertEqual(30107002, results._version)

        self.assertAlmostEqual(0.8, results._initialEnergy_keV)
        self.assertAlmostEqual(0.0, results._rkoMax)
        self.assertAlmostEqual(24.04826155663, results._rkoMaxW)

        self.assertEqual(1000000, results._numberSimulatedTrajectories)
        self.assertEqual(2, results._beingProcessed)

        self.assertAlmostEqual(5.468900000000E-02, results._backscatteredCoefficient)
        self.assertAlmostEqual(0.0, results._backscatteredDetectedCoefficient)
        self.assertAlmostEqual(0.0, results._secondaryCoefficient)
        self.assertAlmostEqual(0.0, results._transmittedCoefficient)
        self.assertAlmostEqual(0.0, results._transmittedDetectedCoefficient)
        self.assertEqual(54689, results._numberBackscatteredElectrons)
        self.assertAlmostEqual(0.0, results._numberBackscatteredElectronsDetected)
        self.assertEqual(0, results._numberSecondaryElectrons)

        self.assertEqual(8, results._numberResults)

        for i in range(1, 8 + 1):
            self.assertEqual(i, results._regionIntensityInfos[i - 1]._regionID)

        # DZMax distribution results.
        self.assertEqual(True, results._isDZMax)
        self.assertEqual(30105020, results.dzMax._version)

        self.assertEqual(1000, results.dzMax._size)
        self.assertAlmostEqual(0.0, results.dzMax._borneInf)
        self.assertAlmostEqual(8.900000000000E+01, results.dzMax._borneSup)
        self.assertEqual(0, results.dzMax._isLog)
        self.assertEqual(0, results.dzMax._isUneven)

        self.assertEqual("Z Max", results.dzMax._title)
        self.assertEqual("Depth (nm)", results.dzMax._xTitle)
        self.assertEqual("Hits (Normalized)", results.dzMax._yTitle)

        values = results.dzMax.getValues()
        self.assertAlmostEqual(1.0, values[0])
        self.assertAlmostEqual(0.0, values[-1])

        self.assertEqual(True, results._isDEnergy_Density)
        self.assertAlmostEqual(1.518294795870E-01, results.DEnergy_Density_Max_Energy)

        self.assertEqual(199, results.getNumberSavedTrajectories())
Beispiel #38
0
 def test_read(self):
     if is_bad_file(self.filepathCas):
         raise SkipTest
     with open(self.filepathCas, 'rb') as file:
         self._read_tests(file)
    def test_read(self):

        for filepath in [self.filepathSim, self.filepathCas]:
            if is_bad_file(filepath):
                raise SkipTest
            file = open(filepath, 'rb')
            simulationOptions = SimulationOptions.SimulationOptions()
            error = simulationOptions.read(file)

            self.assertEqual(None, error)
            self.assertEqual(30107002, simulationOptions._version)

            # ADF
            self.assertEqual(30107002, simulationOptions._optionsADF._version)
            self.assertAlmostEqual(1.0, simulationOptions._optionsADF.DQE)
            self.assertEqual(1, simulationOptions._optionsADF.Enabled)
            self.assertEqual(0, simulationOptions._optionsADF.keepData)
            self.assertAlmostEqual(0.5, simulationOptions._optionsADF.MaxAngle)
            self.assertAlmostEqual(0.2, simulationOptions._optionsADF.MinAngle)
            self.assertEqual(0, simulationOptions._optionsADF.MaxPoints)

            # AdvBackSet
            self.assertEqual(30107002,
                             simulationOptions._optionsAdvBackSet._version)
            self.assertEqual(False,
                             simulationOptions._optionsAdvBackSet.UseEnBack)
            self.assertAlmostEqual(
                10.0, simulationOptions._optionsAdvBackSet.WorkDist)
            self.assertAlmostEqual(
                1.0, simulationOptions._optionsAdvBackSet.DetectScaleX)
            self.assertAlmostEqual(
                1.0, simulationOptions._optionsAdvBackSet.DetectScaleY)
            self.assertEqual(False,
                             simulationOptions._optionsAdvBackSet.ValidMatrix)

            self.assertAlmostEqual(
                0.0, simulationOptions._optionsAdvBackSet.BEMin_Angle)
            self.assertAlmostEqual(
                0.0, simulationOptions._optionsAdvBackSet.BEMax_Angle)
            self.assertAlmostEqual(
                0.0, simulationOptions._optionsAdvBackSet.EFilterMax)
            self.assertAlmostEqual(
                0.0, simulationOptions._optionsAdvBackSet.EFilterMin)

            for i in range(101):
                self.assertAlmostEqual(
                    1.0, simulationOptions._optionsAdvBackSet.EFilterVal[i])

            self.assertEqual(0, simulationOptions._optionsAdvBackSet.FEFilter)

            # Dist
            self.assertEqual(30107002, simulationOptions._optionsDist._version)
            self.assertAlmostEqual(
                1.0,
                simulationOptions._optionsDist.DenrMax / OptionsDist.autoFlag)

            self.assertAlmostEqual(1000.0,
                                   simulationOptions._optionsDist.DEposCyl_Z)
            self.assertEqual(0, simulationOptions._optionsDist.DEposCyl_Z_Log)
            self.assertEqual(OptionsDist.DIST_DEPOS_POSITION_ABSOLUTE,
                             simulationOptions._optionsDist.DEpos_Position)

            # EnergyByPos
            self.assertEqual(30107002,
                             simulationOptions._optionsEnergyByPos._version)
            self.assertEqual(0, simulationOptions._optionsEnergyByPos.Diffuse)
            self.assertEqual(
                1, simulationOptions._optionsEnergyByPos.Depos_Summation)
            self.assertAlmostEqual(
                0.1, simulationOptions._optionsEnergyByPos.DEpos_IsoLevel)
            self.assertAlmostEqual(
                -1.0, simulationOptions._optionsEnergyByPos.
                CarrierSurfaceRecombination)
            self.assertEqual(1,
                             simulationOptions._optionsEnergyByPos.normalize)

            # Micro
            self.assertEqual(30107002,
                             simulationOptions._optionsMicro._version)
            self.assertEqual(0, simulationOptions._optionsMicro.scanning_mode)
            self.assertAlmostEqual(
                0.0, simulationOptions._optionsMicro.X_plane_position)

            self.assertAlmostEqual(1.0,
                                   simulationOptions._optionsMicro.scanPtDist)
            self.assertEqual(
                1, simulationOptions._optionsMicro.keep_simulation_data)

            # Physic
            self.assertEqual(30107002,
                             simulationOptions._optionsPhysic._version)
            self.assertEqual(3, simulationOptions._optionsPhysic.FRan)
            self.assertEqual(1, simulationOptions._optionsPhysic.FDeds)
            self.assertEqual(5, simulationOptions._optionsPhysic.FTotalCross)
            self.assertEqual(5, simulationOptions._optionsPhysic.FPartialCross)
            self.assertEqual(1, simulationOptions._optionsPhysic.FCosDirect)
            self.assertEqual(3, simulationOptions._optionsPhysic.FSecIon)
            self.assertEqual(0, simulationOptions._optionsPhysic.FPotMoy)

            self.assertEqual(
                10, simulationOptions._optionsPhysic.max_secondary_order)
            self.assertAlmostEqual(
                0.05, simulationOptions._optionsPhysic.Min_Energy_Nosec)
            self.assertAlmostEqual(
                0.0004, simulationOptions._optionsPhysic.Residual_Energy_Loss)
            self.assertAlmostEqual(
                -1, simulationOptions._optionsPhysic.Min_Energy_With_Sec)
            self.assertAlmostEqual(
                -1, simulationOptions._optionsPhysic.Min_Gen_Secondary_Energy)

            # Xray
            self.assertEqual(30107002, simulationOptions._optionsXray._version)
            self.assertAlmostEqual(40.0, simulationOptions._optionsXray.TOA)
            self.assertAlmostEqual(0.0, simulationOptions._optionsXray.PhieRX)
Beispiel #40
0
    def test_modifyRotationYZ_deg(self):
        testDataPath = get_current_module_path(__file__, "../../../test_data")
        sourceFilepath = os.path.join(testDataPath, "casino3.x/NoRotationY.sim")
        if is_bad_file(sourceFilepath):
            raise SkipTest

        if not os.path.isdir(self.temporaryDir):
            raise SkipTest

        rotationYRef_deg = 10.0
        filename = "RotationY10.sim"
        destinationFilepath = os.path.join(self.temporaryDir, filename)

        shutil.copy2(sourceFilepath, destinationFilepath)

        casinoFile = CasinoFile.File(destinationFilepath, isModifiable=True)
        sample = casinoFile.getFirstSimulation().getSample()

        rotationY_deg = sample.getRotationY_deg()
        self.assertAlmostEqual(0.0, rotationY_deg)
        rotationZ_deg = sample.getRotationZ_deg()
        self.assertAlmostEqual(0.0, rotationZ_deg)

        sample.modifyRotationY_deg(rotationYRef_deg)
        del casinoFile

        casinoFile = CasinoFile.File(destinationFilepath, isModifiable=False)
        sample = casinoFile.getFirstSimulation().getSample()

        rotationY_deg = sample.getRotationY_deg()
        self.assertAlmostEqual(rotationYRef_deg, rotationY_deg)
        rotationZ_deg = sample.getRotationZ_deg()
        self.assertAlmostEqual(0.0, rotationZ_deg)

        del casinoFile

        rotationZRef_deg = 15.0
        filename = "RotationZ15.sim"
        destinationFilepath = os.path.join(self.temporaryDir, filename)

        shutil.copy2(sourceFilepath, destinationFilepath)

        casinoFile = CasinoFile.File(destinationFilepath, isModifiable=True)
        sample = casinoFile.getFirstSimulation().getSample()

        rotationY_deg = sample.getRotationY_deg()
        self.assertAlmostEqual(0.0, rotationY_deg)
        rotationZ_deg = sample.getRotationZ_deg()
        self.assertAlmostEqual(0.0, rotationZ_deg)

        sample.modifyRotationZ_deg(rotationZRef_deg)
        del casinoFile

        casinoFile = CasinoFile.File(destinationFilepath, isModifiable=False)
        sample = casinoFile.getFirstSimulation().getSample()

        rotationY_deg = sample.getRotationY_deg()
        self.assertAlmostEqual(0.0, rotationY_deg)
        rotationZ_deg = sample.getRotationZ_deg()
        self.assertAlmostEqual(rotationZRef_deg, rotationZ_deg)

        del casinoFile

        rotationYRef_deg = 20.0
        rotationZRef_deg = 35.0
        filename = "RotationY20Z35.sim"
        destinationFilepath = os.path.join(self.temporaryDir, filename)

        shutil.copy2(sourceFilepath, destinationFilepath)

        casinoFile = CasinoFile.File(destinationFilepath, isModifiable=True)
        sample = casinoFile.getFirstSimulation().getSample()

        rotationY_deg = sample.getRotationY_deg()
        self.assertAlmostEqual(0.0, rotationY_deg)
        rotationZ_deg = sample.getRotationZ_deg()
        self.assertAlmostEqual(0.0, rotationZ_deg)

        sample.modifyRotationY_deg(rotationYRef_deg)
        sample.modifyRotationZ_deg(rotationZRef_deg)
        del casinoFile

        casinoFile = CasinoFile.File(destinationFilepath, isModifiable=False)
        sample = casinoFile.getFirstSimulation().getSample()

        rotationY_deg = sample.getRotationY_deg()
        self.assertAlmostEqual(rotationYRef_deg, rotationY_deg)
        rotationZ_deg = sample.getRotationZ_deg()
        self.assertAlmostEqual(rotationZRef_deg, rotationZ_deg)

        del casinoFile
Beispiel #41
0
    def test_read_v242(self):
        if is_bad_file(self.filepathSim_v242):
            raise SkipTest
        if is_bad_file(self.filepathCas_v242):
            raise SkipTest

        # .sim
        file = File.File()
        file.readFromFilepath(self.filepathSim_v242)
        self.assertEqual(self.filepathSim_v242, file._filepath)
        self.assertEqual(0, file._numberSimulations)

        option_simulation_data = file.getOptionSimulationData()
        version = option_simulation_data.getVersion()
        self.assertEqual(Version.VERSION_2_42, version)

        simulation_options = option_simulation_data.getSimulationOptions()

        number_electrons = simulation_options.getNumberElectrons()
        self.assertEqual(10000, number_electrons)

        incident_energy_keV = simulation_options.getIncidentEnergy_keV()
        self.assertAlmostEqual(3.0, incident_energy_keV)

        toa_deg = simulation_options.getTOA_deg()
        self.assertAlmostEqual(40.0, toa_deg)

        number_xray_layers = simulation_options.getNumberXRayLayers()
        self.assertEqual(500, number_xray_layers)

        # .cas
        file = File.File()
        file.readFromFilepath(self.filepathCas_v242)
        self.assertEqual(self.filepathCas_v242, file._filepath)
        self.assertEqual(1, file._numberSimulations)

        self.assertEqual(1, len(file._resultSimulationDataList))

        option_simulation_data = file.getOptionSimulationData()
        version = option_simulation_data.getVersion()
        self.assertEqual(Version.VERSION_2_42, version)

        simulation_options = option_simulation_data.getSimulationOptions()

        number_electrons = simulation_options.getNumberElectrons()
        self.assertEqual(10000, number_electrons)

        incident_energy_keV = simulation_options.getIncidentEnergy_keV()
        self.assertAlmostEqual(3.0, incident_energy_keV)

        toa_deg = simulation_options.getTOA_deg()
        self.assertAlmostEqual(40.0, toa_deg)

        number_xray_layers = simulation_options.getNumberXRayLayers()
        self.assertEqual(500, number_xray_layers)

        result_simulation_data = file.getResultsSimulation(0)
        region_options = result_simulation_data.getRegionOptions()
        region = region_options.getRegion(0)
        element = region.getElement(0)
        intensities = element.getTotalXrayIntensities()

        self.assertAlmostEqual(2164.75, intensities[LINE_K][GENERATED], 2)
        self.assertAlmostEqual(415.81, intensities[LINE_K][EMITTED], 2)

        atomic_number = element.getAtomicNumber()
        self.assertEqual(5, atomic_number)