class TestPDFGuiControl(unittest.TestCase):
    """test methods of PDFGuiControl"""

    def setUp(self):
        from diffpy.pdfgui.control.pdfguicontrol import PDFGuiControl
        self.control = PDFGuiControl()
        return

    def tearDown(self):
        del self.control
        return

    def test_importPdffit2Script(self):
        """check PDFGuiControl.importPdffit2Script()
        """
        self.assertEqual(0, len(self.control.fits))
        fgoodNi = os.path.join(testdata_dir, 'goodNiScript.py')
        ftwophases = os.path.join(testdata_dir, 'CdSe15_twophases.py')
        fbadNi1 = os.path.join(testdata_dir, 'badNiScript1.py')
        fbadNi2 = os.path.join(testdata_dir, 'badNiScript2.py')
        newfits = self.control.importPdffit2Script(fgoodNi)
        self.assertEqual(1, len(newfits))
        self.assertEqual(1, len(self.control.fits))
        newfits = self.control.importPdffit2Script(ftwophases)
        self.assertEqual(5, len(newfits))
        self.assertEqual(6, len(self.control.fits))
        self.assertRaises(ControlRuntimeError,
                self.control.importPdffit2Script, fbadNi1)
        self.assertRaises(ControlRuntimeError,
                self.control.importPdffit2Script, fbadNi2)
        return
Beispiel #2
0
class TestPDFGuiControl(unittest.TestCase):
    """test methods of PDFGuiControl"""
    def setUp(self):
        from diffpy.pdfgui.control.pdfguicontrol import PDFGuiControl
        self.control = PDFGuiControl()
        return

    def tearDown(self):
        del self.control
        return

    def test_importPdffit2Script(self):
        """check PDFGuiControl.importPdffit2Script()
        """
        self.assertEqual(0, len(self.control.fits))
        fgoodNi = datafile('goodNiScript.py')
        ftwophases = datafile('CdSe15_twophases.py')
        fbadNi1 = datafile('badNiScript1.py')
        fbadNi2 = datafile('badNiScript2.py')
        newfits = self.control.importPdffit2Script(fgoodNi)
        self.assertEqual(1, len(newfits))
        self.assertEqual(1, len(self.control.fits))
        newfits = self.control.importPdffit2Script(ftwophases)
        self.assertEqual(5, len(newfits))
        self.assertEqual(6, len(self.control.fits))
        self.assertRaises(ControlRuntimeError,
                          self.control.importPdffit2Script, fbadNi1)
        self.assertRaises(ControlRuntimeError,
                          self.control.importPdffit2Script, fbadNi2)
        return
Beispiel #3
0
    def __init__(self, filename=None):
        """Initialize LoadProject object, by reading existing project file.

        filename -- path to PDFgui project file.
        """
        from diffpy.pdfgui.control.pdfguicontrol import PDFGuiControl
        self._project = PDFGuiControl()
        # business
        if filename is not None:
            self.load(filename)
        return
Beispiel #4
0
    def __init__(self, filename=None):
        """Initialize LoadProject object, by reading existing project file.

        filename -- path to PDFgui project file.
        """
        from diffpy.pdfgui.control.pdfguicontrol import PDFGuiControl
        self._project = PDFGuiControl()
        # business
        if filename is not None:
            self.load(filename)
        return
 def setUp(self):
     from diffpy.pdfgui.control.pdfguicontrol import PDFGuiControl
     self.control = PDFGuiControl()
     return
Beispiel #6
0
class LoadProject:
    """Load and access data in pdfgui project file.

    Protected instance data:

    _project    -- instance of PDFGuiControl with loaded project file.
    """

    # public methods

    def __init__(self, filename=None):
        """Initialize LoadProject object, by reading existing project file.

        filename -- path to PDFgui project file.
        """
        from diffpy.pdfgui.control.pdfguicontrol import PDFGuiControl
        self._project = PDFGuiControl()
        # business
        if filename is not None:
            self.load(filename)
        return


    def load(self, filename):
        """Load a project.

        filename -- path to PDFgui project file.

        No return value.
        """
        self._project.load(filename)
        return


    def save(self, filename):
        """Save the project.

        filename -- path where to write the PDFgui project.

        No return value.
        """
        self._project.save(filename)
        return


    def getFits(self):
        """Get all fits defined in the project file.

        Return list of Fitting objects.
        """
        rv = self._project.fits[:]
        return rv


    def getDataSets(self, fits=None):
        """Return a list of all datasets contained in specified fits.

        fits -- optional list of Fitting objects that own datasets.
                When not specified, get datasets from all fits defined
                in the project.

        Return list of FitDataSet objects.
        """
        if fits is None:
            fitlist = self.getFits()
        else:
            fitlist = fits
        rv = sum([fit.datasets for fit in fitlist], [])
        return rv


    def getCalculations(self, fits=None):
        """Return list of all calculations contained in specified fits.

        fits -- optional list of Fitting objects that own datasets.
                When not specified, get datasets from all fits defined
                in the project.

        Return list of Calculation objects.
        """
        if fits is None:
            fitlist = self.getFits()
        else:
            fitlist = fits
        rv = sum([fit.calcs for fit in fitlist], [])
        return rv


    def getPhases(self, fits=None):
        """Collect all phases contained in specified fits.

        fits -- optional list of Fitting objects that own datasets.
                When not specified, get phases from all fits defined
                in the project.

        Return list of FitStructure objects.
        """
        if fits is None:
            fitlist = self.getFits()
        else:
            fitlist = fits
        rv = sum([fit.strucs for fit in fitlist], [])
        return rv


    def getTemperatures(self, datasets=None):
        """Extract temperatures from a list of datasets.

        datasets -- optional list of FitDataSet objects.  When not
                    specified, temperatures are extracted from all
                    datasets in the project.

        Return list of floating point values.  The list may contain
        None-s for datasets with undefined temperature.
        """
        if datasets is None:
            dslist = self.getDataSets()
        else:
            dslist = datasets
        temperatures = [ds.metadata.get('temperature') for ds in dslist]
        return temperatures


    def getDopings(self, datasets=None):
        """Extract doping values from a list of datasets.

        datasets -- optional list of FitDataSet objects.  When not
                    specified, doping values are extracted from all
                    datasets in the project.

        Return list of floating point values.  The list may contain
        None-s for datasets with undefined doping.
        """
        if datasets is None:
            dslist = self.getDataSets()
        else:
            dslist = datasets
        dopings = [ds.metadata.get('doping') for ds in dslist]
        return dopings
Beispiel #7
0
                    A.occupancy = doping[i]
                if A.element == base:
                    A.occupancy = 1-doping[i]


        # Set the parameters to the previous fit's name, if one exists.
        if fitlastname:
            parval = "=%s" % fitlastname
            for par in fitcopy.parameters.values():
                par.setInitial(parval)

        # Now paste the copy into the control.
        fitnewname = "%s-%1.4f" % (fitbasename, doping[i])
        o = control.paste(fitcopy, new_name = fitnewname)
        fits.append(o)

    return [f.organization() for f in fits]

if __name__ == "__main__":
    from diffpy.pdfgui.control.pdfguicontrol import PDFGuiControl
    control = PDFGuiControl()
    control.load("../../tests/testdata/ni.ddp")
    fit = control.fits[0]
    olist = makeRSeries(control, fit, 5, 20, 5)
    print '\n'.join([fit[0].name for fit in olist])

# version
__id__ = "$Id$"

# End of file
Beispiel #8
0
        for S in fitcopy.strucs:
            for A in S:
                if A.element == dopant:
                    A.occupancy = doping[i]
                if A.element == base:
                    A.occupancy = 1 - doping[i]

        # Set the parameters to the previous fit's name, if one exists.
        if fitlastname:
            parval = "=%s" % fitlastname
            for par in fitcopy.parameters.values():
                par.setInitial(parval)

        # Now paste the copy into the control.
        fitnewname = "%s-%1.4f" % (fitbasename, doping[i])
        o = control.paste(fitcopy, new_name=fitnewname)
        fits.append(o)

    return [f.organization() for f in fits]


if __name__ == "__main__":
    from diffpy.pdfgui.control.pdfguicontrol import PDFGuiControl
    control = PDFGuiControl()
    control.load("../../tests/testdata/ni.ddp")
    fit = control.fits[0]
    olist = makeRSeries(control, fit, 5, 20, 5)
    print '\n'.join([f[0].name for f in olist])

# End of file
Beispiel #9
0
class LoadProject:
    """Load and access data in pdfgui project file.

    Protected instance data:

    _project    -- instance of PDFGuiControl with loaded project file.
    """

    # public methods

    def __init__(self, filename=None):
        """Initialize LoadProject object, by reading existing project file.

        filename -- path to PDFgui project file.
        """
        from diffpy.pdfgui.control.pdfguicontrol import PDFGuiControl
        self._project = PDFGuiControl()
        # business
        if filename is not None:
            self.load(filename)
        return


    def load(self, filename):
        """Load a project.

        filename -- path to PDFgui project file.

        No return value.
        """
        self._project.load(filename)
        return


    def save(self, filename):
        """Save the project.

        filename -- path where to write the PDFgui project.

        No return value.
        """
        self._project.save(filename)
        return


    def getFits(self):
        """Get all fits defined in the project file.

        Return list of Fitting objects.
        """
        rv = self._project.fits[:]
        return rv


    def getDataSets(self, fits=None):
        """Return a list of all datasets contained in specified fits.

        fits -- optional list of Fitting objects that own datasets.
                When not specified, get datasets from all fits defined
                in the project.

        Return list of FitDataSet objects.
        """
        if fits is None:
            fitlist = self.getFits()
        else:
            fitlist = fits
        rv = sum([fit.datasets for fit in fitlist], [])
        return rv


    def getCalculations(self, fits=None):
        """Return list of all calculations contained in specified fits.

        fits -- optional list of Fitting objects that own datasets.
                When not specified, get datasets from all fits defined
                in the project.

        Return list of Calculation objects.
        """
        if fits is None:
            fitlist = self.getFits()
        else:
            fitlist = fits
        rv = sum([fit.calcs for fit in fitlist], [])
        return rv


    def getPhases(self, fits=None):
        """Collect all phases contained in specified fits.

        fits -- optional list of Fitting objects that own datasets.
                When not specified, get phases from all fits defined
                in the project.

        Return list of FitStructure objects.
        """
        if fits is None:
            fitlist = self.getFits()
        else:
            fitlist = fits
        rv = sum([fit.strucs for fit in fitlist], [])
        return rv


    def getTemperatures(self, datasets=None):
        """Extract temperatures from a list of datasets.

        datasets -- optional list of FitDataSet objects.  When not
                    specified, temperatures are extracted from all
                    datasets in the project.

        Return list of floating point values.  The list may contain
        None-s for datasets with undefined temperature.
        """
        if datasets is None:
            dslist = self.getDataSets()
        else:
            dslist = datasets
        temperatures = [ds.metadata.get('temperature') for ds in dslist]
        return temperatures


    def getDopings(self, datasets=None):
        """Extract doping values from a list of datasets.

        datasets -- optional list of FitDataSet objects.  When not
                    specified, doping values are extracted from all
                    datasets in the project.

        Return list of floating point values.  The list may contain
        None-s for datasets with undefined doping.
        """
        if datasets is None:
            dslist = self.getDataSets()
        else:
            dslist = datasets
        dopings = [ds.metadata.get('doping') for ds in dslist]
        return dopings
Beispiel #10
0
 def setUp(self):
     from diffpy.pdfgui.control.pdfguicontrol import PDFGuiControl
     self.control = PDFGuiControl()
     return
Beispiel #11
0
 def setUp(self):
     self.control = PDFGuiControl()
     return