a
    ˆù»jâ  ã                   @   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)ÚselfZ
shiftangle© r   úJE:\soccer\ml_env\Lib\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ÚbZ	disparityZm4Zm5Z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$   Zm3_2Zm1_2Zdisp31Zrand1Zrand3Zres1Zres3Zres3_2Z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   s    þ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]   s    þ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	   r'   r   r   r
   r	   r   r)   é   r'   é   r,   r/   r   r   r   Ú(test_procrustes_bad_number_of_dimensionsb   s    þþþz7TestProcrustes.test_procrustes_bad_number_of_dimensionsN)
Ú__name__Ú
__module__Ú__qualname__r   r%   r&   r0   r2   r5   r8   r   r   r   r   r      s   r   )Únumpyr   Znumpy.testingr   r   r   Zpytestr   r-   Zscipy.spatialr   r   r   r   r   r   Ú<module>   s   