o
    `^hn                     @   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   ig      @   r   N)nparraydata1data2data3pisqrtdata4cossindata5)self
shiftangle r   b/home/air/shanriGPT/back/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Ĉ?gYA?)gR;EQ?gzOg/߸cԿ)gwKi?gc3O?g٣ÿ)g) A	 @gJ?g:o?)gً3?gvO\?g<Р?)g}v#?gP#@g-@)gN	g;?go{1?gg=?)gW$g*?gDW?)gUϓ|6?g|_;?g\X3ƿ)g8g[g7~)gVD?s?g$SgB9?)gd?gq6ɿglx?)g#)w<?gyw<5?g;{?)gxi7?g9JNgv[Sj)gYNggj$#g^pտ)gDЍg6t(\ҿg1K[?)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
    