§
    fŠtj   ã                   ó’   — d dl Zd dlmZmZmZ d dlZd dlmZ d dl	m
Z
 d dlmZ  G d„ d¦  «        Zej        j        d„ ¦   «         ZdS )	é    N)Úassert_allcloseÚassert_array_equalÚassert_equal)Údirected_hausdorff)Údistance)Úcheck_random_statec                   ó   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zej                             d
ddej                             d¦  «        g¦  «        d„ ¦   «         Zd„ Zej                             ddgddg ej        d¦  «        dfdgddgddfdgddgej                             d¦  «        dfdgddgej                             d¦  «        dfddgg d¢ddfddgg d¢ej                             d¦  «        dfg¦  «        d„ ¦   «         ZdS )ÚTestHausdorffc                 ó~  — t           j                             d¦  «         t           j                             d¦  «        t           j        z  dz  }t          j        ||t          j        d¦  «        f¦  «        }t          j        |d         ¦  «        |d<   t          j        |d         ¦  «        |d<   t          j        ||t          j        d¦  «        f¦  «        }t          j        |dd …df         ¦  «        dz  |dd …df<   t          j        |dd …df         ¦  «        dz  |dd …df<   t          j        |d	         ¦  «        d
z  |d	<   t          j        |d         ¦  «        d
z  |d<   || _        || _	        t          j
        | j        ddd¬¦  «        | _        t          j
        | j	        ddd¬¦  «        | _        d S )NiÒ  éd   é   ).r   ).é   r   r   g       @©r   r   gffffff
@©r   r   é   é   ©Úaxisé   )ÚnpÚrandomÚseedÚpiÚcolumn_stackÚzerosÚcosÚsinÚpath_1Úpath_2ÚinsertÚ	path_1_4dÚ	path_2_4d)ÚselfÚrandom_anglesÚrandom_columnsÚrandom_columns_2s       ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/spatial/tests/test_hausdorff.pyÚsetup_methodzTestHausdorff.setup_method   sš  € Ý
Œ	�Š�tÑÔÐÝœ	×(Ò(¨Ñ-Ô-µ´Ñ5¸Ñ9ˆÝœØ˜M­2¬8°C©=¬=Ð9ñ;ô ;ˆå!#¤¨°vÔ(>Ñ!?Ô!?ˆ�vÑÝ!#¤¨°vÔ(>Ñ!?Ô!?ˆ�vÑÝœ?Ø˜M­2¬8°C©=¬=Ð9ñ;ô ;Ðå"$¤&Ð)9¸!¸"¸"¸a¸%Ô)@Ñ"AÔ"AÀCÑ"GÐ˜˜˜˜Q˜ÑÝ"$¤&Ð)9¸!¸"¸"¸a¸%Ô)@Ñ"AÔ"AÀCÑ"GÐ˜˜˜˜Q˜Ñå!#¤Ð(8¸Ô(>Ñ!?Ô!?À#Ñ!EÐ˜ÑÝ!#¤Ð(8¸Ô(>Ñ!?Ô!?À#Ñ!EÐ˜ÑØ$ˆŒØ&ˆŒÝœ 4¤;°°1¸1Ð=Ñ=Ô=ˆŒÝœ 4¤;°°2¸AÐ>Ñ>Ô>ˆŒˆˆó    c                 ó–   — t          | j        | j        ¦  «        d         }t          | j        | j        ¦  «        d         }||k    sJ ‚d S )Nr   )r   r   r   )r#   ÚforwardÚreverses      r'   Útest_symmetryzTestHausdorff.test_symmetry!   sK   € õ % T¤[°$´+Ñ>Ô>¸qÔAˆÝ$ T¤[°$´+Ñ>Ô>¸qÔAˆØ˜'Ò!Ð!Ð!Ð!Ð!Ð!r)   c                 óæ   — t          | j        | j        ¦  «        d         }t          t	          j        t          j        | j        | j        ¦  «        d¬¦  «        ¦  «        }t          ||¦  «         d S )Nr   r   r   ©	r   r   r   Úmaxr   Úaminr   Úcdistr   ©r#   ÚactualÚexpecteds      r'   Ú#test_brute_force_comparison_forwardz1TestHausdorff.test_brute_force_comparison_forward)   ói   € õ $ D¤K°´Ñ=Ô=¸aÔ@ˆå•r”w�xœ~¨d¬k¸4¼;ÑGÔGØ$%ð'ñ 'ô 'ñ (ô (ˆå˜ Ñ)Ô)Ð)Ð)Ð)r)   c                 óæ   — t          | j        | j        ¦  «        d         }t          t	          j        t          j        | j        | j        ¦  «        d¬¦  «        ¦  «        }t          ||¦  «         d S ©Nr   r   )	r   r   r   r0   r   r1   r   r2   r   r3   s      r'   Ú#test_brute_force_comparison_reversez1TestHausdorff.test_brute_force_comparison_reverse3   r7   r)   c                 óf   — t          | j        | j        ¦  «        d         }t          |d¦  «         d S )Nr   ç        )r   r   r   )r#   r4   s     r'   Útest_degenerate_casez"TestHausdorff.test_degenerate_case=   s2   € õ $ D¤K°´Ñ=Ô=¸aÔ@ˆÝ˜ Ñ$Ô$Ð$Ð$Ð$r)   c                 ó6  — t          | j        dd d…f         | j        dd d…f         ¦  «        d         }t          t	          j        t          j        | j        dd d…f         | j        dd d…f         ¦  «        d¬¦  «        ¦  «        }t          ||¦  «         d S )N.r   r   r   r   r/   r3   s      r'   Útest_2d_data_forwardz"TestHausdorff.test_2d_data_forwardC   s®   € õ $ D¤K°°R°a°R°Ô$8Ø$(¤K°°R°a°R°Ô$8ñ:ô :Ø:;ô=ˆå•r”w�xœ~¨d¬k¸#¸rÀ¸r¸'Ô.BØ.2¬k¸#¸rÀ¸r¸'Ô.Bñ Dô  Dà$%ð'ñ 'ô 'ñ (ô (ˆõ 	˜ Ñ)Ô)Ð)Ð)Ð)r)   c                 óæ   — t          | j        | j        ¦  «        d         }t          t	          j        t          j        | j        | j        ¦  «        d¬¦  «        ¦  «        }t          ||¦  «         d S r9   )	r   r"   r!   r0   r   r1   r   r2   r   r3   s      r'   Útest_4d_data_reversez"TestHausdorff.test_4d_data_reverseM   si   € õ $ D¤N°D´NÑCÔCÀAÔFˆå•r”w�xœ~¨d¬n¸d¼nÑMÔMØ$%ð'ñ 'ô 'ñ (ô (ˆå˜ Ñ)Ô)Ð)Ð)Ð)r)   c                 óà   — t          j        ddgddgddgddgddgg¦  «        }t          j        ddgddgdd	gd
dgg¦  «        }t          ||¦  «        dd …         }d}t          ||¦  «         d S )Néÿÿÿÿiôÿÿÿr   r   r   é   r   é   r   é
   é	   )r   r   )r   Úarrayr   r   )r#   Úpath_simple_1Úpath_simple_2r4   r5   s        r'   Útest_indiceszTestHausdorff.test_indicesV   s�   € õ œ 2 c (¨A¨a¨5°1°Q°%¸!¸A¸ÀÀ1ÀÐ!FÑGÔGˆÝœ 1 Q %¨!¨A¨°°3°¸"¸Q¸Ð!@ÑAÔAˆÝ# M°=ÑAÔAÀ!À"À"ÔEˆØˆÝ˜6 8Ñ,Ô,Ð,Ð,Ð,r)   c                 óæ   — t          d ¦  «        }|                     ¦   «         }t          | j        | j        ¦  «         t          d ¦  «        }|                     ¦   «         }t          ||¦  «         d S ©N©r   Ú	get_stater   r   r   r   )r#   ÚrsÚold_global_stateÚrs2Únew_global_states        r'   Útest_random_statezTestHausdorff.test_random_state_   sf   € õ   Ñ%Ô%ˆØŸ<š<™>œ>ÐÝ˜4œ;¨¬Ñ4Ô4Ð4Ý  Ñ&Ô&ˆØŸ=š=™?œ?ÐÝÐ%Ð'7Ñ8Ô8Ð8Ð8Ð8r)   r   NiÏE©é±   c                 óè   — t          d ¦  «        }|                     ¦   «         }t          | j        | j        |¦  «         t          d ¦  «        }|                     ¦   «         }t          ||¦  «         d S rM   rN   )r#   r   rP   rQ   rR   rS   s         r'   Útest_random_state_None_intz(TestHausdorff.test_random_state_None_inti   sh   € õ   Ñ%Ô%ˆØŸ<š<™>œ>ÐÝ˜4œ;¨¬°TÑ:Ô:Ð:Ý  Ñ&Ô&ˆØŸ=š=™?œ?ÐÝÐ%Ð'7Ñ8Ô8Ð8Ð8Ð8r)   c                 ó$  — t           j                             d¦  «        }|                     d¦  «        }|                     d¦  «        }d}t          j        t
          |¬¦  «        5  t          ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nl	   »"{`ÍR÷!­Ž ©r   r   )r   r   z'need to have the same number of columns)Úmatch)r   r   Údefault_rngÚpytestÚraisesÚ
ValueErrorr   )r#   ÚrngÚAÚBÚmsgs        r'   Útest_invalid_dimensionsz%TestHausdorff.test_invalid_dimensionst   sÊ   € õ Œi×#Ò#Ð$KÑLÔLˆØ�JŠJ�vÑÔˆØ�JŠJ�vÑÔˆØ8ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	%ð 	%Ý˜q !Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   Á'BÂB	ÂB	zA, B, seed, expectedr   r   r   )r<   r   r   r   ©éûÿÿÿr   )r   r   rd   é*- )r<   r   r   )r<   r   r   c                 óŽ  — t          |||¬¦  «        }t          |d         |d         ¦  «         |}t          |d¦  «        r|j        j        j        }|dk    s|dk    r|dd …         |dd …         k    sJ ‚t          |t          j        j	        ¦  «        s0t          |||¬¦  «        }t          |d         |d         ¦  «         d S d S )N)ÚuÚvr   r   Úbit_generatorr   rf   )rh   ri   r_   )
r   r   Úhasattrrj   Ú	_seed_seqÚentropyÚ
isinstancer   r   ÚRandomState)r#   r`   ra   r   r5   Únum_parallel_threadsr4   Ústarting_seeds           r'   Útest_subsetszTestHausdorff.test_subsets   sà   € õL $ a¨1°4Ð8Ñ8Ô8ˆå˜˜qœ	 8¨A¤;Ñ/Ô/Ð/ØˆÝ�4˜Ñ)Ô)ð 	AØ Ô.Ô8Ô@ˆMà 1Ò$Ð$¨¸Ò(>Ð(>Ø˜!˜"˜"”: ¨!¨"¨"¤Ò-Ð-Ð-Ð-å˜$¥¤	Ô 5Ñ6Ô6ð 	4å'¨!¨q°dÐ;Ñ;Ô;ˆFÝ˜F 1œI x°¤{Ñ3Ô3Ð3Ð3Ð3ð	4ð 	4r)   )Ú__name__Ú
__module__Ú__qualname__r(   r-   r6   r:   r=   r?   rA   rK   rT   r\   ÚmarkÚparametrizer   r   r[   rW   rc   Úint64rr   © r)   r'   r
   r
      s  € € € € € ð?ð ?ð ?ð&"ð "ð "ð*ð *ð *ð*ð *ð *ð%ð %ð %ð*ð *ð *ð*ð *ð *ð-ð -ð -ð9ð 9ð 9ð „[×Ò˜V d¨H°b´i×6KÒ6KÈCÑ6PÔ6PÐ%QÑRÔRð9ð 9ñ SÔRð9ð%ð %ð %ð „[×ÒÐ3à
ˆØ
�ˆØ	ˆŒ�!‰ŒØ	ð	ð ˆØ
�ˆØ	
Ø	ð	ð
 ˆØ
�ˆØ	Œ×	Ò	˜qÑ	!Ô	!Ø	ð	ð ˆØ
�ˆØ	Œ×	Ò	˜qÑ	!Ô	!Ø	ð	ð
 �5Ð	Ø	 Ð	 Ð	 Ø	ð 
ð	ð �5Ð	Ø	 Ð	 Ð	 Ø	Œ×	Ò	˜uÑ	%Ô	%ð 
ð	ð9#6ñ #ô #ðH4ð 4ñI#ô #ðH4ð 4ð 4r)   r
   c                  óÆ  — 	 dd l } n$# t          $ r t          j        d¦  «         Y nw xY w|                      ¦   «         j        dk     rt          j        d¦  «         t          d¦  «        }t          j        |df¬¦  «        }t          j        d¬¦  «        }d	d	g||d
z
  <   t          ||¬¦  «        }t          |d         d¦  «         t          |d
         |d
z
  ¦  «         d S )Nr   z)psutil required to check available memoryl       P z.insufficient memory available to run this testg   ÀZæAr   )ÚshaperY   r   r   )rh   ri   gÀ
 ÆH@)ÚpsutilÚModuleNotFoundErrorr\   ÚskipÚvirtual_memoryÚ	availableÚintr   r   r   r   )r|   ÚsizeÚarr1Úarr2r4   s        r'   Útest_massive_arr_overflowr…   µ   sý   € ð
AØˆˆˆˆøÝð Að Að AÝŒÐ?Ñ@Ô@Ð@Ð@Ð@ðAøøøà×ÒÑÔÔ(¨8Ò3Ð3åŒÐDÑEÔEÐEÝˆs‰8Œ8€DÝŒ8˜4 ˜)Ð$Ñ$Ô$€DÝŒ8˜&Ð!Ñ!Ô!€DØ˜�V€Dˆ�‰�NÝ $¨$Ð/Ñ/Ô/€FÝ�F˜1”IÐ1Ñ2Ô2Ð2Ý�F˜1”I˜t a™xÑ(Ô(Ð(Ð(Ð(s   ‚ ‡(§()Únumpyr   Únumpy.testingr   r   r   r\   Úscipy.spatial.distancer   Úscipy.spatialr   Úscipy._lib._utilr   r
   rv   Úxslowr…   ry   r)   r'   ú<module>rŒ      sà   ðØ Ð Ð Ð ð)ð )ð )ð )ð )ð )ð )ð )ð )ð )ð €€€Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø "Ð "Ð "Ð "Ð "Ð "Ø /Ð /Ð /Ð /Ð /Ð /ðg4ð g4ð g4ð g4ð g4ñ g4ô g4ð g4ðT „Ôð)ð )ñ Ôð)ð )ð )r)   