U
    L?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*t|j| jks:t| dksJtt|t	sXt|d |ksht|d | jkszt||| jfkst|| j|fkst||| j| j
 fkst|td| jfksttd|}t|| j}||kstd S )NNPozForce(point=Po, force=N.x)r      CoP)r   r   r
   xpointAssertionErrorforce__repr__
isinstancetupleyr   )r   r   f1r   f2 r   Z/var/www/html/venv/lib/python3.8/site-packages/sympy/physics/mechanics/tests/test_loads.pytest_force_default	   s     
r   c                  C   s   t d} t| | j}|j| ks"t|j| jks2t| dksBtt|tsPt|d | ks`t|d | jksrt|| | jfkst|| j| fkst|| | j| j	 fkst|t d| jfkstt
d| d}t|| j}||kstd S )Nr   zTorque(frame=N, torque=N.x)r   r   Ar   )frame)r   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stqqd S )	Nr   zm M gzF1 F2popar    r   B)r   r   r	   r   r   r   r   r   extendr   r   rangelenr   )r   mMgZF1ZF2r$   r%   r    r   Ir&   Z	forceListlijr   r   r   test_gravity2   s    0r1   c                     s   t d tdtt j jfks.ttt  j  jfksLtt jf} t| tsht| t jks|tt  j	f}t|tst|t  j	kst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 r2   )r   r   r   r   r3   r   r   r4   R   r5   c                      s   t  j jfS Nr   r   r   r3   r   r   r4   T   r5   c                      s   t  jgS r6   r7   r   r3   r   r   r4   V   r5   )r   r   r   r
   zr   r   r   r   r   r   
ValueError	TypeError)r   t1r   r3   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#   r1   r<   r   r   r   r   <module>   s   (