예제 #1
0
    def test_flatten_models(self):
        " MultiFitter.flatten_models "
        models = self.make_models(ncg=1)
        alltags = [m.datatag for m in models]

        models = self.make_models(ncg=1)
        models = [models[0], tuple(models[1:])]
        tags = [m.datatag for m in MultiFitter.flatten_models(models)]
        self.assertEqual(alltags, tags)

        models = self.make_models(ncg=1)
        models = [models[0], models[1:]]
        tags = [m.datatag for m in MultiFitter.flatten_models(models)]
        self.assertEqual(alltags, tags)

        models = self.make_models(ncg=1)
        models = [models[0], [(models[0], models[1]), (models[0], models[2])]]
        tags = [m.datatag for m in MultiFitter.flatten_models(models)]
        self.assertEqual(alltags, tags)

        models = self.make_models(ncg=1)
        models = [models[0], [tuple(models[1:]), ()]]
        tags = [m.datatag for m in MultiFitter.flatten_models(models)]
        self.assertEqual(alltags, tags)

        models = self.make_models(ncg=1)
        models = [(), models[0], [], (models[1], (), models[2], ()),
                  [(), tuple(models[1:]), ()], [], [()]]
        tags = [m.datatag for m in MultiFitter.flatten_models(models)]
        self.assertEqual(alltags, tags)

        models = self.make_models(ncg=1)
        tags = [m.datatag for m in MultiFitter.flatten_models(models[0])]
        self.assertEqual(alltags[:1], tags)
예제 #2
0
 def test_chained_fit_kargs(self):
     " MultiFitter(models=[m1, dict(...), m2, ...]) "
     models = self.make_models(ncg=1)
     models = [models[2], dict(mopt=True), models[1], models[0]]
     fitter = MultiFitter(models=models, mopt=None)
     fit = fitter.chained_lsqfit(data=self.data,
                                 prior=self.prior,
                                 fast=True,
                                 wavg_all=False)
     self.assertTrue(fit.p['b'] is self.prior['b'])
     self.assertEqual(fitter.mopt, None)
     fitter = MultiFitter(models=fitter.flatten_models(models), mopt=None)
     fit = fitter.chained_lsqfit(data=self.data,
                                 prior=self.prior,
                                 fast=True)
     self.assertTrue(fit.p['b'] is not self.prior['b'])