U
    »mœdn  ã                   @   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   ú]/home/sam/Atlas/atlas_env/lib/python3.8/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 dddgdddgddd	gd
ddgdddgdddgdddgdddgg¡}t dddgdddgdd d!gd"d#d$gd%d&d'gd(d)d*gd+d,d-gd.d/d0gg¡}t ||ƒ\}	}
}t ||ƒ\}}}t||ƒ d S )1Ngß�€°×ô@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   s:   t ttt ddgddgg¡t dddgdd	d
g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 ddddddg¡t ddgddgg¡ƒ t ttt ddddddg¡t ddddddg¡ƒ 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 )
Nr   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   