Ë
    âQ(h¤8  ã                   ó¾   — d dl Zd dlZd dlmZmZmZmZ d dlZd dlm	Z
 d dlmZmZ d dlmZ d dlmZ d dlmZ dZd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Z G d„ d«      Zy)é    N)Úassert_equalÚassert_almost_equalÚassert_array_equalÚassert_array_almost_equal)Úraises)ÚSphericalVoronoiÚdistance)Úlinear_sum_assignment)Úgolden)Úgammag»½×Ùß|Û=c                  óD   — t        j                  g d¢g d¢g d¢g d¢g«      S )N©é   r   r   )r   éÿÿÿÿr   )r   r   r   )r   r   r   ©ÚnpÚarray© ó    úh/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/spatial/tests/test_spherical_voronoi.pyÚ_generate_tetrahedronr      s   € Ü�8‰8’Y¢ª[º+ÐFÓGÐGr   c                  ól   — t        j                  t        t        j                  ddgd¬«      «      «      S )Nr   ç      ð?é   ©Úrepeat)r   r   ÚlistÚ	itertoolsÚproductr   r   r   Ú_generate_cuber       s'   € Ü�8‰8”Dœ×*Ñ*¨B°¨8¸AÔ>Ó?Ó@Ð@r   c            	      óP   — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g«      S )N)r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r   r   r   r   Ú_generate_octahedronr"      s%   € Ü�8‰8’Z¢ªZÚ¢ªZð9ó :ð :r   c            	      óF  — t        «       } t        j                  dt         dt        z  gdt         dt        z  gdt        ­dt        z  gdt        ­dt        z  gg«      }t        j                  dt        z  dt         gdt        z  dt         gdt        z  dt        ­gdt        z  dt        ­gg«      }t        j                  t         dt        z  dgt         dt        z  dgt        ­dt        z  dgt        ­dt        z  dgg«      }t        j                  | |||f«      S )Nr   r   r   )r    r   r   ÚphiÚconcatenate)Úx1Úx2Úx3Úx4s       r   Ú_generate_dodecahedronr*      s  € ä	Ó	€BÜ	�‰�Aœ�t˜R¤#™XÐ&Øœ�t˜R¤#™XÐ&Øœ�t˜R¤#™XÐ&Øœ�t˜R¤#™XÐ&ð(ó 
)€Bô 
�‰�Bœ‘H˜a¤# Ð&Øœ‘H˜a¤# Ð&Øœ‘H˜a¤# Ð&Øœ‘H˜a¤# Ð&ð(ó 
)€Bô 
�‰”S�D˜"œs™( AÐ&Ü�D˜"œs™( AÐ&Ü�D˜"œs™( AÐ&Ü�D˜"œs™( AÐ&ð(ó 
)€Bô �>‰>˜2˜r 2 rÐ*Ó+Ð+r   c            
      ó  — t        j                  ddt         gddt        ­gddt         gddt        ­gg«      } t        j                  t	        d«      D �cg c]  }t        j
                  | |d¬«      ‘Œ c}«      S c c}w )Nr   r   r   r   ©Úaxis)r   r   r$   r%   ÚrangeÚroll)ÚxÚis     r   Ú_generate_icosahedronr2   1   sp   € Ü
�‰�1�bœ3˜$�-Ø�bœ3˜$�-Ø�bœ3˜$�-Ø�bœ3˜$�-ð!ó 	"€Aô �>‰>¼%À»(ÖC°Qœ2Ÿ7™7 1 a¨aÖ0ÒCÓDÐDùÒCs   ÁA<c                 ó4  — g d¢}g d¢}| |vr| |vrt        d«      ‚| |v r†|j                  | «      dz   }t        j                  ddt        j                  z  |d¬«      }t        j
                  t        j                  |«      t        j                  |«      g«      j                  }nO| d	k(  rt        «       }n?| d
k(  rt        «       }n/| dk(  rt        «       }n| dk(  rt        «       }n| dk(  r
t        «       }t        j                  j                  |dd¬«      z  S )N)
ÚtriangleÚsquareÚpentagonÚhexagonÚheptagonÚoctagonÚnonagonÚdecagonÚ	undecagonÚ	dodecagon)ÚtetrahedronÚcubeÚ
octahedronÚdodecahedronÚicosahedronzunrecognized polytoper   r   é   F)Úendpointr>   r?   r@   rA   rB   r   T©r-   Úkeepdims)Ú
ValueErrorÚindexr   ÚlinspaceÚpiÚvstackÚcosÚsinÚTr   r    r"   r*   r2   ÚlinalgÚnorm)ÚnameÚpolygonsÚ	polyhedraÚnÚthetasÚps         r   Ú_generate_polytoperW   9   sù   € òK€Hò €Ià�8Ñ ¨IÑ 5ÜÐ0Ó1Ð1àˆxÑØ�N‰N˜4Ó  1Ñ$ˆÜ—‘˜Q ¤B§E¡E¡	¨1°uÔ=ˆÜ�I‰I”r—v‘v˜f“~¤r§v¡v¨f£~Ð6Ó7×9Ñ9‰Ø	�Ò	Ü!Ó#‰Ø	�ŠÜÓ‰Ø	�Ò	Ü Ó"‰Ø	�Ò	Ü"Ó$‰Ø	�Ò	Ü!Ó#ˆàŒr�y‰y�~‰~˜a a°$ˆ~Ó7Ñ7Ð7r   c                 ód   — dt         j                  | dz  z  z  t        | dz  «      z  || dz
  z  z  S )NrC   r   )r   rJ   r   )ÚdimÚradiuss     r   Ú_hypersphere_arear[   S   s5   € àŒr�u‰u�s˜Q‘wÑÑ¤%¨¨a©£.Ñ0°6¸CÀ!¹GÑ3DÑDÐDr   c                 ó´   — t         j                  j                  |¬«      }|j                  | |«      }|t         j                  j                  |dd¬«      z  }|S )N©Úseedr   TrE   )r   ÚrandomÚRandomStateÚrandnrO   rP   )rT   rY   r^   ÚrngÚpointss        r   Ú_sample_sphererd   X   sK   € ä
�)‰)×
Ñ
 TÐ
Ó
*€CØ�Y‰Y�q˜#Ó€FØ
Œb�i‰i�n‰n˜V¨!°dˆnÓ;Ñ;€FØ€Mr   c            	       óè  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zej"                  j%                  d edd«      «      ej"                  j%                  dddg«      d„ «       «       Zej"                  j%                  dg d¢«      ej"                  j%                  d edd«      «      ej"                  j%                  dddg«      d„ «       «       «       Zej"                  j%                  d edd«      «      d„ «       Zej"                  j%                  d edd«      «      d„ «       Zej"                  j%                  d edd«      «      d„ «       Zej"                  j%                  dddg«      ej"                  j%                  dddg«      ej"                  j%                  dg d¢«      ej"                  j%                  dddg«      ej"                  j%                  d ddg«      d!„ «       «       «       «       «       Zej"                  j%                  d"g d#¢«      d$„ «       Zd%„ Zej"                  j%                  dd&d'g«      ej"                  j%                  d(g d)¢«      d*„ «       «       Zd+„ Zy,)-ÚTestSphericalVoronoic                 óh   — t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g«      | _        y )	N)g¿Å7ÒAé¿g4ç�Q¦êÄ¿gÇMì%¶ðâ?)gÜavcå¿gåÀ£t†uç?gçc©»ÓÀ?)g¯X&p©ÒÔ?gÍ|¤¶—í¿gZ®
BÉ¿)g�-ìåNÛì¿gQåta£¿g;º[£/ŽÛ¿)g|¼-äSøæ?g¶lÆÌ²åå?g©pÀ?)g“äw¢½î¿gŒ—4gùÎ?gÝ†¤XføÂ¿)gC†kç?gl
à=r1Ì¿gt¯8A@£ä¿)gº9Kå—é?gÍ¡wð4uá?g¢ÿ’ŠÐ?)r   r   rc   ©Úselfs    r   Úsetup_methodz!TestSphericalVoronoi.setup_methodb   s/   € Ü—h‘hÚ2Ú1Ú2Ú3Ú0Ú2Ú1Ú0ð 2ó 	
ˆ�r   c                 ór  — t        j                  g d¢«      }d}t        | j                  «      }t        | j                  |z  |«      }t        | j                  |z   |¬«      }t        | j                  |z  |z   ||«      }t	        |j
                  t        j                  g d¢«      «       t        |j                  d«       t	        |j
                  t        j                  g d¢«      «       t        |j                  d«       t	        |j
                  |«       t        |j                  d«       t	        |j
                  |«       t        |j                  |«       t        t        | j                  «      «      }t	        |j
                  t        j                  g d¢«      «       t        |j                  d«       y )N©r   rC   r   rC   ©Úcenter)r   r   r   r   )	r   r   r   rc   r   rn   r   rZ   Ú
memoryview)ri   rn   rZ   Ús1Ús2Ús3Ús4Ús5s           r   Útest_constructorz%TestSphericalVoronoi.test_constructorn   s'  € Ü—‘š)Ó$ˆØˆÜ˜dŸk™kÓ*ˆô ˜dŸk™k¨FÑ2°FÓ;ˆÜ˜dŸk™k¨FÑ2¸6ÔBˆÜ˜dŸk™k¨FÑ2°VÑ;¸VÀVÓLˆÜ˜2Ÿ9™9¤b§h¡hªyÓ&9Ô:Ü�R—Y‘Y Ô"Ü˜2Ÿ9™9¤b§h¡hªyÓ&9Ô:Ü�R—Y‘Y Ô"Ü˜2Ÿ9™9 fÔ-Ü�R—Y‘Y Ô"Ü˜2Ÿ9™9 fÔ-Ü�R—Y‘Y Ô'ô œj¨¯©Ó5Ó6ˆÜ˜2Ÿ9™9¤b§h¡hªyÓ&9Ô:Ü�R—Y‘Y Õ"r   c                 ó  — t        | j                  «      }t        j                  g d¢«      }t        | j                  |z   |¬«      }t	        |j
                  |j
                  «       t        |j                  |z   |j                  «       y )Nr   rm   )r   rc   r   r   r   Úregionsr   Úvertices)ri   Ú	sv_originrn   Úsv_translateds       r   Ú,test_vertices_regions_translation_invariancezATestSphericalVoronoi.test_vertices_regions_translation_invariance†   sg   € Ü$ T§[¡[Ó1ˆ	Ü—‘š)Ó$ˆÜ(¨¯©°vÑ)=ÀfÔMˆÜ�Y×&Ñ&¨×(=Ñ(=Ô>Ü! )×"4Ñ"4°vÑ"=Ø"/×"8Ñ"8õ	:r   c                 óæ   — t        | j                  «      }t        | j                  dz  d«      }t        |j                  |j                  «       t	        |j
                  dz  |j
                  «       y )NrC   )r   rc   r   rw   r   rx   )ri   Úsv_unitÚ	sv_scaleds      r   Ú(test_vertices_regions_scaling_invariancez=TestSphericalVoronoi.test_vertices_regions_scaling_invarianceŽ   sV   € Ü" 4§;¡;Ó/ˆÜ$ T§[¡[°1¡_°aÓ8ˆ	Ü�W—_‘_ i×&7Ñ&7Ô8Ü! '×"2Ñ"2°QÑ"6Ø"+×"4Ñ"4õ	6r   c                 ó’   — t        j                  t        d¬«      5  t        | j                  d ¬«       d d d «       y # 1 sw Y   y xY w)Nz`radius` is `None`. *©Úmatch©rZ   )Úpytestr   rG   r   rc   rh   s    r   Útest_old_radius_api_errorz.TestSphericalVoronoi.test_old_radius_api_error•   s4   € Ü�]‰]œ:Ð-DÔEñ 	7Ü˜TŸ[™[°Õ6÷	7÷ 	7ñ 	7ús	   œ=½Ac                 ó¶   — t        | j                  «      }|j                  }|j                  «        t	        t        |j                  «      t        |«      «       y ©N)r   rc   rw   Úsort_vertices_of_regionsr   Úsorted)ri   ÚsvÚunsorted_regionss      r   Útest_sort_vertices_of_regionsz2TestSphericalVoronoi.test_sort_vertices_of_regions™   s?   € Ü˜dŸk™kÓ*ˆØŸ:™:ÐØ
×#Ñ#Ô%Ü”V˜BŸJ™JÓ'¬Ð0@Ó)AÕBr   c                 óP  — t        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g«      }t        t        j                  t        |«      Ž «      }t	        | j
                  «      }|j                  «        t        t        j                  t        |j                  «      Ž «      }t        ||«       y )	N)r   é   é   rC   r   )rC   r   é
   é   é   é   )r   rŽ   é   r   )r”   r’   r“   r�   rŽ   )é	   r‘   r�   )rC   r“   r�   )r   r”   r’   r‘   r•   )r   r   r�   r•   r   )	r‰   r   r   Úchainr   rc   rˆ   rw   r   )ri   ÚexpectedrŠ   Úactuals       r   Ú'test_sort_vertices_of_regions_flattenedz<TestSphericalVoronoi.test_sort_vertices_of_regions_flattenedŸ   s€   € Üš?Ò,@Â,Ú*ªKºÚ+Ò-=ð?ó @ˆô œ	Ÿ™¬°Ó)9Ð:Ó;ˆÜ˜dŸk™kÓ*ˆØ
×#Ñ#Ô%Ü”i—o‘o¤v¨b¯j©jÓ'9Ð:Ó;ˆÜ˜6 8Õ,r   c                 óâ   — t        j                  g d¢g d¢g d¢g d¢g d¢g«      }t        j                  t        d¬«      5  t        |«      }|j                  «        d d d «       y # 1 sw Y   y xY w)N)r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )ç      à?r›   r›   r›   zthree-dimensionalr�   )r   r   r„   r   Ú	TypeErrorr   rˆ   )ri   rc   rŠ   s      r   Ú,test_sort_vertices_of_regions_dimensionalityzATestSphericalVoronoi.test_sort_vertices_of_regions_dimensionality©   s_   € Ü—‘š<Ú'Ú'Ú'Ú/ð	1ó 2ˆô
 �]‰]œ9Ð,?Ô@ñ 	*Ü! &Ó)ˆBØ×'Ñ'Ô)÷	*÷ 	*ñ 	*ús   Á A%Á%A.c                 ó¶   — t        | j                  «      }| j                  j                  d   dz  dz
  }|j                  j                  d   }t	        ||«       y )Nr   rC   r”   )r   rc   Úshaperx   r   )ri   rŠ   r—   r˜   s       r   Útest_num_verticesz&TestSphericalVoronoi.test_num_vertices³   sN   € ô ˜dŸk™kÓ*ˆØ—;‘;×$Ñ$ QÑ'¨!Ñ+¨aÑ/ˆØ—‘×"Ñ" 1Ñ%ˆÜ�V˜XÕ&r   c           	      ón  — t        | j                  «      }|j                  D ]‘  }t        j                  |j                  t        j                  |g«      «      }t        j                  t        |«      dd «      }t        |d   |d   dt        |«      «       t        |d   |d   dt        |«      «       Œ“ y )Nr   r   r   r“   rC   )
r   rc   rx   r	   Úcdistr   r   r‰   r   Ústr)ri   rŠ   ÚvertexÚ	distancesÚclosests        r   Útest_voronoi_circlesz)TestSphericalVoronoi.test_voronoi_circles¾   s’   € Ü˜dŸk™kÓ*ˆØ—k‘kò 	HˆFÜ Ÿ™ r§y¡y´"·(±(¸F¸8Ó2DÓEˆIÜ—h‘hœv iÓ0°°1Ð5Ó6ˆGÜ ¨¡
¨G°A©J¸¼3¸v»;ÔGÜ ¨¡
¨G°A©J¸¼3¸v»;ÕGñ		Hr   c                 óÖ   — t        j                  | j                  | j                  f«      | _        t	        t
        «      5  t        | j                  «       d d d «       y # 1 sw Y   y xY wr‡   )r   r%   rc   Ú
degenerateÚassert_raisesrG   r   rh   s    r   Útest_duplicate_point_handlingz2TestSphericalVoronoi.test_duplicate_point_handlingÆ   sJ   € ô Ÿ.™.¨$¯+©+°t·{±{Ð)CÓDˆŒÜœ:Ó&ñ 	.Ü˜TŸ_™_Ô-÷	.÷ 	.ñ 	.ús   Á AÁA(c                 óz   — t        t        «      5  t        | j                  d¬«       d d d «       y # 1 sw Y   y xY w)Ng\�Âõ(\ï?rƒ   ©rª   rG   r   rc   rh   s    r   Útest_incorrect_radius_handlingz3TestSphericalVoronoi.test_incorrect_radius_handlingÍ   s/   € ô œ:Ó&ñ 	7Ü˜TŸ[™[°Õ6÷	7÷ 	7ñ 	7ús   �1±:c                 ó~   — t        t        «      5  t        | j                  g d¢¬«       d d d «       y # 1 sw Y   y xY w)N)gš™™™™™¹?r   r   rm   r­   rh   s    r   Útest_incorrect_center_handlingz3TestSphericalVoronoi.test_incorrect_center_handlingÓ   s/   € ô œ:Ó&ñ 	>Ü˜TŸ[™[²Õ=÷	>÷ 	>ñ 	>ús   �3³<rY   rC   rŽ   ÚshiftFTc                 óô  — d}t        ||d¬«      }t        j                  |d d …df   «      |d d …df<   t        j                  |«      dz   |z  }t	        ||z   |¬«      }t        j
                  d|j                  |z
  |j                  |j                  d d …df      |z
  «      }t        j                  t        j                  |dd«      «      }t        j                  |«      t        j                  dz  kD  sJ ‚y )	Nr�   r   r]   r   rm   zij,ij->ir   rC   )rd   r   ÚabsÚaranger   Úeinsumrx   rc   Ú
_simplicesÚarccosÚclipÚmaxrJ   )	ri   rY   r±   rT   rc   rn   rŠ   ÚdotsÚcircumradiis	            r   Útest_single_hemisphere_handlingz4TestSphericalVoronoi.test_single_hemisphere_handlingÙ   sÐ   € ð ˆÜ  3¨QÔ/ˆÜ—v‘v˜f¢Q¨ T™lÓ+ˆŠq�!ˆt‰Ü—)‘)˜C“. 1Ñ$¨Ñ-ˆÜ˜f v™o°fÔ=ˆÜ�y‰y˜ R§[¡[°6Ñ%9Ø%'§Y¡Y¨r¯}©}ºQÀ¸TÑ/BÑ%CÀfÑ%LóNˆä—i‘i¤§¡¨¨b°!Ó 4Ó5ˆÜ�v‰v�kÓ"¤R§U¡U¨Q¡YÒ.Ð.Ñ.r   rT   )r   rC   r�   c                 ó4  — t        j                  |«      dz   |z  }t        ||dz
  d¬«      }t        j                  |t        j                  |df«      g«      }t        j                  t        d¬«      5  t        ||z   |¬«       d d d «       y # 1 sw Y   y xY w)Nr   r   r]   zRank of input pointsr�   rm   )	r   r´   rd   ÚhstackÚzerosr„   r   rG   r   )ri   rT   rY   r±   rn   rc   s         r   Útest_rank_deficientz(TestSphericalVoronoi.test_rank_deficientæ   s   € ô —)‘)˜C“. 1Ñ$¨Ñ-ˆÜ  3¨¡7°Ô3ˆÜ—‘˜F¤B§H¡H¨a°¨VÓ$4Ð5Ó6ˆÜ�]‰]œ:Ð-CÔDñ 	=Ü˜V f™_°VÕ<÷	=÷ 	=ñ 	=ús   Á4BÂBc           	      ó´  — d}t        ||d¬«      }t        |«      }|j                  j                  d   |k(  sJ ‚t	        |j
                  «      |k(  sJ ‚g }t        j                  |j                  «      }t        d|dz   «      D ]�  }g }t        j                  t        |«      |«      D ]#  }	|j                  |d d …t        |	«      f   «       Œ% t        j                  t        j                  |«      d¬«      }|j                  t	        |«      «       Œ� dd|dz
  z  z   }
t!        t#        |«      D ��cg c]  \  }}d|z  |z  ‘Œ c}}«      }|
|k(  sJ ‚y c c}}w )Néd   r   r]   r   r,   r   )rd   r   rx   rŸ   Úlenrw   r   Úsortr¶   r.   r   ÚcombinationsÚappendr   Úuniquer%   ÚsumÚ	enumerate)ri   rY   rT   rc   rŠ   Úcell_countsÚ	simplicesr1   ÚcellsÚindicesÚexpected_eulerÚeÚactual_eulers                r   Útest_higher_dimensionsz+TestSphericalVoronoi.test_higher_dimensionsð   s=  € àˆÜ  3¨QÔ/ˆÜ˜fÓ%ˆØ�{‰{× Ñ  Ñ# sÒ*Ð*Ð*Ü�2—:‘:‹ !Ò#Ð#Ð#ð ˆÜ—G‘G˜BŸM™MÓ*ˆ	Ü�q˜# ™'Ó"ò 	+ˆAØˆEÜ$×1Ñ1´%¸³*¸aÓ@ò :�Ø—‘˜Y¢q¬$¨w«-Ð'7Ñ8Õ9ð:ä—I‘IœbŸn™n¨UÓ3¸!Ô<ˆEØ×Ñœs 5›zÕ*ð	+ð ˜b C¨¡E™]Ñ*ˆÜ´I¸kÓ4J×K©D¨A¨q˜R !™G a›KÓKÓLˆØ Ò-Ð-Ñ-ùó Ls   Ä2E
c           	      óp  — t        j                  t        j                  |«       t        j                  |«      f«      }t        |«      }t	        |j
                  D �cg c]  }t        |«      d|dz
  z  k(  ‘Œ c}«      sJ ‚t        j                  t        t        j                  ddg|¬«      «      «      }|j                  t         j                  «      t        j                  |«      z  }t        j                  |j                   |«      }t#        |«      }||   j%                  «       t&        k  sJ ‚y c c}w )NrC   r   r   r   )r   r%   Úeyer   Úallrw   rÃ   rK   r   r   r   ÚastypeÚfloat64Úsqrtr	   r¢   rx   r
   rÈ   ÚTOL)ri   rY   rc   rŠ   rÏ   r—   ÚdistÚress           r   Útest_cross_polytope_regionsz0TestSphericalVoronoi.test_cross_polytope_regions  sä   € ô —‘¤"§&¡&¨£+ ¬r¯v©v°c«{Ð ;Ó<ˆÜ˜fÓ%ˆÜ°B·J±JÖ?¨q”C˜“F˜a #¨¡'™lÓ*Ò?Ô@Ð@Ð@ô —9‘9œT¤)×"3Ñ"3°R¸°GÀCÔ"HÓIÓJˆØ—?‘?¤2§:¡:Ó.´·±¸³Ñ=ˆô �~‰~˜bŸk™k¨8Ó4ˆÜ# DÓ)ˆØ�C‰y�}‰}‹¤Ò$Ð$Ñ$ùò @s   ÁD3c                 óø  — t        j                  t        t        j                  ddg|¬«      «      «      }|j                  t         j                  «      t        j                  |«      z  }t        |«      }t        j                  t        j                  |«       t        j                  |«      f«      }t        j                  |j                  |«      }t        |«      }||   j                  «       t         k  sJ ‚y )Nr   r   r   )r   rK   r   r   r   rÕ   rÖ   r×   r   r%   rÓ   r	   r¢   rx   r
   rÈ   rØ   )ri   rY   rc   rŠ   r—   rÙ   rÚ   s          r   Útest_hypercube_regionsz+TestSphericalVoronoi.test_hypercube_regions  s°   € ô —‘œ4¤	× 1Ñ 1°2°q°'À#Ô FÓGÓHˆØ—‘œrŸz™zÓ*¬R¯W©W°S«\Ñ9ˆÜ˜fÓ%ˆô —>‘>¤B§F¡F¨3£K <´·±¸³Ð"=Ó>ˆô �~‰~˜bŸk™k¨8Ó4ˆÜ# DÓ)ˆØ�C‰y�}‰}‹¤Ò$Ð$Ñ$r   r�   iô  r   rZ   )r›   r   rC   Úsingle_hemispherec                 ó4  — t        ||d¬«      }|r#t        j                  |d d …df   «      |d d …df<   t        j                  |«      dz   |z  }||z  |z   }t	        |||¬«      }|j                  «       }	t        |	j                  «       t        ||«      «       y )Nr   r]   r   ©rZ   rn   )	rd   r   r³   r´   r   Úcalculate_areasr   rÈ   r[   )
ri   rT   rY   rZ   r±   rÞ   rc   rn   rŠ   Úareass
             r   Útest_area_reconstitutionz-TestSphericalVoronoi.test_area_reconstitution*  sŽ   € ô    3¨QÔ/ˆñ ÜŸ6™6 &ª¨A¨¡,Ó/ˆF’1�a�4‰Lä—)‘)˜C“. 1Ñ$¨Ñ-ˆØ˜&‘ 6Ñ)ˆä˜f¨V¸FÔCˆØ×"Ñ"Ó$ˆÜ˜EŸI™I›KÔ):¸3ÀÓ)GÕHr   Úpoly)r4   r=   r>   r?   r@   rA   rB   c                 ó    — t        |«      }|j                  \  }}t        |«      }|j                  «       }t	        |t        |d«      |z  «       y )Nr   )rW   rŸ   r   rá   r   r[   )ri   rä   rc   rT   rY   rŠ   râ   s          r   Útest_equal_area_reconstitutionz3TestSphericalVoronoi.test_equal_area_reconstitution>  sJ   € ô $ DÓ)ˆØ—‘‰ˆˆ3Ü˜fÓ%ˆØ×"Ñ"Ó$ˆÜ˜EÔ#4°S¸!Ó#<¸qÑ#@ÕAr   c                 ó  — d}t        j                  t        j                  |«       t        j                  |«      f«      }t        |«      }t	        j
                  t        d¬«      5  |j                  «        d d d «       y # 1 sw Y   y xY w)Nr”   zOnly supportedr�   )r   r%   rÓ   r   r„   r   rœ   rá   )ri   rY   rc   rŠ   s       r   Útest_area_unsupported_dimensionz4TestSphericalVoronoi.test_area_unsupported_dimensionH  sf   € ØˆÜ—‘¤"§&¡&¨£+ ¬r¯v©v°c«{Ð ;Ó<ˆÜ˜fÓ%ˆÜ�]‰]œ9Ð,<Ô=ñ 	!Ø×ÑÔ ÷	!÷ 	!ñ 	!ús   Á'BÂB
r   r   rn   )Nrl   )r   g       @g      @c                 óp  — || j                   z  }|�||z  }t        |||¬«      }|j                   j                  t        j                  t        j                  «      u sJ ‚|j
                  j                  t        j                  t        j                  «      u sJ ‚t        |j                  t        «      sJ ‚y )Nrà   )	rc   r   Údtyper   rÖ   rn   Ú
isinstancerZ   Úfloat)ri   rZ   rn   rc   rŠ   s        r   Útest_attribute_typesz)TestSphericalVoronoi.test_attribute_typesO  sŠ   € ð ˜$Ÿ+™+Ñ%ˆØÐØ�fÑˆFä˜f¨V¸FÔCˆØ�y‰y�‰¤"§(¡(¬2¯:©:Ó"6Ñ6Ð6Ð6Ø�y‰y�‰¤"§(¡(¬2¯:©:Ó"6Ñ6Ð6Ð6Ü˜"Ÿ)™)¤UÔ+Ð+Ñ+r   c                 ób  — t        | j                  «      }t        |j                  d   d   «      }|j                  D ]  }t	        |t
        «      rŒJ ‚ |j                  «        t	        |j                  d   d   |«      sJ ‚|j                  «        t	        |j                  d   d   |«      sJ ‚y )Nr   )r   rc   Útyperw   rë   r   rˆ   )ri   rŠ   rê   Úregions       r   Útest_region_typesz&TestSphericalVoronoi.test_region_types[  sž   € ô ˜dŸk™kÓ*ˆÜ�R—Z‘Z ‘] 1Ñ%Ó&ˆà—j‘jò 	,ˆFÜ˜f¤dÕ+Ð+Ð+ð	,à
×#Ñ#Ô%Ü˜"Ÿ*™* Q™-¨Ñ*¨EÔ2Ð2Ð2Ø
×#Ñ#Ô%Ü˜"Ÿ*™* Q™-¨Ñ*¨EÔ2Ð2Ñ2r   N)Ú__name__Ú
__module__Ú__qualname__rj   ru   r{   r   r…   rŒ   r™   r�   r    r§   r«   r®   r°   r„   ÚmarkÚparametrizer.   r¼   rÀ   rÑ   rÛ   rÝ   rã   ræ   rè   rí   rñ   r   r   r   rf   rf   `   s‰  „ ò

ò#ò0:ò6ò7òCò-ò*ò	'òHò.ò7ò>ð ‡[�[×Ñ˜U¡E¨!¨Q£KÓ0Ø‡[�[×Ñ˜W u¨d mÓ4ñ	/ó 5ó 1ð	/ð ‡[�[×Ñ˜S¢*Ó-Ø‡[�[×Ñ˜U¡E¨!¨Q£KÓ0Ø‡[�[×Ñ˜W u¨d mÓ4ñ=ó 5ó 1ó .ð=ð ‡[�[×Ñ˜U¡E¨!¨Q£KÓ0ñ.ó 1ð.ð( ‡[�[×Ñ˜U¡E¨!¨Q£KÓ0ñ%ó 1ð%ð$ ‡[�[×Ñ˜U¡E¨!¨Q£KÓ0ñ%ó 1ð%ð" ‡[�[×Ñ˜S 2 s )Ó,Ø‡[�[×Ñ˜U Q¨ FÓ+Ø‡[�[×Ñ˜X¢{Ó3Ø‡[�[×Ñ˜W u¨d mÓ4Ø‡[�[×ÑÐ0°5¸$°-Ó@ñIó Aó 5ó 4ó ,ó -ð
Ið ‡[�[×Ñ˜Vò &Eó FñBóFðBò!ð ‡[�[×Ñ˜X¨¨2 wÓ/Ø‡[�[×Ñ˜XÒ'FÓGñ,ó Hó 0ð,ó3r   rf   r‡   )Únumpyr   r   Únumpy.testingr   r   r   r   r„   r   rª   Úscipy.spatialr   r	   Úscipy.optimizer
   Úscipy.constantsr   r$   Úscipy.specialr   rØ   r   r    r"   r*   r2   rW   r[   rd   rf   r   r   r   ú<module>rý      sh   ðÛ Û ÷6ó 6ó Ý *ß 4Ý 0Ý )Ý ð €òHòAò:ò
,ò$Eò8ò4Eó
÷F3ò F3r   