Esempio n. 1
0
 def test_derivative(self):
     log= logging.getLogger( "test_J0023.derivative_test")
     testp = tdu.get_derivative_params(self.modelJ0023)
     delay = self.modelJ0023.delay(self.toasJ0023)
     for p in testp.keys():
         log.debug( "Runing derivative for %s", 'd_delay_d_'+p)
         if p in ['EPS2', 'EPS1']:
             testp[p] = 10
         ndf = self.modelJ0023.d_phase_d_param_num(self.toasJ0023, p, testp[p])
         adf = self.modelJ0023.d_phase_d_param(self.toasJ0023, delay, p)
         diff = adf - ndf
         if not np.all(diff.value) == 0.0:
             mean_der = (adf+ndf)/2.0
             relative_diff = np.abs(diff)/np.abs(mean_der)
             #print "Diff Max is :", np.abs(diff).max()
             msg = 'Derivative test failed at d_delay_d_%s with max relative difference %lf' % (p, np.nanmax(relative_diff).value)
             if p in ['PMELONG', 'ELONG']:
                 tol = 2e-2
             elif p in ['FB2', 'FB3']:
                 tol = 0.08
             else:
                 tol = 1e-3
             log.debug( "derivative relative diff for %s, %lf"%('d_delay_d_'+p, np.nanmax(relative_diff).value))
             assert np.nanmax(relative_diff) < tol, msg
         else:
             continue
Esempio n. 2
0
 def test_derivative(self):
     log = logging.getLogger("TestJ0613.derivative_test")
     self.modelJ0613.PBDOT.value = 0.0  # For test PBDOT
     self.modelJ0613.EPS1DOT.value = 0.0
     self.modelJ0613.EPS2DOT.value = 0.0
     self.modelJ0613.A1DOT.value = 0.0
     testp = tdu.get_derivative_params(self.modelJ0613)
     delay = self.modelJ0613.delay(self.toasJ0613)
     # Change parameter test step
     testp["EPS1"] = 1
     testp["EPS2"] = 1
     testp["PMDEC"] = 1
     testp["PMRA"] = 1
     for p in testp.keys():
         log.debug("Runing derivative for %s", "d_delay_d_" + p)
         ndf = self.modelJ0613.d_phase_d_param_num(self.toasJ0613, p,
                                                   testp[p])
         adf = self.modelJ0613.d_phase_d_param(self.toasJ0613, delay, p)
         diff = adf - ndf
         if not np.all(diff.value) == 0.0:
             mean_der = (adf + ndf) / 2.0
             relative_diff = np.abs(diff) / np.abs(mean_der)
             # print "Diff Max is :", np.abs(diff).max()
             msg = (
                 "Derivative test failed at d_delay_d_%s with max relative difference %lf"
                 % (p, np.nanmax(relative_diff).value))
             if p in ["EPS1DOT", "EPS1"]:
                 tol = 0.05
             else:
                 tol = 1e-3
             log.debug("derivative relative diff for %s, %lf" %
                       ("d_delay_d_" + p, np.nanmax(relative_diff).value))
             assert np.nanmax(relative_diff) < tol, msg
         else:
             continue
Esempio n. 3
0
 def test_derivative(self):
     log = logging.getLogger("test_J0023.derivative_test")
     testp = tdu.get_derivative_params(self.modelJ0023)
     delay = self.modelJ0023.delay(self.toasJ0023)
     for p in testp.keys():
         log.debug("Runing derivative for %s", "d_delay_d_" + p)
         if p in ["EPS2", "EPS1"]:
             testp[p] = 10
         ndf = self.modelJ0023.d_phase_d_param_num(self.toasJ0023, p,
                                                   testp[p])
         adf = self.modelJ0023.d_phase_d_param(self.toasJ0023, delay, p)
         diff = adf - ndf
         if not np.all(diff.value) == 0.0:
             mean_der = (adf + ndf) / 2.0
             relative_diff = np.abs(diff) / np.abs(mean_der)
             # print "Diff Max is :", np.abs(diff).max()
             msg = (
                 "Derivative test failed at d_delay_d_%s with max relative difference %lf"
                 % (p, np.nanmax(relative_diff).value))
             if p in ["PMELONG", "ELONG"]:
                 tol = 2e-2
             elif p in ["FB2", "FB3"]:
                 tol = 0.08
             else:
                 tol = 1e-3
             log.debug("derivative relative diff for %s, %lf" %
                       ("d_delay_d_" + p, np.nanmax(relative_diff).value))
             assert np.nanmax(relative_diff) < tol, msg
         else:
             continue
Esempio n. 4
0
 def test_derivative(self):
     log = logging.getLogger("TestB1855.derivative_test")
     testp = tdu.get_derivative_params(self.modelB1855)
     delay = self.modelB1855.delay(self.toasB1855)
     for p in testp.keys():
         log.debug("Runing derivative for %s", 'd_delay_d_' + p)
         ndf = self.modelB1855.d_phase_d_param_num(self.toasB1855, p,
                                                   testp[p])
         adf = self.modelB1855.d_phase_d_param(self.toasB1855, delay, p)
         diff = adf - ndf
         if not np.all(diff.value) == 0.0:
             mean_der = (adf + ndf) / 2.0
             relative_diff = np.abs(diff) / np.abs(mean_der)
             #print "Diff Max is :", np.abs(diff).max()
             msg = 'Derivative test failed at d_delay_d_%s with max relative difference %lf' % (
                 p, np.nanmax(relative_diff).value)
             if p in ['SINI']:
                 tol = 0.7
             else:
                 tol = 1e-3
             log.debug("derivative relative diff for %s, %lf" %
                       ('d_delay_d_' + p, np.nanmax(relative_diff).value))
             assert np.nanmax(relative_diff) < tol, msg
         else:
             continue
Esempio n. 5
0
 def test_J1713_deriv(self):
     log= logging.getLogger( "TestJ1713.derivative_test")
     testp = tdu.get_derivative_params(self.modelJ1713)
     delay = self.modelJ1713.delay(self.toasJ1713)
     for p in testp.keys():
         # Only check the binary parameters
         if p not in self.modelJ1713.binary_instance.binary_params:
             continue
         if p in ['PX', 'PMRA', 'PMDEC']:
             continue
         par = getattr(self.modelJ1713, p)
         if type(par).__name__ is "boolParameter":
             continue
         log.debug( "Runing derivative for %s", 'd_phase_d_'+p)
         ndf = self.modelJ1713.d_phase_d_param_num(self.toasJ1713, p, testp[p])
         adf = self.modelJ1713.d_phase_d_param(self.toasJ1713, delay, p)
         diff = adf - ndf
         if not np.all(diff.value) == 0.0:
             mean_der = (adf+ndf)/2.0
             relative_diff = np.abs(diff)/np.abs(mean_der)
             #print "Diff Max is :", np.abs(diff).max()
             msg = 'Derivative test failed at d_phase_d_%s with max relative difference %lf' % (p, np.nanmax(relative_diff).value)
             if p in ['SINI', 'KIN']:
                 tol = 0.7
             elif p in ['KOM']:
                 tol = 0.04
             else:
                 tol = 1e-3
             log.debug( "derivative relative diff for %s, %lf"%('d_phase_d_'+p, np.nanmax(relative_diff).value))
             assert np.nanmax(relative_diff) < tol, msg
         else:
             continue
Esempio n. 6
0
def test_derivative(toasJ1853, modelJ1853):
    log = logging.getLogger("TestJ1853.derivative_test")
    test_params = ["H3", "H4", "STIGMA"]
    modelJ1853.H4.value = 0.0  # For test PBDOT
    modelJ1853.STIGMA.value = 0.0
    testp = tdu.get_derivative_params(modelJ1853)
    delay = modelJ1853.delay(toasJ1853)
    # Change parameter test step
    testp["H3"] = 6e-1
    testp["H4"] = 1e-2
    testp["STIGMA"] = 1e-2
    for p in test_params:
        log.debug("Runing derivative for %s", "d_delay_d_" + p)
        ndf = modelJ1853.d_phase_d_param_num(toasJ1853, p, testp[p])
        adf = modelJ1853.d_phase_d_param(toasJ1853, delay, p)
        diff = adf - ndf
        if not np.all(diff.value) == 0.0:
            mean_der = (adf + ndf) / 2.0
            relative_diff = np.abs(diff) / np.abs(mean_der)
            # print "Diff Max is :", np.abs(diff).max()
            msg = (
                "Derivative test failed at d_delay_d_%s with max relative difference %lf"
                % (p, np.nanmax(relative_diff).value))
            if p in ["EPS1DOT", "EPS1"]:
                tol = 0.05
            else:
                tol = 1e-3
            log.debug("derivative relative diff for %s, %lf" %
                      ("d_delay_d_" + p, np.nanmax(relative_diff).value))
            assert np.nanmax(relative_diff) < tol, msg
        else:
            continue
Esempio n. 7
0
 def test_derivative(self):
     log.setLevel("DEBUG")
     testp = tdu.get_derivative_params(self.modelB1953)
     delay = self.modelB1953.delay(self.toasB1953)
     for p in testp.keys():
         log.debug("Runing derivative for %s".format("d_delay_d_" + p))
         ndf = self.modelB1953.d_phase_d_param_num(self.toasB1953, p,
                                                   testp[p])
         adf = self.modelB1953.d_phase_d_param(self.toasB1953, delay, p)
         diff = adf - ndf
         if not np.all(diff.value) == 0.0:
             mean_der = (adf + ndf) / 2.0
             relative_diff = np.abs(diff) / np.abs(mean_der)
             # print "Diff Max is :", np.abs(diff).max()
             msg = (
                 "Derivative test failed at d_delay_d_%s with max relative difference %lf"
                 % (p, np.nanmax(relative_diff).value))
             if p in ["ECC", "EDOT"]:
                 tol = 20
             elif p in ["PMDEC"]:
                 tol = 5e-3
             else:
                 tol = 1e-3
             log.debug("derivative relative diff for %s, %lf" %
                       ("d_delay_d_" + p, np.nanmax(relative_diff).value))
             assert np.nanmax(relative_diff) < tol, msg
         else:
             continue
Esempio n. 8
0
 def test_J1713_deriv(self):
     log = logging.getLogger("TestJ1713.derivative_test")
     testp = tdu.get_derivative_params(self.modelJ1713)
     delay = self.modelJ1713.delay(self.toasJ1713)
     for p in testp.keys():
         # Only check the binary parameters
         if p not in self.modelJ1713.binary_instance.binary_params:
             continue
         if p in ['PX', 'PMRA', 'PMDEC']:
             continue
         par = getattr(self.modelJ1713, p)
         if type(par).__name__ is "boolParameter":
             continue
         log.debug("Runing derivative for %s", 'd_phase_d_' + p)
         ndf = self.modelJ1713.d_phase_d_param_num(self.toasJ1713, p,
                                                   testp[p])
         adf = self.modelJ1713.d_phase_d_param(self.toasJ1713, delay, p)
         diff = adf - ndf
         if not np.all(diff.value) == 0.0:
             mean_der = (adf + ndf) / 2.0
             relative_diff = np.abs(diff) / np.abs(mean_der)
             #print "Diff Max is :", np.abs(diff).max()
             msg = 'Derivative test failed at d_phase_d_%s with max relative difference %lf' % (
                 p, np.nanmax(relative_diff).value)
             if p in ['SINI', 'KIN']:
                 tol = 0.7
             elif p in ['KOM']:
                 tol = 0.04
             else:
                 tol = 1e-3
             log.debug("derivative relative diff for %s, %lf" %
                       ('d_phase_d_' + p, np.nanmax(relative_diff).value))
             assert np.nanmax(relative_diff) < tol, msg
         else:
             continue
Esempio n. 9
0
def test_derivative(modelJ0023, toasJ0023):
    testp = tdu.get_derivative_params(modelJ0023)
    delay = modelJ0023.delay(toasJ0023)
    for p in testp.keys():
        print("Runing derivative for %s", "d_delay_d_" + p)
        if p in ["EPS2", "EPS1"]:
            testp[p] = 15
        ndf = modelJ0023.d_phase_d_param_num(toasJ0023, p, testp[p])
        adf = modelJ0023.d_phase_d_param(toasJ0023, delay, p)
        diff = adf - ndf
        if not np.all(diff.value) == 0.0:
            mean_der = (adf + ndf) / 2.0
            relative_diff = np.abs(diff) / np.abs(mean_der)
            # print "Diff Max is :", np.abs(diff).max()
            msg = (
                "Derivative test failed at d_delay_d_%s with max relative difference %lf"
                % (p, np.nanmax(relative_diff).value)
            )
            if p in ["PMELONG", "ELONG"]:
                tol = 2e-2
            elif p in ["FB1"]:
                # paulr added this to make tests pass with oldest supported versions of numpy/astropy, but I don't know why it is needed
                # How should we decide what the acceptable tolerance is? This should not just be a random choice.
                tol = 0.002
            elif p in ["FB2", "FB3"]:
                tol = 0.08
            else:
                tol = 1e-3
            print(
                "derivative relative diff for %s, %lf"
                % ("d_delay_d_" + p, np.nanmax(relative_diff).value)
            )
            assert np.nanmax(relative_diff) < tol, msg
        else:
            continue
Esempio n. 10
0
 def test_derivative(self):
     log = logging.getLogger("TestJ1853.derivative_test")
     test_params = ['H3', 'H4', 'STIGMA']
     self.modelJ1853.H4.value = 0.0  # For test PBDOT
     self.modelJ1853.STIGMA.value = 0.0
     testp = tdu.get_derivative_params(self.modelJ1853)
     delay = self.modelJ1853.delay(self.toasJ1853)
     # Change parameter test step
     testp['H3'] = 5e-1
     testp['H4'] = 1e-2
     testp['STIGMA'] = 1e-2
     for p in test_params:
         log.debug("Runing derivative for %s", 'd_delay_d_' + p)
         ndf = self.modelJ1853.d_phase_d_param_num(self.toasJ1853, p,
                                                   testp[p])
         adf = self.modelJ1853.d_phase_d_param(self.toasJ1853, delay, p)
         diff = adf - ndf
         if not np.all(diff.value) == 0.0:
             mean_der = (adf + ndf) / 2.0
             relative_diff = np.abs(diff) / np.abs(mean_der)
             #print "Diff Max is :", np.abs(diff).max()
             msg = 'Derivative test failed at d_delay_d_%s with max relative difference %lf' % (
                 p, np.nanmax(relative_diff).value)
             if p in ['EPS1DOT', 'EPS1']:
                 tol = 0.05
             else:
                 tol = 1e-3
             log.debug("derivative relative diff for %s, %lf" %
                       ('d_delay_d_' + p, np.nanmax(relative_diff).value))
             assert np.nanmax(relative_diff) < tol, msg
         else:
             continue
Esempio n. 11
0
 def test_derivative(self):
     log= logging.getLogger( "TestJ0613.derivative_test")
     self.modelJ0613.PBDOT.value = 0.0 # For test PBDOT
     self.modelJ0613.EPS1DOT.value = 0.0
     self.modelJ0613.EPS2DOT.value = 0.0
     self.modelJ0613.A1DOT.value = 0.0
     testp = tdu.get_derivative_params(self.modelJ0613)
     delay = self.modelJ0613.delay(self.toasJ0613.table)
     # Change parameter test step
     testp['EPS1'] = 1
     testp['EPS2'] = 1
     testp['PMDEC'] = 1
     testp['PMRA'] = 1
     for p in testp.keys():
         log.debug( "Runing derivative for %s", 'd_delay_d_'+p)
         ndf = self.modelJ0613.d_phase_d_param_num(self.toasJ0613.table, p, testp[p])
         adf = self.modelJ0613.d_phase_d_param(self.toasJ0613.table, delay, p)
         diff = adf - ndf
         if not np.all(diff.value) == 0.0:
             mean_der = (adf+ndf)/2.0
             relative_diff = np.abs(diff)/np.abs(mean_der)
             #print "Diff Max is :", np.abs(diff).max()
             msg = 'Derivative test failed at d_delay_d_%s with max relative difference %lf' % (p, np.nanmax(relative_diff).value)
             if p in ['EPS1DOT', 'EPS1']:
                 tol = 0.05
             else:
                 tol = 1e-3
             log.debug( "derivative relative diff for %s, %lf"%('d_delay_d_'+p, np.nanmax(relative_diff).value))
             assert np.nanmax(relative_diff) < tol, msg
         else:
             continue
Esempio n. 12
0
 def test_K96(self):
     log= logging.getLogger( "TestJ1713 Switch of K96")
     self.modelJ1713.K96.value = False
     res = resids(self.toasJ1713, self.modelJ1713, False).time_resids.to(u.s)
     delay = self.modelJ1713.delay(self.toasJ1713)
     testp = tdu.get_derivative_params(self.modelJ1713)
     for p in testp.keys():
         adf = self.modelJ1713.d_phase_d_param(self.toasJ1713, delay, p)
Esempio n. 13
0
 def test_K96(self):
     log = logging.getLogger("TestJ1713 Switch of K96")
     self.modelJ1713.K96.value = False
     res = Residuals(self.toasJ1713, self.modelJ1713, False).time_resids.to(u.s)
     delay = self.modelJ1713.delay(self.toasJ1713)
     testp = tdu.get_derivative_params(self.modelJ1713)
     for p in testp.keys():
         adf = self.modelJ1713.d_phase_d_param(self.toasJ1713, delay, p)
Esempio n. 14
0
 def test_K96(self):
     modelJ1713 = copy.deepcopy(self.modelJ1713)
     log = logging.getLogger("TestJ1713 Switch of K96")
     modelJ1713.K96.value = False
     res = Residuals(self.toasJ1713, modelJ1713,
                     use_weighted_mean=False).time_resids.to(u.s)
     delay = self.modelJ1713.delay(self.toasJ1713)
     testp = tdu.get_derivative_params(modelJ1713)
     for p in testp.keys():
         self.modelJ1713.d_phase_d_param(self.toasJ1713, delay, p)
Esempio n. 15
0
 def test_derivative(self):
     log= logging.getLogger( "TestB1855.derivative_test")
     testp = tdu.get_derivative_params(self.modelB1855)
     delay = self.modelB1855.delay(self.toasB1855)
     for p in testp.keys():
         log.debug( "Runing derivative for %s", 'd_delay_d_'+p)
         ndf = self.modelB1855.d_phase_d_param_num(self.toasB1855, p, testp[p])
         adf = self.modelB1855.d_phase_d_param(self.toasB1855, delay, p)
         diff = adf - ndf
         if not np.all(diff.value) == 0.0:
             mean_der = (adf+ndf)/2.0
             relative_diff = np.abs(diff)/np.abs(mean_der)
             #print "Diff Max is :", np.abs(diff).max()
             msg = 'Derivative test failed at d_delay_d_%s with max relative difference %lf' % (p, np.nanmax(relative_diff).value)
             if p in ['SINI']:
                 tol = 0.7
             else:
                 tol = 1e-3
             log.debug( "derivative relative diff for %s, %lf"%('d_delay_d_'+p, np.nanmax(relative_diff).value))
             assert np.nanmax(relative_diff) < tol, msg
         else:
             continue