a
    kh
                     @   st   d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZ d dlmZmZ dd Zdd Zd	d
 Zdd ZdS )    )raises)symbols)	RigidBodyParticleReferenceFramePointouterdynamicsymbolsForceTorque)gravity_parse_loadc                  C   s   t d} td}t|| j}|j|ks*J |j| jks:J | dksJJ t|tsXJ |d |kshJ |d | jkszJ ||| jfksJ || j|fksJ ||| j| j	 fksJ |td| jfksJ t
d|}t|| j}||ksJ d S )NNPozForce(point=Po, force=N.x)r      CoP)r   r   r
   xZpointforce__repr__
isinstancetupleyr   )r   r   f1r   f2 r   V/var/www/auris/lib/python3.9/site-packages/sympy/physics/mechanics/tests/test_loads.pytest_force_default	   s     
r   c                  C   s   t d} t| | j}|j| ks"J |j| jks2J | dksBJ t|tsPJ |d | ks`J |d | jksrJ || | jfksJ || j| fksJ || | j| j fksJ |t d| jfksJ t	d| d}t|| j}||ksJ d S )Nr   zTorque(frame=N, torque=N.x)r   r   Ar   )frame)
r   r   r   r   Ztorquer   r   r   r   r   )r   r   rbr   r   r   r   test_torque_default   s    r!   c                  C   s  t d} td\}}}td\}}td}td||}t d}td}	t|j|j}
td|	|||
|	f}||f|	|fg}|t	|| j
 || ||f|	|f||| | j
 f|	|| | j
 fg}tt|D ]6}tt|| D ] }|| | || | ksJ qqd S )	Nr   zm M gzF1 F2popar   r   B)r   r   r	   r   r   r   r   r   extendr   r   rangelen)r   mMgZF1ZF2r"   r#   r   r   Ir$   Z	forceListlijr   r   r   test_gravity2   s    0r/   c                     s   t d tdtt j jfks.J tt  j  jfksLJ t jf} t| tshJ | t jks|J t  jf}t|tsJ |t  jksJ t	t
 fdd t	t
 fdd t	t
 fdd t	t fdd d S )Nr   r"   c                      s   t td jfS Nr#   )r   r   r   r   r   r"   r   r   <lambda>Q       z"test_parse_loads.<locals>.<lambda>c                      s   t td  jfS r0   )r   r   r   r   r1   r   r   r2   R   r3   c                      s   t  j jfS Nr   r   r   r1   r   r   r2   T   r3   c                      s   t  jgS r4   r5   r   r1   r   r   r2   V   r3   )r   r   r   r
   zr   r   r   r   r   
ValueError	TypeError)r   t1r   r1   r   test_parse_loadsE   s    r:   N)Zpytestr   Zsympyr   Zsympy.physics.mechanicsr   r   r   r   r   r	   r
   r   Zsympy.physics.mechanics.loadsr   r   r   r!   r/   r:   r   r   r   r   <module>   s   (