diff --git a/classical/tests.py b/classical/tests.py index f6c79d75b4007adcee58015f25139f7c5de97e59..af365cfca122d7b48da0292c4e0cd4b6e3dfbd6e 100644 --- a/classical/tests.py +++ b/classical/tests.py @@ -211,6 +211,26 @@ class ChebyshevPropagatorTest(unittest.TestCase): self.assertTrue(np.allclose(sq1, sq2)) self.assertTrue(np.allclose(sp1, sp2)) + def chebyshev_propagator_fpprec_test(self): + """ test the fpprec=multi option """ + params = self.params.copy() + syspar = self.syspar.copy() + params['fpprec'] = 'multi' + params['prec'] = 30 + syspar['fpprec'] = 'multi' + syspar['prec'] = 30 + system = Morse(**syspar) + prop = Chebyshev(syst=system, **params) + prop.propagate() + times, qapr, papr = prop.get_trajectory(dtype=np.object) + qref, pref = system.solution(times=times) + npqapr = np.array(qapr, dtype=np.float) + npqref = np.array(qref, dtype=np.float) + self.assertTrue(np.allclose(npqapr, npqref)) + nppapr = np.array(papr, dtype=np.float) + nppref = np.array(pref, dtype=np.float) + self.assertTrue(np.allclose(nppapr, nppref)) + def chebyshev_propagator_harmonic_test(self): """ test with harmonic oscillator """ syst = Harmonic(**self.syspar) @@ -387,6 +407,26 @@ class NewtonianPropagatorTest(unittest.TestCase): self.assertTrue(np.allclose(sq1, sq2)) self.assertTrue(np.allclose(sp1, sp2)) + def newtonian_propagator_fpprec_test(self): + """ test the fpprec=multi option """ + params = self.params.copy() + syspar = self.syspar.copy() + params['fpprec'] = 'multi' + params['prec'] = 30 + syspar['fpprec'] = 'multi' + syspar['prec'] = 30 + system = Morse(**syspar) + prop = Newtonian(syst=system, **params) + prop.propagate() + times, qapr, papr = prop.get_trajectory(dtype=np.object) + qref, pref = system.solution(times=times) + npqapr = np.array(qapr, dtype=np.float) + npqref = np.array(qref, dtype=np.float) + self.assertTrue(np.allclose(npqapr, npqref)) + nppapr = np.array(papr, dtype=np.float) + nppref = np.array(pref, dtype=np.float) + self.assertTrue(np.allclose(nppapr, nppref)) + def newtonian_propagator_harmonic_test(self): """ test with harmonic oscillator """ syst = Harmonic(**self.syspar)