o
    Ö­jn  ã                   @   sF   d dl Zd dlmZmZmZ d dlmZ d dl	m
Z
 G dd„ dƒZdS )é    N)Úassert_allcloseÚassert_equalÚassert_almost_equal)Úraises)Ú
procrustesc                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestProcrustesc              
   C   s@  t  ddgddgddgddggd¡| _t  ddgddgddgddggd¡| _t  ddgddgddgdd	ggd¡| _t jd
 }t  ddgddgddgddggd¡t  d¡ | _t  t  |¡t  	|¡gt  t jd | ¡t  	t jd | ¡gt  |¡ t  	|¡ gt  t jd | ¡ t  	t jd | ¡ ggd¡t  d¡ | _
dS )zcreates inputsé   é   é   Údé   éþÿÿÿéüÿÿÿiúÿÿÿg      @é   r   éÿÿÿÿN)ÚnpÚarrayÚdata1Údata2Údata3ÚpiÚsqrtÚdata4ÚcosÚsinÚdata5)ÚselfÚ
shiftangle© r   úa/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/spatial/tests/test__procrustes.pyÚsetup_method	   s4   &&&
ÿÿÿÿ

ÿÿûù
ùzTestProcrustes.setup_methodc           
      C   s`   t | j| jƒ\}}}t||ƒ t|dƒ t | j| jƒ\}}}t|| jƒ t | j| jƒ\}}}	d S )Ng        )	r   r   r   r   r   r   r   r   r   )
r   ÚaÚbÚ	disparityÚm4Úm5Údisp45Úm1Úm3Údisp13r   r   r   Útest_procrustes%   s   

zTestProcrustes.test_procrustesc                 C   sÔ   t | j| jƒ\}}}t | j| jƒ\}}}t||ƒ t g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¡}t g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g¡}t ||ƒ\}	}
}t ||ƒ\}}}t||ƒ d S )N)gß�€°×ô@g­æï”ÄˆÓ?gŠ¼YAÛÃá?)gR;ËEßQÚ?g²¡zï˜O¤¿g/ß¸”cÔ¿)g¼üwKií?g¨¯c3òOö?g£Ù£ä“Ã¿)gÆ) çA	 @gÚç¼Jà?g :oÆÝÞÒ?)g½Ù‹‚3¸?gvOÃ\÷›å?g‚�â˜<Ð ?)g}v# €õ±?g½P#¡ë‚@g÷-ç@Ãú¿)gˆN	g;Ïä?go{åî1°ù?gêg=¾µšé?)g˜±Wã$å¿güŠ¹”ˆ*á?gDØ×WªÍÅ?)gUÏ“|6¼´?g’|_;œé¸?gÍ\àòX3Æ¿)gö8•ý¿g[Ôåœñ í¿g¾7~�—±ô¿)gVÞDã?så?g$ÅSÑÀõ¿gúB9×Ú?)gŠÍd«ç?g´qæ6åÉ¿glx›³Æà?)g#­)w<¹Æ?gšyÕw<5·?g¶;{™îÓ?)g„¿xi7¸Þ?g9ô’ÖJNì¿gv[¦Sjâ¿)gÕYN¾°g½¿gÕj›$Ž#À¿g^p¼ñ¤»Õ¿)g³–DîÐ�ë¿g6ét(\Ò¿g1€K[·Üî?)r   r   r   r   r   r   )r   r'   r(   r)   Úm3_2Úm1_2Údisp31Úrand1Úrand3Úres1Úres3Úres3_2Úres1_2r   r   r   Útest_procrustes28   s0   

ù
	ùzTestProcrustes.test_procrustes2c              	   C   s6   t ttt ddgddgg¡t g d¢g d¢g¡ƒ d S )Nr   r
   r	   r   )é   é   é   )r   é	   é
   ©Úassert_raisesÚ
ValueErrorr   r   r   ©r   r   r   r   Útest_procrustes_shape_mismatchT   ó   þz-TestProcrustes.test_procrustes_shape_mismatchc                 C   s   t  g g¡}ttt||ƒ d S )N)r   r   r;   r<   r   )r   Úemptyr   r   r   Ú"test_procrustes_empty_rows_or_colsY   s   z1TestProcrustes.test_procrustes_empty_rows_or_colsc              	   C   s6   t ttt ddgddgg¡t ddgddgg¡ƒ d S )Né*   é-   r:   r=   r   r   r   Útest_procrustes_no_variation]   r?   z+TestProcrustes.test_procrustes_no_variationc              	   C   s–   t ttt g d¢¡t ddgddgg¡ƒ t ttt g d¢¡t g d¢¡ƒ t ttt d¡t d¡ƒ t ttt dgdggg¡t dd	ggg¡ƒ d S )
N)r   r   r
   r	   r5   r   r   r
   r	   r   r7   é   r5   é   r:   r=   r   r   r   Ú(test_procrustes_bad_number_of_dimensionsb   s   þþþz7TestProcrustes.test_procrustes_bad_number_of_dimensionsN)
Ú__name__Ú
__module__Ú__qualname__r    r*   r4   r>   rA   rD   rG   r   r   r   r   r      s    r   )Únumpyr   Únumpy.testingr   r   r   Úpytestr   r;   Úscipy.spatialr   r   r   r   r   r   Ú<module>   s
    