def test___init__cant_set_Y_without_X(self): # ------------------- # can't set `residualer` without `fitter` with pytest.raises(ValueError, match="`residualer` without `fitter`."): pipeline.Pipeline( sampler=self.sampler, measurer=self.measurer, # fitter=self.fitter, # skipping fitter residualer=object(), statistic=self.statistic, ) # ------------------- # can't set `statistic` without `residualer` with pytest.raises( ValueError, match="`statistic` without `residualer`", ): pipeline.Pipeline( sampler=self.sampler, measurer=self.measurer, fitter=self.fitter, # residualer=self.residualer, # skipping residualer statistic=object(), )
def setup_class(cls): """Setup fixtures for testing.""" cls.pipe = pipeline.Pipeline(object()) cls.inst = pipeline.PipelineResult( cls.pipe, sample=1, measured="2", fit=[3, 3.0], residual=object(), statistic=NotImplemented, )
def test___init__(self): """Test method ``__init__``.""" # ------------------- # basic, same as inst pipe = pipeline.Pipeline( sampler=self.sampler, measurer=self.measurer, fitter=self.fitter, residualer=self.residualer, statistic=self.statistic, ) assert isinstance(pipe, pipeline.Pipeline) assert isinstance(pipe._sampler, PotentialSampler) assert isinstance(pipe._measurer, MeasurementErrorSampler) assert isinstance(pipe._fitter, PotentialFitter) assert isinstance(pipe._residualer, object) assert isinstance(pipe._statisticer, object) assert pipe._result is None # ------------------- # CAN set `fitter` without `measurer` pipe = pipeline.Pipeline( sampler=self.sampler, # measurer=self.measurer, fitter=self.fitter, residualer=self.residualer, statistic=self.statistic, ) assert isinstance(pipe, pipeline.Pipeline) assert isinstance(pipe._sampler, PotentialSampler) assert pipe._measurer is None assert isinstance(pipe._fitter, PotentialFitter) assert isinstance(pipe._residualer, object) assert isinstance(pipe._statisticer, object) assert pipe._result is None
def test___init__frame_mismatch(self): fitter = PotentialFitter( object(), key="unittest", frame="icrs", representation_type=self.sampler.representation_type, ) with pytest.raises(ValueError, match="must have the same frame."): pipeline.Pipeline( sampler=self.sampler, measurer=self.measurer, fitter=fitter, )
def test___init__(self): """Test method ``__init__``.""" pipe = pipeline.Pipeline(object()) # ------------------ # inits, defaults pr = pipeline.PipelineResult(pipe) assert isinstance(pr, pipeline.PipelineResult) assert pr._parent_ref() is pipe assert pr["sample"][0] is None assert pr["measured"][0] is None assert pr["fit"][0] is None assert pr["residual"][0] is None assert pr["statistic"][0] is None # ------------------ # inits, values assert isinstance(self.inst, pipeline.PipelineResult)
def setup_class(cls): """Set up fixtures for testing.""" cls.mass = 1e12 * u.solMass cls.r0 = 10 * u.kpc # scale factor # sampling a potential that lives in a galactocentric frame # and enforcing a Cartesian representation cls.sampler = PotentialSampler( PotentialWrapper(object(), frame="galactocentric"), key="unittest", frame="galactocentric", representation_type="cartesian", total_mass=10 * u.solMass, ) # but when we measure, it's 1% errors in icrs, Spherical cls.measurer = MeasurementErrorSampler( c_err=1 * u.percent, method=("rvs", "Gaussian"), frame="icrs", representation_type="spherical", ) # fitting is done with an SCF potential cls.fitter = PotentialFitter( object(), key="unittest", frame=cls.sampler.frame, representation_type=cls.sampler.representation_type, ) # the residual function cls.residualer = None # the statistic function cls.statistic = None cls.inst = pipeline.Pipeline( sampler=cls.sampler, measurer=cls.measurer, fitter=cls.fitter, residualer=cls.residualer, statistic=cls.statistic, )