def test_convertFromNRFData(self): with open(TESTA_NRF, "r") as nfileA: ndataA = nrfdata.readFromImpactFile(nfileA) ldataA = lrfdata.convertFromNRFData(ndataA, start=self.START, end=self.END, npoints=self.NPOINTS) with open(TESTA_LRF, "r") as lfileB: ldataB = lrfdata.readFromImpactFile(lfileB) n = ldataB.n # The field recontruction from RF coeficients # is not correct for the first and last points. # Make these 'corrections' to the expected field. ldataB.f[0] = 0.0 ldataB.df[0] = (ldataA.f[1]-ldataA.f[0]) / (ldataA.p[1]-ldataA.p[0]) ldataB.df[1] = (ldataA.f[2]-ldataA.f[0]) / (ldataA.p[2]-ldataA.p[0]) ldataB.f[n-1] = 0.0 ldataB.df[n-1] = (ldataA.f[n-1]-ldataA.f[n-2]) / (ldataA.p[n-1]-ldataA.p[n-2]) ldataB.df[n-2] = (ldataA.f[n-1]-ldataA.f[n-3]) / (ldataA.p[n-1]-ldataA.p[n-3]) for z in xrange(0, n): self.assertTrue(numpy.allclose(ldataA.p[z], ldataB.p[z]), msg="Incorrect position at %d: %g: expecting %g" % (z, ldataA.p[z], ldataB.p[z])) self.assertTrue(numpy.allclose(ldataB.f[z], ldataA.f[z], atol=1e-7), # increase tolerance from default 1e-8 # msg="Incorrect electric field at %d: %g: expecting %g" % (z, ldataA.f[z], ldataB.f[z])) self.assertTrue(numpy.allclose(ldataA.df[z], ldataB.df[z]), msg="Incorrect electric field derivative at %d: %g: expecting %g" % (z, ldataA.df[z], ldataB.df[z]))
def test_convertFromFMData(self): with open(TESTA_E_DAT, "r") as efileA: edataA = fmdata.readFromDatFile(efileA, pscale=self.PSCALE, fscale=self.FSCALE) ldataA = lrfdata.convertFromFMData(edataA) with open(TESTA_LRF, "r") as lfileB: ldataB = lrfdata.readFromImpactFile(lfileB) n = ldataB.n for z in xrange(n): self.assertTrue(numpy.allclose(ldataA.p[z], ldataB.p[z]), msg="Incorrect position at %d: %g: expecting %g" % (z, ldataA.p[z], ldataB.p[z])) self.assertTrue(numpy.allclose(ldataA.f[z], ldataB.f[z]), msg="Incorrect electric field at %d: %g: expecting %g" % (z, ldataA.f[z], ldataB.f[z])) self.assertTrue(numpy.allclose(ldataA.df[z], ldataB.df[z]), msg="Incorrect electric field derivative at %d: %g: expecting %g" % (z, ldataA.df[z], ldataA.df[z]))
def test_TTF(self): with open(TESTA_LRF, "r") as lfileA: ldataA = lrfdata.readFromImpactFile(lfileA) ttf = ldataA.ttf(self.BETA, self.FREQ, self.PHASE) self.assertTrue(numpy.allclose(ttf, self.TTF), msg = "Incorrect transit time factor: %f: expecting %f" % (ttf, self.TTF))
def test_voltage(self): with open(TESTA_LRF, "r") as lfileA: ldataA = lrfdata.readFromImpactFile(lfileA) voltage = ldataA.voltage(self.BETA, self.FREQ, self.PHASE) self.assertTrue(numpy.allclose(voltage, self.VOLTAGE), msg = "Incorrect acceleration voltage: %f: expecting %f" % (voltage, self.VOLTAGE))