Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Review Needed]Pytest Style topology/test_guessers.py #1592

Merged
merged 1 commit into from Aug 7, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
54 changes: 25 additions & 29 deletions testsuite/MDAnalysisTests/topology/test_guessers.py
Expand Up @@ -22,12 +22,7 @@
from __future__ import absolute_import

import pytest
from numpy.testing import (
assert_,
assert_array_equal,
assert_equal,
assert_warns,
)
from numpy.testing import assert_equal
import numpy as np

from MDAnalysis.topology import guessers
Expand All @@ -36,29 +31,28 @@
from MDAnalysisTests import make_Universe
from MDAnalysisTests.core.test_fragments import make_starshape


class TestGuessMasses(object):
def test_guess_masses(self):
out = guessers.guess_masses(['C', 'C', 'H'])

assert_(isinstance(out, np.ndarray))
assert_array_equal(out,
np.array([12.011, 12.011, 1.008]))

assert isinstance(out, np.ndarray)
assert_equal(out, np.array([12.011, 12.011, 1.008]))

def test_guess_masses_warn(self):
assert_warns(UserWarning, guessers.guess_masses, ['X'])
with pytest.warns(UserWarning):
guessers.guess_masses(['X'])

def test_guess_masses_miss(self):
out = guessers.guess_masses(['X', 'Z'])
assert_array_equal(out, np.array([0.0, 0.0]))
assert_equal(out, np.array([0.0, 0.0]))

def test_get_atom_mass(self):
assert_(guessers.get_atom_mass('H') == 1.008)

def test_get_atom_mass_miss(self):
assert_(guessers.get_atom_mass('XYZ') == 0.0)
@pytest.mark.parametrize('element, value', (('H', 1.008), ('XYZ', 0.0), ))
def test_get_atom_mass(self, element, value):
assert guessers.get_atom_mass(element) == value

def test_guess_atom_mass(self):
assert_(guessers.guess_atom_mass('1H') == 1.008)
assert guessers.guess_atom_mass('1H') == 1.008


class TestGuessTypes(object):
Expand All @@ -68,32 +62,34 @@ class TestGuessTypes(object):
def test_guess_types(self):
out = guessers.guess_types(['MG2+', 'C12'])

assert_(isinstance(out, np.ndarray))
assert_array_equal(out, np.array(['MG', 'C'], dtype=object))
assert isinstance(out, np.ndarray)
assert_equal(out, np.array(['MG', 'C'], dtype=object))

def test_guess_atom_element(self):
assert_(guessers.guess_atom_element('MG2+') == 'MG')
assert guessers.guess_atom_element('MG2+') == 'MG'

def test_guess_atom_element_empty(self):
assert_(guessers.guess_atom_element('') == '')
assert guessers.guess_atom_element('') == ''

def test_guess_atom_element_singledigit(self):
assert_(guessers.guess_atom_element('1') == '1')
assert guessers.guess_atom_element('1') == '1'

def test_guess_atom_element_1H(self):
assert_(guessers.guess_atom_element('1H') == 'H')
assert_(guessers.guess_atom_element('2H') == 'H')
assert guessers.guess_atom_element('1H') == 'H'
assert guessers.guess_atom_element('2H') == 'H'


def test_guess_charge():
# this always returns 0.0
assert_(guessers.guess_atom_charge('this') == 0.0)
assert guessers.guess_atom_charge('this') == 0.0


def test_guess_bonds_Error():
u = make_Universe(trajectory=True)
with pytest.raises(ValueError):
guessers.guess_bonds( u.atoms[:4],
u.atoms.positions[:5])
guessers.guess_bonds(u.atoms[:4], u.atoms.positions[:5])


def test_guess_impropers():
u = make_starshape()

Expand Down