U
    @f*                     @   s*   d Z ddlZddlmZ G dd dZdS )z>Tests for the ``sympy.physics.biomechanics._mixin.py`` module.    N)_NamedMixinc                   @   sv   e Zd Zedd Zejdddd Zej	dddd	gd
d Z
ej	dddddgdd Zdd Zdd ZdS )TestNamedMixinc                  C   s*   G dd dt } | d}|jdks&td S )Nc                   @   s   e Zd Zdd ZdS )z.TestNamedMixin.test_subclass.<locals>.Subclassc                 S   s
   || _ d S Nnameselfr    r	   O/tmp/pip-unpacked-wheel-6uje5nh9/sympy/physics/biomechanics/tests/test_mixin.py__init__   s    z7TestNamedMixin.test_subclass.<locals>.Subclass.__init__N__name__
__module____qualname__r   r	   r	   r	   r
   Subclass   s   r   r   )r   r   AssertionError)r   instancer	   r	   r
   test_subclass
   s    zTestNamedMixin.test_subclassT)Zautousec                 C   s   G dd dt }|| _d S )Nc                   @   s   e Zd Zdd ZdS )z5TestNamedMixin._named_mixin_fixture.<locals>.Subclassc                 S   s
   || _ d S r   r   r   r	   r	   r
   r      s    z>TestNamedMixin._named_mixin_fixture.<locals>.Subclass.__init__Nr   r	   r	   r	   r
   r      s   r   )r   r   )r   r   r	   r	   r
   _named_mixin_fixture   s    z#TestNamedMixin._named_mixin_fixturer   aZ	long_namec                 C   s   |  |}|j|kstd S r   )r   r   r   )r   r   r   r	   r	   r
   test_valid_name_argument   s    
z'TestNamedMixin.test_valid_name_argumentinvalid_namer   g        NFc              	   C   s$   t t | |}W 5 Q R X d S r   )pytestraises	TypeErrorr   )r   r   _r	   r	   r
   "test_invalid_name_argument_not_str$   s    z1TestNamedMixin.test_invalid_name_argument_not_strc              	   C   s$   t t | d}W 5 Q R X d S )N )r   r   
ValueErrorr   )r   r   r	   r	   r
   *test_invalid_name_argument_zero_length_str)   s    z9TestNamedMixin.test_invalid_name_argument_zero_length_strc              	   C   s*   |  d}tt d|_W 5 Q R X d S )Nr   new_name)r   r   r   AttributeErrorr   )r   r   r	   r	   r
    test_name_attribute_is_immutable-   s    
z/TestNamedMixin.test_name_attribute_is_immutable)r   r   r   staticmethodr   r   Zfixturer   markZparametrizer   r   r   r"   r	   r	   r	   r
   r      s   



	

r   )__doc__r   Z!sympy.physics.biomechanics._mixinr   r   r	   r	   r	   r
   <module>   s   