def test_eval_nickel(self):
     """check PDFCalculator.eval() on simple Nickel data
     """
     fnipf2 = datafile('Ni-fit.fgr')
     gpf2 = numpy.loadtxt(fnipf2, usecols=(1,))
     self.pdfcalc._setDoubleAttr('rmax', 10.0001)
     self.pdfcalc.eval(self.nickel)
     gcalc = self.pdfcalc.pdf
     self.failUnless(_maxNormDiff(gpf2, gcalc) < 0.0091)
     return
Example #2
0
 def test_eval_nickel(self):
     """check PDFCalculator.eval() on simple Nickel data
     """
     fnipf2 = datafile('Ni-fit.fgr')
     gpf2 = numpy.loadtxt(fnipf2, usecols=(1, ))
     self.pdfcalc._setDoubleAttr('rmax', 10.0001)
     self.pdfcalc.eval(self.nickel)
     gcalc = self.pdfcalc.pdf
     self.assertTrue(_maxNormDiff(gpf2, gcalc) < 0.0091)
     return
 def test_fft_roundtrip(self):
     """Check if forward and inverse transformation recover the input.
     """
     fnipf2 = datafile('Ni-fit.fgr')
     g0 = numpy.loadtxt(fnipf2, usecols=(1,))
     dr0 = 0.01
     fq, dq = fftgtof(g0, dr0)
     g1, dr1 = fftftog(fq, dq)
     self.assertAlmostEqual(dr0, dr1, 12)
     self.assertTrue(numpy.allclose(g0, g1[:g0.size]))
     return
Example #4
0
 def test_fft_roundtrip(self):
     """Check if forward and inverse transformation recover the input.
     """
     fnipf2 = datafile('Ni-fit.fgr')
     g0 = numpy.loadtxt(fnipf2, usecols=(1, ))
     dr0 = 0.01
     fq, dq = fftgtof(g0, dr0)
     g1, dr1 = fftftog(fq, dq)
     self.assertAlmostEqual(dr0, dr1, 12)
     self.assertTrue(numpy.allclose(g0, g1[:g0.size]))
     return
 def test_fft_conversions(self):
     """Verify conversions of arguments in fftgtof function.
     """
     fnipf2 = datafile('Ni-fit.fgr')
     data = numpy.loadtxt(fnipf2)
     dr = 0.01
     fq0, dq0 = fftgtof(data[:,1], dr)
     fq1, dq1 = fftgtof(data[:,1].copy(), dr)
     fq2, dq2 = fftgtof(list(data[:,1]), dr)
     self.assertTrue(numpy.array_equal(fq0, fq1))
     self.assertTrue(numpy.array_equal(fq0, fq2))
     self.assertEqual(dq0, dq1)
     self.assertEqual(dq0, dq2)
     return
Example #6
0
 def test_fft_conversions(self):
     """Verify conversions of arguments in fftgtof function.
     """
     fnipf2 = datafile('Ni-fit.fgr')
     data = numpy.loadtxt(fnipf2)
     dr = 0.01
     fq0, dq0 = fftgtof(data[:, 1], dr)
     fq1, dq1 = fftgtof(data[:, 1].copy(), dr)
     fq2, dq2 = fftgtof(list(data[:, 1]), dr)
     self.assertTrue(numpy.array_equal(fq0, fq1))
     self.assertTrue(numpy.array_equal(fq0, fq2))
     self.assertEqual(dq0, dq1)
     self.assertEqual(dq0, dq2)
     return
def _loadExpectedPDF(basefilename):
    '''Read expected result and return a tuple of (r, g, cfgdict).
    '''
    rxf = re.compile(r'[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?')
    fullpath = datafile(basefilename)
    cfgdict = {}
    for line in open(fullpath):
        if line[:1] != '#': break
        w = line.split()
        has_cfgdata = (len(w) == 4 and w[2] == '=')
        if not has_cfgdata: continue
        cfgdict[w[1]] = w[3]
        if rxf.match(w[3]): cfgdict[w[1]] = float(w[3])
    r, g = numpy.loadtxt(fullpath, usecols=(0, 1), unpack=True)
    rv = (r, g, cfgdict)
    return rv
def _loadExpectedPDF(basefilename):
    '''Read expected result and return a tuple of (r, g, cfgdict).
    '''
    rxf = re.compile(r'[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?')
    fullpath = datafile(basefilename)
    cfgdict = {}
    for line in open(fullpath):
        if line[:1] != '#':  break
        w = line.split()
        has_cfgdata = (len(w) == 4 and w[2] == '=')
        if not has_cfgdata:  continue
        cfgdict[w[1]] = w[3]
        if rxf.match(w[3]):  cfgdict[w[1]] = float(w[3])
    r, g = numpy.loadtxt(fullpath, usecols=(0, 1), unpack=True)
    rv = (r, g, cfgdict)
    return rv
 def test_eval_rutile(self):
     """check PDFCalculator.eval() on anisotropic rutile data
     """
     frutile = datafile('TiO2_rutile-fit.fgr')
     gpf2 = numpy.loadtxt(frutile, usecols=(1,))
     # configure calculator according to testdata/TiO2_ruitile-fit.fgr
     self.pdfcalc.qmax = 26
     self.pdfcalc.qdamp = 0.0665649
     dscale = 0.655857
     self.pdfcalc.rmin = 1
     self.pdfcalc.rmax = 30.0001
     # apply data scale
     self.pdfcalc(self.tio2rutile)
     self.pdfcalc.scale *= dscale
     gcalc = self.pdfcalc.pdf
     # termination at rmin is poorly cut in PDFfit2
     mxnd = _maxNormDiff(gpf2, gcalc)
     self.failUnless(mxnd < 0.057)
     # more accurate from 1.5
     mxnd1 = _maxNormDiff(gpf2[:500], gcalc[:500])
     mxnd2 = _maxNormDiff(gpf2[500:], gcalc[500:])
     self.failUnless(mxnd1 < 0.056)
     self.failUnless(mxnd2 < 0.020)
     return
Example #10
0
 def test_eval_rutile(self):
     """check PDFCalculator.eval() on anisotropic rutile data
     """
     frutile = datafile('TiO2_rutile-fit.fgr')
     gpf2 = numpy.loadtxt(frutile, usecols=(1, ))
     # configure calculator according to testdata/TiO2_ruitile-fit.fgr
     self.pdfcalc.qmax = 26
     self.pdfcalc.qdamp = 0.0665649
     dscale = 0.655857
     self.pdfcalc.rmin = 1
     self.pdfcalc.rmax = 30.0001
     # apply data scale
     self.pdfcalc(self.tio2rutile)
     self.pdfcalc.scale *= dscale
     gcalc = self.pdfcalc.pdf
     # termination at rmin is poorly cut in PDFfit2
     mxnd = _maxNormDiff(gpf2, gcalc)
     self.assertTrue(mxnd < 0.057)
     # more accurate from 1.5
     mxnd1 = _maxNormDiff(gpf2[:500], gcalc[:500])
     mxnd2 = _maxNormDiff(gpf2[500:], gcalc[500:])
     self.assertTrue(mxnd1 < 0.056)
     self.assertTrue(mxnd2 < 0.020)
     return