| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- """Tests for the ``sympy.physics.biomechanics._mixin.py`` module."""
- import pytest
- from sympy.physics.biomechanics._mixin import _NamedMixin
- class TestNamedMixin:
- @staticmethod
- def test_subclass():
- class Subclass(_NamedMixin):
- def __init__(self, name):
- self.name = name
- instance = Subclass('name')
- assert instance.name == 'name'
- @pytest.fixture(autouse=True)
- def _named_mixin_fixture(self):
- class Subclass(_NamedMixin):
- def __init__(self, name):
- self.name = name
- self.Subclass = Subclass
- @pytest.mark.parametrize('name', ['a', 'name', 'long_name'])
- def test_valid_name_argument(self, name):
- instance = self.Subclass(name)
- assert instance.name == name
- @pytest.mark.parametrize('invalid_name', [0, 0.0, None, False])
- def test_invalid_name_argument_not_str(self, invalid_name):
- with pytest.raises(TypeError):
- _ = self.Subclass(invalid_name)
- def test_invalid_name_argument_zero_length_str(self):
- with pytest.raises(ValueError):
- _ = self.Subclass('')
- def test_name_attribute_is_immutable(self):
- instance = self.Subclass('name')
- with pytest.raises(AttributeError):
- instance.name = 'new_name'
|