a
    rh
                     @   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
   xpointforce__repr__
isinstancetupleyr   )r   r   f1r   f2 r   d/var/www/html/assistant/venv/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r0   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 r1   )r   r   r   r   r2   r   r   r3   R   r4   c                      s   t  j jfS Nr   r   r   r2   r   r   r3   T   r4   c                      s   t  jgS r5   r6   r   r2   r   r   r3   V   r4   )r   r   r   r
   zr   r   r   r   r   
ValueError	TypeError)r   t1r   r2   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"   r0   r;   r   r   r   r   <module>   s   (