def test_analysis_class_decorator(): # Issue #1511 # analysis_class should not raise # a DeprecationWarning u = mda.Universe(PSF, DCD) def distance(a, b): return np.linalg.norm((a.centroid() - b.centroid())) Distances = base.analysis_class(distance) with no_deprecated_call(): d = Distances(u.atoms[:10], u.atoms[10:20]).run()
def test_analysis_class(): ana_class = base.analysis_class(simple_function) assert issubclass(ana_class, base.AnalysisBase) assert issubclass(ana_class, base.AnalysisFromFunction) u = mda.Universe(PSF, DCD) step = 2 ana = ana_class(u.atoms).run(step=step) results = [] for ts in u.trajectory[::step]: results.append(simple_function(u.atoms)) results = np.asarray(results) assert_equal(results, ana.results) with pytest.raises(ValueError): ana_class(2)
def test_analysis_class_decorator(): # Issue #1511 # analysis_class should not raise # a DeprecationWarning # PR 3194 - only one specific DeprecationWarning should be raised u = mda.Universe(PSF, DCD) def distance(a, b): return np.linalg.norm((a.centroid() - b.centroid())) Distances = base.analysis_class(distance) # temporarily switch from no_deprecated_call to a standard warn capture # revert in version 2.0 # with no_deprecated_call(): with pytest.warns(DeprecationWarning) as record: d = Distances(u.atoms[:10], u.atoms[10:20]).run() assert len(record) == 1 msg = ("The structure of the `results` array will change in MDAnalysis " "version 2.0.") assert str(record[0].message) == msg