
    tKgn                     L    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      Zy)    N)assert_allcloseassert_equalassert_almost_equal)raises)
procrustesc                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestProcrustesc           
         t        j                  ddgddgddgddggd      | _        t        j                  ddgddgddgddggd      | _        t        j                  ddgddgddgdd	ggd      | _        t         j
                  d
z  }t        j                  ddgddgddgddggd      t        j                  d      z  | _        t        j                  t        j                  |      t        j                  |      gt        j                  t         j
                  dz  |z
        t        j                  t         j
                  dz  |z
        gt        j                  |       t        j                  |       gt        j                  t         j
                  dz  |z
         t        j                  t         j
                  dz  |z
         ggd      t        j                  d      z  | _
        y)zcreates inputs         d   ig      @   r   N)nparraydata1data2data3pisqrtdata4cossindata5)self
shiftangles     h/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/spatial/tests/test__procrustes.pysetup_methodzTestProcrustes.setup_method	   s    XX1v1v1v1v>D
 XX2wB!R1b'BCH

 XX1v1v1v3x@#F

 UUQY
XX1v1vAw "g'(+-/1wwqz:
XXz 2BFF:4FG!vvbeeai*&<=!vvbeeai*&<=? "z 22 "z 224 "ruuqy:'= >> "ruuqy:'= >>@A "# &(WWQZ0
    c                 8   t        | j                  | j                        \  }}}t        ||       t	        |d       t        | j
                  | j                        \  }}}t        || j
                         t        | j                  | j                        \  }}}	y )Ng        )	r   r   r   r   r   r   r   r   r   )
r   ab	disparitym4m5disp45m1m3disp13s
             r!   test_procrusteszTestProcrustes.test_procrustes%   sx     %TZZ<1i1Ir* $DJJ

;BR$ $DJJ

;Br#   c                    t        | j                  | j                        \  }}}t        | j                  | j                        \  }}}t        ||       t	        j
                  g dg dg dg dg dg dg dg dg      }t	        j
                  g d	g d
g dg dg dg dg dg dg      }t        ||      \  }	}
}t        ||      \  }}}t        ||       y )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_2s                r!   test_procrustes2zTestProcrustes.test_procrustes28   s    #DJJ

;B'

DJJ?dFFF+ >?>==>==? @ <@>>=??>@ A (u5dF!+E5!9FF+r#   c           
          t        t        t        t        j                  ddgddgg      t        j                  g dg dg             y )Nr   r   r   r   )         )r   	   
   assert_raises
ValueErrorr   r   r   r   s    r!   test_procrustes_shape_mismatchz-TestProcrustes.test_procrustes_shape_mismatchT   s8    j*hhAA/0hh	:67	9r#   c                 \    t        j                  g g      }t        t        t        ||       y )N)r   r   rA   rB   r   )r   emptys     r!   "test_procrustes_empty_rows_or_colsz1TestProcrustes.test_procrustes_empty_rows_or_colsY   s    "j*eU;r#   c           
          t        t        t        t        j                  ddgddgg      t        j                  ddgddgg             y )N*   -   r@   rC   s    r!   test_procrustes_no_variationz+TestProcrustes.test_procrustes_no_variation]   s@    j*hhR2r(34hhR2r(34	6r#   c           
         t        t        t        t        j                  g d      t        j                  ddgddgg             t        t        t        t        j                  g d      t        j                  g d             t        t        t        t        j                  d      t        j                  d             t        t        t        t        j                  dgdggg      t        j                  dd	ggg             y )
N)r   r   r   r   r;   r   r   r   r   r   r=      r;      r@   rC   s    r!   (test_procrustes_bad_number_of_dimensionsz7TestProcrustes.test_procrustes_bad_number_of_dimensionsb   s    j*hh12hhAA/0	2
 	j*hh12hh12	4
 	j*bhhqk288B<H 	j*hh"s}-hh!R	{+	-r#   N)
__name__
__module____qualname__r"   r.   r9   rD   rG   rK   rO    r#   r!   r	   r	      s%    08<&,89
<6
-r#   r	   )numpyr   numpy.testingr   r   r   pytestr   rA   scipy.spatialr   r	   rS   r#   r!   <module>rX      s      L L * $k- k-r#   