§
    fŠtjb#  ã                   ó´   — d dl mZmZ d dlZd dlZd dlmZ d dlmZ	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d	„ Z ee¦  «         G d
„ d¦  «        ¦   «         ZdS )é    )ÚproductÚpermutationsN)Úassert_allclose)Úraises)Úorthogonal_procrustes)Úmatrix)Úmake_xp_test_caseÚxp_assert_close)Úskip_xp_invalid_argc                 ó>   — |                      | d¬¦  «        }| |z
  |fS )Nr   )Úaxis)Úmean)ÚAÚxpÚmus      ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/linalg/tests/test_procrustes.pyÚ	_centeredr      s%   € Ø	�Š�˜ˆÑ	Ô	€BØˆr‰6�2ˆ:Ðó    c                   ó¶   — e Zd Zd„ Zd„ Zd„ Zd„ Z e¦   «         d„ ¦   «         Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zej                             dg d¢¦  «        d„ ¦   «         ZdS )ÚTestOrthogonalProcrustesc                 ó  — t           j                             d¦  «        }|                     |                     d¦  «        ¦  «        }|                     |                     d¦  «        ¦  «        }t          t          t          ||¦  «         d S )NéÒ  é   )ÚnpÚrandomÚRandomStateÚasarrayÚrandnÚassert_raisesÚ
ValueErrorr   )Úselfr   Úrngr   ÚBs        r   Ú)test_orthogonal_procrustes_ndim_too_smallzBTestOrthogonalProcrustes.test_orthogonal_procrustes_ndim_too_small   sh   € ÝŒi×#Ò# DÑ)Ô)ˆØ�JŠJ�s—y’y ‘|”|Ñ$Ô$ˆØ�JŠJ�s—y’y ‘|”|Ñ$Ô$ˆÝ•jÕ"7¸¸AÑ>Ô>Ð>Ð>Ð>r   c                 ó   — t           j                             d¦  «        }d}t          |d¦  «        D ][\  }}|                      |j        |Ž ¦  «        }|                      |j        |Ž ¦  «        }t          t          t          ||¦  «         Œ\d S )Nr   ))r   r   )r   é   ©r&   r   ©r&   r&   é   )	r   r   r   r   r   r   r   r    r   )r!   r   r"   ÚshapesÚaÚbr   r#   s           r   Ú)test_orthogonal_procrustes_shape_mismatchzBTestOrthogonalProcrustes.test_orthogonal_procrustes_shape_mismatch   s‘   € ÝŒi×#Ò# DÑ)Ô)ˆØ1ˆÝ  ¨Ñ+Ô+ð 	Cð 	C‰DˆAˆqØ—
’
˜9˜3œ9 a˜=Ñ)Ô)ˆAØ—
’
˜9˜3œ9 a˜=Ñ)Ô)ˆAÝ�*Õ&;¸QÀÑBÔBÐBÐBð	Cð 	Cr   c           
      óþ  — t           j                             d¦  «        }d\  }}|                     ||¦  «        }|                     ||¦  «        }t           j        t           j         t           j        fD ]‡}|                     ¦   «         }||d<   |                     ¦   «         }	||	d<   ||	f||f||	ffD ]G\  }
}t          t          t          | 
                    |
¦  «        | 
                    |¦  «        ¦  «         ŒHŒˆd S )Nr   )r)   r   )é   r)   )r   r   r   r   ÚinfÚnanÚcopyr   r    r   r   )r!   r   r"   ÚmÚnÚA_goodÚB_goodÚ	bad_valueÚA_badÚB_badr   r#   s               r   Ú0test_orthogonal_procrustes_checkfinite_exceptionzITestOrthogonalProcrustes.test_orthogonal_procrustes_checkfinite_exception!   sö   € ÝŒi×#Ò# DÑ)Ô)ˆØ‰ˆˆ1Ø—’˜1˜a‘”ˆØ—’˜1˜a‘”ˆÝœ¥"¤& ­"¬&Ð0ð 	-ð 	-ˆIØ—K’K‘M”MˆEØ#ˆE�$‰KØ—K’K‘M”MˆEØ#ˆE�$‰KØ  %˜¨5°&¨/¸EÀ5¸>ÐJð -ð -‘��1Ý�jÕ*?ÀÇÂÈAÁÄØ Ÿjšj¨™mœmñ-ô -ð -ð -ð-ð	-ð 	-r   c           
      ó†  — t           j                             d¦  «        }d\  }}t          d¦  «        D �]}|                     |                     ||¦  «        ¦  «        }|                     |                     ||¦  «        ¦  «        }t          ||¦  «        \  }}	t          j        |                     d¦  «        ¦  «        D ]{}
t          j        |                     d¦  «        ¦  «        D ]Q}t          ||                     |
¦  «        z  ||                     |¦  «        z  ¦  «        \  }}	t          ||¦  «         ŒRŒ|�Œd S )Nr   r'   r   )	r   r   r   Úranger   r   r   Úsquarer
   )r!   r   r"   r3   r4   ÚiÚA_origÚB_origÚR_origÚsÚA_scaleÚB_scaleÚRs                r   Ú+test_orthogonal_procrustes_scale_invariancezDTestOrthogonalProcrustes.test_orthogonal_procrustes_scale_invariance/   s+  € ÝŒi×#Ò# DÑ)Ô)ˆØ‰ˆˆ1Ý�q‘”ð 	/ñ 	/ˆAØ—Z’Z §	¢	¨!¨Q¡¤Ñ0Ô0ˆFØ—Z’Z §	¢	¨!¨Q¡¤Ñ0Ô0ˆFÝ-¨f°fÑ=Ô=‰IˆF�AÝœ9 S§Y¢Y¨q¡\¤\Ñ2Ô2ð /ð /�Ý!œy¨¯ª°1©¬Ñ6Ô6ð /ð /�GÝ0°¸"¿*º*ÀWÑ:MÔ:MÑ1MØ17¸"¿*º*ÀWÑ:MÔ:MÑ1MñOô O‘D�A�qå# A vÑ.Ô.Ð.Ð.ð/ñ/ð		/ð 	/r   c                 ó(  — t           j                             d¦  «        }dD ]ï\  }}|                     ||¦  «        }|                     ||¦  «        }||                     ¦   «         t          |¦  «        f}||                     ¦   «         t          |¦  «        f}t          ||¦  «        \  }}	|                     |¦  «        }
t          ||¦  «        D ]=\  }}t          ||¦  «        \  }}	|                     |¦  «        }t          ||
¦  «         Œ>Œðd S )Nr   ©)é   r&   r(   )r&   rI   )
r   r   r   r   Útolistr   r   Údotr   r   )r!   r"   r3   r4   ÚA_arrÚB_arrÚAsÚBsÚR_arrrB   ÚAR_arrr   r#   rE   ÚARs                  r   Ú+test_orthogonal_procrustes_array_conversionzDTestOrthogonalProcrustes.test_orthogonal_procrustes_array_conversion<   s  € åŒi×#Ò# DÑ)Ô)ˆØ,ð 
	,ð 
	,‰DˆAˆqØ—I’I˜a ‘O”OˆEØ—I’I˜a ‘O”OˆEØ˜Ÿš™œ­°©¬Ð7ˆBØ˜Ÿš™œ­°©¬Ð7ˆBÝ,¨U°EÑ:Ô:‰HˆE�1Ø—Y’Y˜uÑ%Ô%ˆFÝ  B™œð ,ð ,‘��1Ý,¨Q°Ñ2Ô2‘��1Ø—Y’Y˜q‘\”\�Ý  FÑ+Ô+Ð+Ð+ð,ð
	,ð 
	,r   c           	      óþ  — t           j                             d¦  «        }dD �]Ù\  }}|                     |                     ||¦  «        ¦  «        }|                     |                     ||¦  «        ¦  «        }|j                             |j        |z   ¦  «        \  }}t          |j         	                    |¦  «        |j        ¦  «         ||j        z  }	t          |	|¦  «        \  }
}t          |j         	                    |
¦  «        |
j        ¦  «         t          |	|
z  |¦  «         |	d|                     |                     ||¦  «        ¦  «        z  z   }t          ||¦  «        \  }}t          |j         	                    |¦  «        |j        ¦  «         ||
z  }||z  }|j                             ||z
  d¬¦  «        }|j                             ||z
  d¬¦  «        }|                     ||k     ¦  «        sJ ‚�ŒÛd S )Nr   rH   g{®Gáz„?Úfro)Úord)r   r   r   r   r   ÚlinalgÚeighÚTr
   Úinvr   Úmatrix_normÚall)r!   r   r"   r3   r4   r#   ÚXÚwÚVr   rE   rB   ÚA_perturbedÚR_primeÚnaive_approxÚoptim_approxÚnaive_approx_errorÚoptim_approx_errors                     r   Útest_orthogonal_procrustesz3TestOrthogonalProcrustes.test_orthogonal_procrustesK   sÔ  € ÝŒi×#Ò# DÑ)Ô)ˆØ,ð 	Cñ 	C‰DˆAˆqà—
’
˜3Ÿ9š9 Q¨™?œ?Ñ+Ô+ˆAð —
’
˜3Ÿ9š9 Q¨™?œ?Ñ+Ô+ˆAØ”9—>’> !¤#¨¡'Ñ*Ô*‰DˆAˆqÝ˜BœIŸMšM¨!Ñ,Ô,¨a¬cÑ2Ô2Ð2à�A”C‘ˆAå(¨¨AÑ.Ô.‰DˆAˆqÝ˜BœIŸMšM¨!Ñ,Ô,¨a¬cÑ2Ô2Ð2Ý˜A ™E 1Ñ%Ô%Ð%à˜d R§Z¢Z°·	²	¸!¸Q±´Ñ%@Ô%@Ñ@Ñ@ˆKõ /¨{¸AÑ>Ô>‰JˆG�QÝ˜BœIŸMšM¨'Ñ2Ô2°G´IÑ>Ô>Ð>à&¨™?ˆLØ&¨Ñ0ˆLà!#¤×!6Ò!6°|ÀaÑ7GÈUÐ!6Ñ!SÔ!SÐØ!#¤×!6Ò!6°|ÀaÑ7GÈUÐ!6Ñ!SÔ!SÐà—6’6Ð,Ð/AÒAÑBÔBÐBÐBÐBÑBð9	Cð 	Cr   c                 ó’  — |                      ddgddgddgddgg|j        ¬¦  «        }|                      ddgddgddgddgg|j        ¬¦  «        }t          ||¦  «        \  }}t          ||¦  «        \  }}t          ||¦  «        \  }}	|	|j                             |¦  «        dz  z  }
|
|z  |z  |z   }t          ||d	¬
¦  «         d S )Néýÿÿÿr   éþÿÿÿr)   ©Údtyper/   r   é   ç:Œ0âŽyE>©Úatol©r   Úfloat64r   r   rW   r[   r
   )r!   r   r?   r@   r   ÚA_mur#   ÚB_murE   rB   ÚscaleÚB_approxs               r   Ú(test_orthogonal_procrustes_exact_examplezATestOrthogonalProcrustes.test_orthogonal_procrustes_exact_examplek   sé   € ð —’˜b !˜W r¨1 g°°A¨w¸¸Q¸Ð@ÈÌ
�ÑSÔSˆØ—’˜a ˜V a¨ V¨a°¨W°q¸!°fÐ=ÀRÄZ�ÑPÔPˆÝ˜F BÑ'Ô'‰ˆˆ4Ý˜F BÑ'Ô'‰ˆˆ4Ý$ Q¨Ñ*Ô*‰ˆˆ1Ø�B”I×)Ò)¨!Ñ,Ô,¨aÑ/Ñ/ˆØ˜1‘9˜q‘= 4Ñ'ˆÝ˜ &¨tÐ4Ñ4Ô4Ð4Ð4Ð4r   c                 óÎ  — |                      ddgddgddgddgg|j        ¬¦  «        }|                      ddgddgdd	gd
dgg|j        ¬¦  «        }t          ||¦  «        \  }}t          ||¦  «        \  }}t          ||¦  «        \  }}	|	|j                             |¦  «        dz  z  }
|
|z  |z  |z   }|                      ddgddgddgddgg|j        ¬¦  «        }t          ||d¬¦  «         |                      d|j        ¬¦  «        d         }|j                             ||z
  ¦  «        |j                             |¦  «        z  dz  }t          ||¦  «         t          ||¦  «        \  }}	|	|j                             |¦  «        dz  z  }
|
|z  |z  |z   }|j                             ||z
  ¦  «        |j                             |¦  «        z  dz  }t          ||¦  «         d S )Nrh   r   ri   r)   rj   é(   r/   r   iØÿÿÿrl   é   iîÿÿÿiëÿÿÿé   rm   rn   gñÒÇ×ÎÜ?© rp   )r!   r   r?   r@   r   rr   r#   rs   rE   rB   rt   ru   ÚexpectedÚexpected_disparityÚAB_disparityÚA_approxÚBA_disparitys                    r   Ú,test_orthogonal_procrustes_stretched_examplezETestOrthogonalProcrustes.test_orthogonal_procrustes_stretched_example‚   s  € à—’˜b !˜W r¨1 g°°A¨w¸¸Q¸Ð@ÈÌ
�ÑSÔSˆØ—’˜a ˜W q¨! f¨q°#¨h¸¸A¸Ð?ÀrÄz�ÑRÔRˆÝ˜F BÑ'Ô'‰ˆˆ4Ý˜F BÑ'Ô'‰ˆˆ4Ý$ Q¨Ñ*Ô*‰ˆˆ1Ø�B”I×)Ò)¨!Ñ,Ô,¨aÑ/Ñ/ˆØ˜1‘9˜q‘= 4Ñ'ˆØ—:’:  2˜w¨¨a¨°1°c°(¸RÀ¸GÐDÈBÌJ�:ÑWÔWˆÝ˜ (°Ð6Ñ6Ô6Ð6àŸZšZÐ(:À"Ä*˜ZÑMÔMÈbÔQÐØœ	×-Ò-¨h¸Ñ.?Ñ@Ô@Øœ)×/Ò/°Ñ2Ô2ñ3Ø56ñ7ˆå˜Ð&8Ñ9Ô9Ð9Ý$ Q¨Ñ*Ô*‰ˆˆ1Ø�B”I×)Ò)¨!Ñ,Ô,¨aÑ/Ñ/ˆØ˜1‘9˜q‘= 4Ñ'ˆØœ	×-Ò-¨h¸Ñ.?Ñ@Ô@Øœ)×/Ò/°Ñ2Ô2ñ3Ø56ñ7ˆå˜Ð&8Ñ9Ô9Ð9Ð9Ð9r   c                 ó4  — |                      ddgddgddgddgg|j        ¬¦  «        }|                      ddgddgddgddgg|j        ¬¦  «        }|                      d	d
gd	dgd	dgddgg|j        ¬¦  «        }t          ||¦  «        \  }}t          ||¦  «        \  }}t          ||¦  «        \  }	}
|
|j                             |¦  «        dz  z  }||z  |	z  |z   }t          ||¦  «         t          ||j                             |¦  «        z  |¦  «         d S )Nr&   ri   éüÿÿÿiúÿÿÿr)   rj   r/   r   gCuRãÎÁ¿g”'œ‚aå?gCuRãÎÁ?gä¯ûT6¨Ù¿gä¯ûT6¨Ù?rp   )r!   r   r?   r@   ÚB_standardizedr   rr   r#   rs   rE   rB   rt   ru   s                r   Ú(test_orthogonal_procrustes_skbio_examplezATestOrthogonalProcrustes.test_orthogonal_procrustes_skbio_example™   sS  € ð" —’˜a ˜W q¨" g°°2¨w¸¸B¸Ð@ÈÌ
�ÑSÔSˆØ—’˜a ˜V a¨ V¨a°¨V°a¸°VÐ<ÀBÄJ�ÑOÔOˆØŸš k°9Ð%=Ø&1°:Ð%>Ø&1°;Ð%?Ø&0°+Ð%>ð%@ð HJÄzð $ñ Sô Sˆõ ˜F BÑ'Ô'‰ˆˆ4Ý˜F BÑ'Ô'‰ˆˆ4Ý$ Q¨Ñ*Ô*‰ˆˆ1Ø�B”I×)Ò)¨!Ñ,Ô,¨aÑ/Ñ/ˆØ˜1‘9˜q‘= 4Ñ'ˆÝ˜ &Ñ)Ô)Ð)Ý˜˜BœI×1Ò1°!Ñ4Ô4Ñ4°nÑEÔEÐEÐEÐEr   c                 ó2  — |                      d¦  «        }t          ||¦  «        \  }}t          ||                      d¦  «        ¦  «         |                      d¦  «        }t          ||¦  «        \  }}t          ||                     d¦  «        ¦  «         d S )N)r   r   )r   r   r   )Úemptyr   r
   Úeye)r!   r   r+   ÚrrB   s        r   Ú
test_emptyz#TestOrthogonalProcrustes.test_empty¸   s†   € Ø�HŠH�VÑÔˆÝ$ Q¨Ñ*Ô*‰ˆˆ1Ý˜˜2Ÿ8š8 FÑ+Ô+Ñ,Ô,Ð,à�HŠH�VÑÔˆÝ$ Q¨Ñ*Ô*‰ˆˆ1Ý˜˜2Ÿ6š6 !™9œ9Ñ%Ô%Ð%Ð%Ð%r   Úshape)©r&   rl   )rl   rl   )rl   r&   c                 ó\  — |\  }}t           j                             d¦  «        }|                     |                     |¦  «        |                     |¦  «        dz  z   ¦  «        }|                     |                     ||f¦  «        |                     ||f¦  «        dz  z   ¦  «        }|j                             |¦  «        \  }}||z  }	t          ||	¦  «        \  }
}t          |
|                     |
¦  «        j	        z  | 
                    ||j        ¬¦  «        d¬¦  «         t          ||z  |	¦  «         |dk    rt          |
|¦  «         |j                             |                     |¦  «        j	        |	z  ¦  «        \  }}}t          ||                     |¦  «        ¦  «         d S )Nl   sIHb$y              ð?rj   g›+¡†›„=rn   rŒ   )r   r   Údefault_rngr   rW   Úqrr   r
   ÚconjrY   rˆ   Ú
complex128ÚsvdÚsum)r!   r‹   r   r3   r4   r"   r   ÚQÚ_r#   rE   rt   rB   s                r   Útest_unitaryz%TestOrthogonalProcrustes.test_unitaryÁ   sp  € ð ‰ˆˆ1ÝŒi×#Ò# LÑ1Ô1ˆØ�JŠJ�s—z’z %Ñ(Ô(¨3¯:ª:°eÑ+<Ô+<¸rÑ+AÑAÑBÔBˆØ�JŠJ�s—z’z 1 a &Ñ)Ô)¨C¯JªJ¸¸1°vÑ,>Ô,>ÀÑ,CÑCÑDÔDˆØŒy�|Š|˜A‰Œ‰ˆˆ1Ø�‰EˆÝ(¨¨AÑ.Ô.‰ˆˆ5Ý˜˜BŸGšG A™JœJœLÑ(¨"¯&ª&°¸"¼-¨&Ñ*HÔ*HÈuÐUÑUÔUÐUÝ˜˜A™˜qÑ!Ô!Ð!Ø�FŠ?ˆ?Ý˜A˜qÑ!Ô!Ð!Ø”)—-’- §¢¨¡
¤
¤¨qÑ 0Ñ1Ô1‰ˆˆ1ˆaÝ˜˜rŸvšv a™yœyÑ)Ô)Ð)Ð)Ð)r   N)Ú__name__Ú
__module__Ú__qualname__r$   r-   r:   rF   r   rS   rf   rv   r�   r…   rŠ   ÚpytestÚmarkÚparametrizer–   r{   r   r   r   r      s   € € € € € ð?ð ?ð ?ðCð Cð Cð-ð -ð -ð/ð /ð /ð ÐÑÔð,ð ,ñ Ôð,ðCð Cð Cð@5ð 5ð 5ð.:ð :ð :ð.Fð Fð Fð>&ð &ð &ð „[×Ò˜WÐ&>Ð&>Ð&>Ñ?Ô?ð*ð *ñ @Ô?ð*ð *ð *r   r   )Ú	itertoolsr   r   Únumpyr   rš   Únumpy.testingr   r   r   Úscipy.linalgr   Úscipy.sparse._sputilsr   Úscipy._lib._array_apir	   r
   Úscipy.conftestr   r   r   r{   r   r   ú<module>r¤      s  ðØ +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à Ð Ð Ð Ø €€€Ø )Ð )Ð )Ð )Ð )Ð )Ø *Ð *Ð *Ð *Ð *Ð *à .Ð .Ð .Ð .Ð .Ð .Ø (Ð (Ð (Ð (Ð (Ð (Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ .Ð .Ð .Ð .Ð .Ð .ðð ð ð ÐÐ(Ñ)Ô)ð*ð *ð *ð *ð *ñ *ô *ñ *Ô)ð*ð *ð *r   