403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.37
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/scipy/spatial/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/scipy/spatial/tests/__pycache__/test_qhull.cpython-311.pyc
�

d�cs��
��ddlZddlZddlZddlmZmZmZmZm	Z	ddl
Z
ddl
mZddl
mcmZddlmZddlmZddlZd�Zd�Zefd�Zej�d	��gd
�Zejgddg�ddg�dd
g�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�dd
g�ddg�ddg�ddg�ddg�ddg�ddg�d
dg�d
dg�d
d
g�d
dg�d
dg�d
dg�d
dg�d
dg�d
dg�dd
g�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�dd
g�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�dd
g�ddg�ddg�ddg�ddg�ddg�dd
g�ddg�ddg�ddg�ddg�ddg�ddg�dd
g�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�dd
g�ddg�ddg�ddg�ddg�ddg�ddg���Zejddgddgddgddgddgddgddejej ��j!z
gddgddgg	��Z"ej�#dd��ejddgddgddgddgg��gZ$e$ej�#dd��dejddgddgddgddgg��zgzZ%ej&e��ej�#dd��ej�#dd��ej�#dd��ej�#dd��ej�#dd��ej�#dd��ej�#dd��ee"d �
Z'e$dfe%dfd!�Z(d"�Z)e'D]Z*d#D]Z+e)e*e+����Gd$�d%��Z,Gd&�d'��Z-Gd(�d)��Z.Gd*�d+��Z/d,�Z0Gd-�d.��Z1Gd/�d0��Z2Gd1�d2��Z3dS)3�N)�assert_equal�assert_almost_equal�assert_�assert_allclose�assert_array_equal)�raises)�cKDTree)�Voronoic�:�tt|����S�N��tuple�sorted��xs �@/usr/lib/python3/dist-packages/scipy/spatial/tests/test_qhull.py�sorted_tuplers����������c�D�ttj|����Sr)r�np�uniquers r�sorted_unique_tuplers�����1�����rc��t|tj��r|���}t|tj��r|���}t	t||����}|���t	t||����}|���t||��dSr)�
isinstancer�ndarray�tolist�list�map�sortr)�a�b�tpls   r�!assert_unordered_tuple_list_equalr#s����!�R�Z� � ��
�H�H�J�J���!�R�Z� � ��
�H�H�J�J���S��a�[�[���A��F�F�H�H�H��S��a�[�[���A��F�F�H�H�H���A�����r��)�rr�r��r'r�r'r'���?r+)r+g�?g��Q�	�g�z�G��g��Q���gH�z�G��gH�z�G�?g��Q��?g�z�G�@g��Q�	@���r'�
���?�������)
�some-pointsz	random-2dz	random-3dz	random-4dz	random-5dz	random-6dz	random-7dz	random-8d�pathological-1�pathological-2)zbug-2850z
bug-2850-2c�>�t|}|jd}d}|dz}|dkrd}n|dkrd}|d|�g}t|t|��|��D]"}|�||||z����#d||fz}|t
vsJ�||ft
|<dS)	z<
    Generate incremental datasets from basic data sets
    r'Nr/r8zQJ Ppr9�z%s-chunk-%d)�DATASETS�shape�range�len�append�INCREMENTAL_DATASETS)	�name�	chunksize�points�ndim�opts�nmin�chunks�j�new_names	         r�
_add_inc_datarLas����d�^�F��<��?�D��D��!�8�D��}������	
�!�	!�	!����U�d�U�m�_�F�
�4��V���i�
0�
0�-�-���
�
�f�Q�q��{�]�+�,�,�,�,���i�0�0�H��/�/�/�/�/�&,�d�^���"�"�"r)r'r3�c��eZdZd�Zd�ZdS)�
Test_Qhullc��tjdtjddgddgddgddgddgg��d��}t	j|�����}tjdtjddgddgddgddgg��d��}t	j|�����}t	j|�����}|���t	j|�����}|���tt|j��tt|j��t|d|d��t|d|dt���t|d	|d	t���t|d
|d
t���t|d|d��t|d|d��t|d|dt���t|d	|d	t���t|d
|d
t���t|d|d��|���tt|j��|���tt|j��dS)N�vrr'��?r+sQz�@�r"r/r2r3)�qhull�_Qhullr�array�copy�deepcopy�get_voronoi_diagram�close�
assert_raises�RuntimeErrorrr#rr)�selfr�xd�y�yd�xd2�yd2s       r�
test_swappingzTest_Qhull.test_swapping�s���
�L����A�a�5�!�A���!�u�a��V�S��I�"F�G�G��
 �
 ���]�1�0�0�2�2�
3�
3���L����A�a�5�!�A���!�u�a��V�"<�=�=��
 �
 ���]�1�0�0�2�2�
3�
3���m�A�1�1�3�3�4�4��	���	�	�	��m�A�1�1�3�3�4�4��	���	�	�	��l�A�$9�:�:�:��l�A�$9�:�:�:���1��s�1�v�&�&�&�)�"�Q�%��Q��\�J�J�J�J�)�"�Q�%��Q��\�J�J�J�J�)�"�Q�%��Q��\�J�J�J�J��2�a�5�#�a�&�)�)�)���1��s�1�v�&�&�&�)�"�Q�%��Q��\�J�J�J�J�)�"�Q�%��Q��\�J�J�J�J�)�"�Q�%��Q��\�J�J�J�J��2�a�5�#�a�&�)�)�)�	���	�	�	��l�A�$9�:�:�:�	���	�	�	��l�A�$9�:�:�:�:�:rc��tjddgddgddgddgddgddgddgddgddgg	��}t|��dS)Nrr'r/)rrWr
)r^rEs  r�test_issue_8051zTest_Qhull.test_issue_8051�s]����A�q�6�A�q�6�A�q�6�A�q�6�A�q�6�A�q�6�1�a�&�ST�VW�RX�[\�^_�Z`�a�b�b��������rN)�__name__�
__module__�__qualname__rdrf�rrrOrO�s3������$;�$;�$;�L����rrOc�t�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z				dd�Z
d�Zej
jd
���ZdS)�
TestUtilitiesz-
    Check that utility functions work.

    c�x�tjgd�tj���}tj|��}t|jgd�gd�g��dD]e}|�|dd���}t||d|����tj||dd���}t||���fdS)N�r%r&r)r(��dtype�r'r2r/�r2r'r))r0r0r')��?rsr)�333333�?皙�����?r'r/��err_msg)	rrW�doublerU�Delaunayr�	simplices�find_simplex�tsearch)r^rE�tri�p�irJs      r�test_find_simplexzTestUtilities.test_find_simplex�s�����6�6�6�b�i�H�H�H���n�V�$�$��	�S�]�Y�Y�Y�	�	�	�$:�;�;�;�!�	�	�A�� � ��2�A�2��'�'�A���A�a�D�!�!�6�6�6�6��
�c�1�R�a�R�5�)�)�A���A�����
	�	rc���tjgd�tj���}tjddgtj���}tj|��}|�|��}|�|��}|�|��}t|j��D]�\}}||d}	||d}
||d}tj	|	|z
|
|z
��}|tj
tj||����z}|tj|d��z}tj|||z
��}
t|||
����dS)N)r%r)r()g]2ʐ��?g>mj��?)g~T�!��?g^R�z���?rog���B��?g���?rr'r/)rrWrxrUry�lift_points�plane_distance�	enumeraterz�cross�sqrt�dot�signr)r^rr~r}�z�pz�distrJ�v�x1�x2�x3�n�ds              r�test_plane_distancez!TestUtilities.test_plane_distance�sY��
�H�0�0�0�79�y�
B�
B�
B���H�j�*�-�R�Y�?�?�?���n�Q�����O�O�A����
�_�_�Q�
�
���!�!�!�$�$���c�m�,�,�	,�	,�D�A�q��1�Q�4��B��1�Q�4��B��1�Q�4��B����b��"�r�'�*�*�A�
������1���&�&�&�A�
�"�'�!�A�$�-�-���A���q�"�r�'�"�"�A���Q���+�+�+�+�	,�	,rc��tjgd�tj���}tj|��}t|jddgddgddgddgg��dS)Nrnror2r/r'r)rrWrxrUryr�convex_hull�r^rEr}s   r�test_convex_hullzTestUtilities.test_convex_hull�sa����6�6�6�b�i�H�H�H���n�V�$�$��	�S�_��1�v��1�v��1�v��1�v�&F�G�G�G�G�Grc��tjgd���}tj|��}t	|jddd���t	|jddd���dS)N�)rrr)rr'r)r'rr)r'r'r)rrr')rr'r')r'rr')r'r'r'rR�+����=zVolume of cube is incorrect��rtolrw�@zArea of cube is incorrect�rrWrU�
ConvexHullr�volume�area�r^rE�hulls   r�test_volume_areazTestUtilities.test_volume_area�s�����G�G�G�H�H�����'�'�����R�e� =�	?�	?�	?�	?���	�2�E� ;�	=�	=�	=�	=�	=�	=rc��tjgd���}tj|��}t	|jddd���t	|jddd���dS)N)
)g���Q4�?g�ΜR�@�?gX&�lL5�?)gf��N�z�?gj���M�?g{D흚j�?)ga?8�\�?g�����?g�w5�K��?)g,lnq��?g6���=��?g��U���?)gw컝���?g��`�?ga�����?)g�+�q�?g\h��ϱ?gL�g�
��?)g�G��e�?gE�9�;�?gd:�L�?)gȊK�B�?gB�Y�M��?g�����?)g~EH�y��?gU�dk���?gm�Vq"�?)g���q�p�?g��e���?g\�*L��?gY��/���?�H�����z>z(Volume of random polyhedron is incorrectr�g\���4��?z&Area of random polyhedron is incorrectr�r�s   r�test_random_volume_areaz%TestUtilities.test_random_volume_area�s�����	M�	M�	M�	N�	N�����'�'�����Z�e� J�	L�	L�	L�	L���	�9�5� H�	J�	J�	J�	J�	J�	Jrc���d}d}tj�||f��}tj|d|dz�dd�fd���}tj|d|dz�dd�fd���}t	|dz|��D]�}tj|d|dz�dd�f��}|�|||dz�dd�f��|�|||dz�dd�fd���t
|j|jd�	��t
|j|jd�	��t
|j|jd�	��t
|j|jd�	����dS)
zwTest that incremental mode gives the same volume/area as
        non-incremental mode and incremental mode with restart�r2Nr'T��incremental��restartr��r�)	r�randomrUr�r?�
add_pointsrr�r�)r^�	nr_points�dimrE�inc_hull�inc_restart_hullrr�s        r�)test_incremental_volume_area_random_inputz7TestUtilities.test_incremental_volume_area_random_inputs����	�����!�!�9�c�"2�3�3���#�F�6�C��E�6�1�1�1�9�$5�4�H�H�H�� �+�F�6�C��E�6�1�1�1�9�,=�4�P�P�P���s�1�u�i�(�(�	I�	I�A��#�F�4�A�a�C�4����7�O�4�4�D�����q��1��u�a�a�a�x� 0�1�1�1��'�'��q��1��u�a�a�a�x�(8�$�'�G�G�G��D�K���t�D�D�D�D��D�K�)9�)@�t�L�L�L�L��D�I�x�}�4�@�@�@�@��D�I�'7�'<�4�H�H�H�H�H�	I�	Ir�Frc����|j|j}d|jdzz}|�d���|z}d�}t	jt��j}	||j|��}
t	j	d���5t	j
|
���d���t|
|z
��|zdk�d���z}ddd��n#1swxYwYt|���|�d	t	j|������|dd�dd
�dd�f|dd�d
ddd�fz
�t	j�fd�t!|j��D����}t	j|jdd�ddf��|t	j|	��kz}t|���|�d	t	j|������|�|��}
|
d
kt	j
|jdd�ddf��z}t|���|�d	t	j|������|r||k�d���}||d|z
k�d���z}|
d
k|z}t|���|�d	t	j|������dSdS)
z@Check that a triangulation has reasonable barycentric transformsr'rR��axisc�t�|dd�ddd�f}|dd�dd�dd�f}tjd|||z
��S)Nr-z
ijk,ik->ij)r�einsum)�trr�r�Tinvs    r�barycentric_transformzJTestUtilities._check_barycentric_transforms.<locals>.barycentric_transform*sL���1�1�1�R����6�
�A��a�a�a����A�A�A�g�;�D��9�\�4��Q��7�7�7r�ignore)�invalidg�������?N� r-c	�h��g|].}tj��|dd�dd�f����/Sr)r�linalg�det)�.0�k�qs  �r�
<listcomp>z?TestUtilities._check_barycentric_transforms.<locals>.<listcomp>9sI���9�9�9� ��9�=�=��1�Q�Q�Q�q�q�q�5��2�2�9�9�9rr)rErzrF�sumr�finfo�float�eps�	transform�errstate�isnan�all�absr�nonzerorWr?�nsimplex�isfiniter�r{�any)r^r}rw�	unit_cube�
unit_cube_tol�vertices�sc�	centroidsr�r��c�okr�rJ�at_boundaryr�s               @r�_check_barycentric_transformsz+TestUtilities._check_barycentric_transformss5����:�c�m�,��
���3��
���L�L�a�L�(�(�2�-�	�
	8�	8�	8�
�h�u�o�o�!��!�!�#�-��;�;��
�[��
*�
*�
*�	N�	N���!�����a��(�(�C��B��K�K��N�S�,@�+E�+E�1�+E�+M�+M�M�B�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N����	N�	N�	N�	N�	������W�W�W�b�j�"��o�o�o�>�?�?�?�
�Q�Q�Q�s��s�1�1�1�W������2�d�1�1�1�� 5�5����9�9�9�9�$)�#�,�$7�$7�9�9�9�:�:��
�[���q�q�q��1�u�-�
.�
.�&�2�7�3�<�<�2G�
H��������W�W�W�b�j�"��o�o�o�>�?�?�?�
���Y�'�'���2�g���#�-����!�A��"6�7�7�
7��������W�W�W�b�j�"��o�o�o�>�?�?�?��	D�$�
�5�:�:��:�B�B�K��I��]�):�:�?�?�Q�?�G�G�G�K��r�'�[�(�B��B�F�F�H�H����"�*�b�S�/�/�/�B�C�C�C�C�C�
	D�	Ds�AC$�$C(�+C(c���tjtj�tj�t��dd����}|d}|���tj	|��}tj
|jdd�ddf�����}t|dk|��|�|��dS)N�datazdegenerate_pointset.npzr�r�)r�load�os�path�join�dirname�__file__r[rUryr�r�r�rr�)r^r�rEr}�	bad_counts     r�&test_degenerate_barycentric_transformsz4TestUtilities.test_degenerate_barycentric_transformsLs����w�r�w�|�|�B�G�O�O�H�$=�$=�v�$=�?�?�@�@���c����
�
�����n�V�$�$���H�S�]�1�1�1�Q�q�5�1�2�2�6�6�8�8�	��	�B��	�*�*�*�	
�*�*�3�/�/�/�/�/rc
��tjt��j}ddddd�}t	dd��D�]�}tjdd	||��}tjtttj	tj
tj|g|z������j}d
|z}tj|��}|�||d���tj�d
��tj�|jd��dk}||dd�fxxd|ztjj||dd�fj�dz
zz
cc<tj|��}|�||dd|z���tjtj||f��}|�||dd|z������dS)N�F�r4r2)r/r2r3r4r/r5rr'zndim=%dT)rwr�r$rur+)rwr�r�)rr�r�r�r?�linspace�c_rr�ravel�broadcast_arrays�ix_�TrUryr�r��seed�randr>�r_)	r^r��npointsrFr�gridrwr}�ms	         r� test_more_barycentric_transformsz.TestUtilities.test_more_barycentric_transforms]s����h�u�o�o�!���R�A�!�,�,���!�Q�K�K�	D�	D�D���A�q�'�$�-�0�0�A��5��c�"�(�B�,?���1�#�d�(�AT�,U�V�V�W�W�X�Z�D��$�&�G��.��&�&�C��.�.�s�G�9=�
/�
?�
?�
?�
�I�N�N�4� � � ������
�1�
�.�.��4�A���1�1�1��I�I�I��3���	���Q�q�q�q�S�	�� @�3� F�G�G�I�I�I��.��&�&�C��.�.�s�G�9=�=>�s�U�
/�
D�
D�
D�
�.���t�T�z�!2�3�3�C��.�.�s�G�9=�=>�s�U�
/�
D�
D�
D�
D�1	D�	DrN)r�Fr)rgrhri�__doc__r�r�r�r�r�r�r�r��pytest�mark�slowr�rjrrrlrl�s���������
���*,�,�,�6H�H�H�	=�	=�	=�J�J�J�(I�I�I�":<�05�45�+D�+D�+D�+D�Z0�0�0�"�[��!D�!D���!D�!D�!Drrlc�&�eZdZd�Zd�Zd�Zd�ZdS)�TestVertexNeighborVerticesc�`���d�t|jjd��D��}|jD]-}|D](}|D]#}||kr||�|���$�)�.|j\����fd�t|jjd��D��}t
|||�d|�����dS)Nc�*�g|]}t����Srj)�set)r�rJs  rr�z5TestVertexNeighborVertices._check.<locals>.<listcomp>�s��>�>�>�a�C�E�E�>�>�>rrc���g|];}ttt��|�|dz�������<S�r')rr�int)r�rJ�indices�indptrs  ��rr�z5TestVertexNeighborVertices._check.<locals>.<listcomp>�sQ���4�4�4���3�s�G�F�1�I�f�Q�q�S�k�$9�:�;�;�<�<�4�4�4rz != rv)r?rEr>rz�add�vertex_neighbor_verticesr)	r^r}�expected�sr r!�gotrrs	       @@r�_checkz!TestVertexNeighborVertices._check�s�����>�>�5���)9�!�)<�#=�#=�>�>�>����	+�	+�A��
+�
+���+�+�A��A�v�v� ������*�*�*��+�
+�
�6����4�4�4�4�4��c�j�.�q�1�2�2�4�4�4��	�S�(�#�#�#�x�x�,H�I�I�I�I�I�Irc��tjgd�tj���}tj|��}|�|��dS)N�r%r&r(ro�rrWrxrUryr
r�s   r�
test_trianglez(TestVertexNeighborVertices.test_triangle�sF����/�/�/�r�y�A�A�A���n�V�$�$�����C�����rc��tjgd�tj���}tj|��}|�|��dS)Nrnrorr�s   r�test_rectanglez)TestVertexNeighborVertices.test_rectangle�sF����6�6�6�b�i�H�H�H���n�V�$�$�����C�����rc��tjgd�tj���}tj|��}|�|��dS)N)r%r&r)r(r*)g�������?r+rorr�s   r�test_complicatedz+TestVertexNeighborVertices.test_complicated�sV����3�3�3�:<�)�E�E�E���n�V�$�$�����C�����rN)rgrhrir
rrrrjrrr�r��sS������
J�
J�
J����
���
����rr�c��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Ze
j�dee����d���Zd
�ZdS)�TestDelaunayz*
    Check that triangulation works.

    c��tj�d��}ttt
j|��dS�Nr')r�ma�
masked_allr\�
ValueErrorrUry�r^�masked_arrays  r�test_masked_array_failsz$TestDelaunay.test_masked_array_fails�s1���u�'�'��*�*���j�%�.�,�?�?�?�?�?rc��tjddddtjfgtj���}t	t
tj|��dS)Nr%r&r)r'ro)rrW�nanrxr\rrUry�r^�points_with_nans  r�test_array_with_nans_failsz'TestDelaunay.test_array_with_nans_fails�sA���(�E�5�%�!�B�F��#D�B�I�V�V�V���j�%�.�/�B�B�B�B�Brc	���tdd��D]�}tj|dz|f��}t|��D]	}d|||f<�
d|ddd�f<tj|��}|j���t|jtj|dzt���ddd�f��t|j
dtj|dzt���ddd�fz����dS)Nr/r7r'rRr-ro)r?r�zerosrUryrzrr�aranger�	neighbors)r^�ndrErJr}s     r�test_nd_simplexzTestDelaunay.test_nd_simplex�s����1�+�+�	R�	R�B��X�r�!�t�R�j�)�)�F��2�Y�Y�
"�
"��!��q��s����F�2�a�a�a�4�L��.��(�(�C��M��� � � �����	�"�Q�$�c�(B�(B�(B�4����7�(K�L�L�L�����R�X�r�!�t�C�-H�-H�-H��a�a�a��-P�(P�Q�Q�Q�Q�	R�	Rrc���tjgd�tj���}tj|��}t|jgd�gd�g��t|jgd�gd�g��dS)Nrnrorqrr)r-r-r')r-r-r)rrWrxrUryrrzr(r�s   r�test_2d_squarezTestDelaunay.test_2d_square�sr����6�6�6�b�i�H�H�H���n�V�$�$���S�]�Y�Y�Y�	�	�	�$:�;�;�;��S�]�[�[�[�+�+�+�$>�?�?�?�?�?rc�v�tjgd�tj���}tjgd�tj���}tj||f}tj||f}t	jtj||f��t	jtj||f��dS)N)rr'rr'ro)rrr'r')rrW�float64r�rUryr�)r^rr`�xp�yps     r�test_duplicate_pointsz"TestDelaunay.test_duplicate_points�s����H�\�\�\���4�4�4���H�\�\�\���4�4�4��
�U�1�a�4�[��
�U�1�a�4�[��	��r�u�Q��T�{�#�#�#�
��r�u�R��V�}�%�%�%�%�%rc��td}tj|��}t|j|j���|�����t|j|j���|�����td}tj|��}t|j|j���|�����t|j|j���|�����dS)Nr9r:)r=rUryrrErz�max�minr�s   r�test_pathologicalzTestDelaunay.test_pathological�s����*�+���n�V�$�$���S�Z��
�.�2�2�4�4�f�j�j�l�l�C�C�C��S�Z��
�.�2�2�4�4�f�j�j�l�l�C�C�C��*�+���n�V�$�$���S�Z��
�.�2�2�4�4�f�j�j�l�l�C�C�C��S�Z��
�.�2�2�4�4�f�j�j�l�l�C�C�C�C�Crc�J�tj�dd��}tj||f}t	j|d���}t
tj|j�	����tj
t|������dS)Nr.r/z	QJ Qbb Pp��
qhull_options)rr�r�r�rUryrrrzr�r'r@r�s   r�test_jogglezTestDelaunay.test_joggle�s��������A�&�&����v�v�~�&���n�V�;�?�?�?���2�9�S�]�%8�%8�%:�%:�;�;��9�S��[�[�1�1�	3�	3�	3�	3�	3rc	��tj�dd��}tj||f}t	j|��}t
ttj|j	�
������t|��dzk��t
t|j��t|��dzk��t
ttj|jdd�df����t|��dzk��t
tj|j
dk����dS)Nr.r/r)rr�r�r�rUryrr@rrzr��coplanarr��vertex_to_simplexr�s   r�
test_coplanarzTestDelaunay.test_coplanar�s��������A�&�&����v�v�~�&���n�V�$�$����B�I�c�m�1�1�3�3�4�4�5�5��V���a��G�H�H�H���C�L�!�!�S��[�[�!�^�3�4�4�4���B�I�c�l�1�1�1�Q�3�/�0�0�1�1�S��[�[�!�^�C�D�D�D����s�,��1�2�2�3�3�3�3�3rc��gd�}tj|d���}tjddg��}t	|j|��dS)N�r%r&r(r*)皙�����?r@T��
furthest_site)r'r3r)r3r/r)rUryrrWrrz)r^rEr}r
s    r�test_furthest_sitezTestDelaunay.test_furthest_site�sM��A�A�A���n�V�4�8�8�8���8�Y�	�2�3�3���3�=�(�3�3�3�3�3rrCc���t|\}}tj|d���}tj|dd|���}|dd�D]}|�|���tj|��}tj|dd|���}t
|��dkr3|�tj|dd�d���d���|�d��r�ttj	|j
�����tj|j
d����ttj	|j
�����tj|j
d����n!t|j
|j
t���t|j
|j
t���dS)	Nrr�T�r�r8r'r��pathologicalrT)rBr�concatenaterUryr�r@�
startswithrrrzr�r'r>r#r)	r^rCrIrGrE�obj�chunk�obj2�obj3s	         r�test_incrementalzTestDelaunay.test_incremental�s���,�D�1�������Q�/�/�/���n�V�A�Y�D�+/�1�1�1���A�B�B�Z�	"�	"�E��N�N�5�!�!�!�!��~�f�%�%���~�f�Q�i�T�,0�2�2�2���v�;�;��?�?��O�O�B�N�6�!�"�"�:�A�>�>�>�$(�
�
*�
*�
*��?�?�>�*�*�
	@�
�r�y���)<�)<�)>�)>�?�?�!�y���a��9�9�
;�
;�
;��r�y���)=�)=�)?�)?�@�@�!�y���a��9�9�
;�
;�
;�
;�
.�c�m�T�^�2>�
@�
@�
@�
@�	*�$�.�$�.�.:�	<�	<�	<�	<�	<�	<rc��tjgd���}d}tjt|���5|jddd��dS#1swxYwYdS)NrziDelaunay attribute 'vertices' is deprecated in favour of 'simplices' and will be removed in Scipy 1.11.0.)�match)rUryr��warns�DeprecationWarningr�)r^r}�msgs   r�test_vertices_deprecationz&TestDelaunay.test_vertices_deprecation"s����n�5�5�5�6�6��B��
�\�,�C�
8�
8�
8�	�	��L�L�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A	�	A
�A
N)rgrhrir�rr$r*r,r1r5r9r=rCr�r��parametrizerrBrMrSrjrrrr�s���������@�@�@�C�C�C�
R�
R�
R�@�@�@�	&�	&�	&�
D�
D�
D�	3�	3�	3�4�4�4�4�4�4��[���V�V�V�,@�%A�%A�B�B�!<�!<�C�B�!<�F����rrc�l�ttt|����}ttt|����}||k�r�|jddk�r�dt	jt��jz}|D�]�\}}|D�]�\}}||||z
}|tj�	|��z}t	j
|d|dg��}	t	j|	||||z
��}
t	j|	||||z
��}t	jt	j|
|	��d��s��t	jt	j||	��d��s��t	j|||||z
��}
t	j|||||z
��}t	j|||||z
��}|
|ks	|
||zkr��t||ks	|||zkr���ntd������dSt||��dS)Nr'r/i�rzcomparison fails)rrrr>rr�r�r�r��normrWr��allclose�AssertionErrorr)
rE�facets_1�facets_2r�r r!�ap�bp�tr��c1�c2�c3s
             r�assert_hulls_equalra*s���3�|�X�.�.�/�/�H��3�|�X�.�.�/�/�H��8�����Q��1� 4� 4��R�X�e�_�_�(�(���	9�	9�D�A�q�"�
9�
9���B��2�J����+���R�Y�^�^�A�&�&�&���H�q��t�e�Q�q�T�]�+�+���V�A�v�a�y�6�"�:�5�6�6���V�A�v�a�y�6�"�:�5�6�6���{�2�6�"�a�=�=�!�4�4����{�2�6�"�a�=�=�!�4�4����V�A�v�a�y�6�"�:�5�6�6���V�A�v�a�y�6�"�:�5�6�6���V�A�v�b�z�F�2�J�6�7�7�����9�9��R�#�X�
�
�����9�9��R�#�X�
�
����$�%7�8�8�8��
	����8�$�$�$�$�$rc
��eZdZd�Zd�Zej�dee	����d���Z
ej�dee����d���Zd�Z
d�Zej�dd	d
g��d���Zej�dd
dg��ej�dejddgg��ejgd�e���fejddgg��ejgd�e���fejddgg��ejgd�e���fejddgddgg��ejgd�e���fejddgg��ejgd�e���fg��d�����Zej�dd	d
g��d���Zej�dd	d
g��d���Zej�dd	d
g��d���Zd S)!�TestConvexHullc��tj�d��}ttt
j|��dSr)rrrr\rrUr�rs  rrz&TestConvexHull.test_masked_array_failsbs2���u�'�'��*�*���j�%�"2�L�A�A�A�A�Arc��tjdddtjfgtj���}t	t
tj|��dS)Nr%r)r/ro)rrWr!rxr\rrUr�r"s  rr$z)TestConvexHull.test_array_with_nans_failsfs@���(�E�5�1�R�V�*�#=�R�Y�O�O�O���j�%�"2�O�D�D�D�D�DrrCc��t|}tj|��}tj|��}t	||j|j��|jddkr@ttj
|j��tj|j����dSttj
|j��|j��dS)Nr'r/)
r=rUryr�rar�rzr>rrrrr�)r^rCrEr}r�s     r�test_hull_consistency_triz(TestConvexHull.test_hull_consistency_trijs����$����n�V�$�$�����'�'���6�3�?�D�N�C�C�C��<��?�a������4�>�2�2�B�G�D�M�4J�4J�K�K�K�K�K����4�>�2�2�D�M�B�B�B�B�Brc�&�t|\}}tj|d���}tj|dd���}|dd�D]}|�|���tj|��}tj|dd���}t
|��dkr3|�tj|dd�d���d���t||j|j��t||j|j��dS)Nrr�Tr�r'r�)	rBrrGrUr�r�r@rarz)	r^rCrI�_rErIrJrKrLs	         rrMzTestConvexHull.test_incremental{s��)��.�	������Q�/�/�/����v�a�y�d�;�;�;���A�B�B�Z�	"�	"�E��N�N�5�!�!�!�!����'�'�����q�	�t�<�<�<���v�;�;��?�?��O�O�B�N�6�!�"�"�:�A�>�>�>�$(�
�
*�
*�
*�	�6�3�=�$�.�A�A�A��6�3�=�$�.�A�A�A�A�Arc	�l�tj�d��tj�dd��}t	j|��}t
tj|j��tj	|j
����|j|j
j\}}tj
||���z
||���z
��}ttjtjtj|����dk����dS)Nr$r1r/r)rr�r�r�rUr�rrrzrr�rEr��arctan2�meanrr��diff�unwrap)r^rEr�rr`�angles      r�test_vertices_2dzTestConvexHull.test_vertices_2d�s���
�	���t���������A�&�&�����'�'���R�Y�t�~�.�.����
�0F�0F�G�G�G��{�4�=�)�+���1��
�1�q�v�v�x�x�<��Q�V�V�X�X��6�6�����r�w�r�y��/�/�0�0�1�4�5�5�6�6�6�6�6rc��tjgd���}tj|��}t	|jdd���t	|jdd���dS)Nr�rRr�r�r�r�r�s   rr�zTestConvexHull.test_volume_area�sk����G�G�G�H�H����v�&�&����
�B�U�3�3�3�3����"�5�1�1�1�1�1�1rr�FTc���tjddgddgddgddgddgg��}tj||d���}tjgd�t���}|j}t
||��dS)	Nru皙�����?rt�333333�?�QG4�rEr�r8)FTFFro�rrWrUr��bool�goodr�r^r�rEr�r
�actuals      r�test_good2dzTestConvexHull.test_good2d�s�����C��:���:���:���:���:�	'�(�(��
��v�,7�.3�5�5�5���8�7�7�7�t�D�D�D������V�X�&�&�&�&�&r�
visibilityruzQG-4znew_gen, expectedrtgffffff�?)FFFFFrogffffff�)FTFFFg=
ףp=�?)FFFTTr+rt)FFTFFg433333�?c��tjddgddgddgddgddgg��}tj|d|���}|�|��|j}d|vrtj|��}t||��dS)NrursrtrtTrv�-)rrWrUr�r�ry�invertr)r^�new_genr
r}rEr�r{s       r�test_good2d_incremental_changesz.TestConvexHull.test_good2d_incremental_changes�s���N��C��:���:���:���:���:�	'�(�(��
��v�,0�.8�:�:�:��	
���� � � �����*����y��*�*�H��V�X�&�&�&�&�&rc��tjddgddgddgddgddgg��}tj||���}|j}|�J�|r2|�tjd����|j}|�J�dSdS)Nrursrtrt)rEr��r'r/)rrWrUr�ryr�r&)r^r�rEr�r{s     r�test_good2d_no_optionz$TestConvexHull.test_good2d_no_option�s�����C��:���:���:���:���:�	'�(�(��
��v�,7�9�9�9������~�~�~��	"��O�O�B�H�V�,�,�-�-�-��Y�F��>�>�>�	"�	"�"�>rc���tjddgddgddgddgddgg��}tj||d���}tjgd�t���}|j}t
||��dS)Nrursrtrurv)FFFFrorwrzs      r�test_good2d_insidez!TestConvexHull.test_good2d_inside�s���
��C��:���:���:���:���:�	'�(�(��
��v�,7�.3�5�5�5���8�8�8�8��E�E�E������V�X�&�&�&�&�&rc���tjgd�gd�gd�gd�gd�g��}tj||d���}tjgd�t�	��}t|j|��dS)
N�r,r,r,)g�N��7��?g+�xٿg�g�>�@�?)gFE�%'�?gW��ۧ=�g���/J�?)g���6�r�?gtĭ�4��g����ŷ�)g�w6y��?g��Q��g��b����?�QG0rv)TFFFro)rrWrUr�rxrry)r^r�rEr�r
s     r�test_good3dzTestConvexHull.test_good3ds�����?�?�?�@�@�@�@�@�@�A�A�A�@�@�@�	B�C�C��
��v�,7�.3�5�5�5���8�7�7�7�t�D�D�D���T�Y��)�)�)�)�)rN)rgrhrirr$r�r�rTrr=rgrBrMrpr�r|rrWrxr�r�r�r�rjrrrcrcas������B�B�B�E�E�E��[���V�V�V�H�%5�%5�6�6�C�C�7�6�C� �[���V�V�V�,@�%A�%A�B�B�B�B�C�B�B�(7�7�7�2�2�2��[���]�U�D�M�:�:�'�'�;�:�'��[���\�#�$�, �!�!��[���0�
���C��:�,�	�	�	���5�5�5�T�	B�	B�	B�	D�

���C��;�-�	 �	 �	���4�4�4�D�	A�	A�	A�	C�

���C��;�-�	 �	 �	���3�3�3�4�	@�	@�	@�	B�
���C��:��S�z�*�	+�	+�	���4�4�4�D�	A�	A�	A�	C�
���C��%�&�	'�	'�	���5�5�5�T�	B�	B�	B�	D�93
���>'�'�?��	!�!�F'�$�[���]�U�D�M�:�:�"�"�;�:�"�$�[���]�U�D�M�:�:�'�'�;�:�'� �[���]�U�D�M�:�:�*�*�;�:�*�*�*rrcc��eZdZej�dddg��ej�dddg��ej�ddd	g��d
�������Zd�Zd�Zd
�Z	ej�de
e����d���Zd�Z
d�Zej�de
e����d���ZdS)�TestVoronoizqhull_opts, extra_pts)z	Qbb Qc Qzr')zQbb Qcr�n_pts�2�drFr/r2c�"�tj�d��}|�||f��}t||���}|j}|���|dz
|zksJ�|jt|j��|z
ksJ�t|j��||zksJ�|j	j
d|ksJ�|rEd�|jD��}	|	�d��dksJ�|	�d��|vsJ�dSdS)Ninr7r'rc�,�g|]}t|����Srj�r@�r�rs  rr�z;TestVoronoi.test_point_region_structure.<locals>.<listcomp>;s��3�3�3�!�s�1�v�v�3�3�3r)
rr��default_rngr
�point_regionr3�sizer@�regionsrEr>�count�index)
r^�
qhull_optsr��	extra_ptsrF�rngrE�vor�	pt_region�sublenss
          r�test_point_region_structurez'TestVoronoi.test_point_region_structures4���i�#�#�D�)�)�����U�D�M�*�*���f�J�7�7�7���$�	��}�}���%�!�)�i�"7�7�7�7�7��~��S�[�!1�!1�I�!=�=�=�=�=��3�;���5�9�#4�4�4�4�4��z���"�e�+�+�+�+��	5�3�3�s�{�3�3�3�G��=�=��#�#�q�(�(�(�(��=�=��#�#�9�4�4�4�4�	5�	5�
5�4rc��tj�d��}ttt
j|��dSr)rrrr\rrUr
rs  rrz#TestVoronoi.test_masked_array_failsAs1���u�'�'��*�*���j�%�-��>�>�>�>�>rc�>�gd�}d}|�||��dS)N)	r%r&)rr/r(r)r�)r/r)r/r')r/r/a	
        2
        5 10 1
        -10.101 -10.101
           0.5    0.5
           0.5    1.5
           1.5    0.5
           1.5    1.5
        2 0 1
        3 2 0 1
        2 0 2
        3 3 0 1
        4 1 2 4 3
        3 4 0 2
        2 0 3
        3 4 0 3
        2 0 4
        0
        12
        4 0 3 0 1
        4 0 1 0 1
        4 1 4 1 2
        4 1 2 0 2
        4 2 5 0 2
        4 3 4 1 3
        4 3 6 0 3
        4 4 5 2 4
        4 4 7 3 4
        4 5 8 0 4
        4 6 7 0 3
        4 7 8 0 4
        ��_compare_qvoronoi�r^rE�outputs   r�test_simplezTestVoronoi.test_simpleEs9��*�*�*��
��@	
���v�v�.�.�.�.�.rc��d�|������D��}t|dd��}tt	t
|dd|z�����}t|dd��}d�|d|zd|z|z�D��}d�|d|z|zd�D��}d	�|d|z|zd�D��}	t
j|fi|��}
d
�}t|
j	|��ttt	t
|
j����tt	t
|������tttt	||����tt	||	��������}tttt	||
j�������tt	||
j��������}
|���|
���t||
��dS)z:Compare to output from 'qvoronoi o Fv < data' to Voronoi()c	�v�g|]6}ttt|���������7Srj)rrr��splitr�s  rr�z1TestVoronoi._compare_qvoronoi.<locals>.<listcomp>rs2��S�S�S�!�$�s�5�!�'�'�)�)�,�,�-�-�S�S�Srr'rr2r/c�6�g|]}d�|dd�D����S)c�2�g|]}t|��dz
��Sr�r�r�r`s  rr�z<TestVoronoi._compare_qvoronoi.<locals>.<listcomp>.<listcomp>vs"��,�,�,��C��F�F�1�H�,�,�,rr'Nrjr�s  rr�z1TestVoronoi._compare_qvoronoi.<locals>.<listcomp>vsD��A�A�A��-�,�a����e�,�,�,�A�A�Arc�6�g|]}d�|dd�D����S)c�,�g|]}t|����Srjr�r�s  rr�z<TestVoronoi._compare_qvoronoi.<locals>.<listcomp>.<listcomp>xs��0�0�0�A��Q���0�0�0rr'r2rjr�s  rr�z1TestVoronoi._compare_qvoronoi.<locals>.<listcomp>xs>��=�=�=��1�0��1�Q�3��0�0�0�=�=�=rNc�6�g|]}d�|dd�D����S)c�2�g|]}t|��dz
��Srr�r�s  rr�z<TestVoronoi._compare_qvoronoi.<locals>.<listcomp>.<listcomp>zs"��3�3�3��3�q�6�6�!�8�3�3�3rr2Nrjr�s  rr�z1TestVoronoi._compare_qvoronoi.<locals>.<listcomp>zs>��?�?�?��4�3�Q�q�r�r�U�3�3�3�?�?�?rc�:�tt|����Srr
rs r�	sorttuplez0TestVoronoi._compare_qvoronoi.<locals>.sorttuple�s�������#�#�#r)�strip�
splitlinesrrrrrUr
rr�rrr��zip�ridge_pointsr�ridge_verticesr)r^rEr��kw�nvertexr��nregionr�r�r�r�r��p1�p2s              rr�zTestVoronoi._compare_qvoronoinsT��T�S�v�|�|�~�~�7P�7P�7R�7R�S�S�S���f�Q�i��l�#�#����E�6�!�A�g�I�+�#6�7�7�8�8���f�Q�i��l�#�#��A�A�"�1�W�9�Q�w�Y�w�->�#>�?�A�A�A��=�=�!'��'�	�'�(9�(:�(:�!;�=�=�=��?�?�#)�!�G�)�G�*;�*<�*<�#=�?�?�?���m�F�)�)�b�)�)��	$�	$�	$�	���h�/�/�/��S��U�C�K�0�0�1�1���U�G�,�,�-�-�	/�	/�	/��#�d�3�y�,�7�7�8�8�$�s�9�n�?]�?]�:^�:^�_�_�
`�
`��
�#�d�3�y�#�*:�*A�*A�*C�*C�D�D�E�E��c�)�S�%7�8�8�9�9�;�;�<�<��
���	�	�	�
���	�	�	��R������rrCc�0�t|}t|��}tj|��}|j���D]�\}}t
jt
j|��dk��s�0|j	|�
d���}d||d|z
z}|�||zd���\}	}
t|
|d��|�||z
d���\}	}
t|
|d����dS)Nrr�g���ư>r')r�)
r=�KDTreerUr
�
ridge_dict�itemsrr��asarrayr�rl�queryr)r^rCrE�treer�r~r��ridge_midpointr�r�r�s           r�test_ridgeszTestVoronoi.test_ridges�s���$����f�~�~���m�F�#�#���N�(�(�*�*�	"�	"�D�A�q��6�"�*�Q�-�-�1�,�-�-�
�� �\�!�_�1�1�q�1�9�9�N���q��t��~�5�6�A��j�j��!�!3�q�j�9�9�G�D�!���A�a�D�!�!�!��j�j��!�!3�q�j�9�9�G�D�!���A�a�D�!�!�!�!�	"�	"rc�B�gd�}d}|�||d���dS)Nr?a'
        2
        3 5 1
        -10.101 -10.101
        0.6000000000000001    0.5
           0.5 0.6000000000000001
        3 0 2 1
        2 0 1
        2 0 2
        0
        3 0 2 1
        5
        4 0 2 0 2
        4 0 4 1 2
        4 0 1 0 1
        4 1 4 0 1
        4 2 4 0 2
        TrAr�r�s   rrCzTestVoronoi.test_furthest_site�s7��A�A�A����$	
���v�v�T��B�B�B�B�Brc��gd�}t|��}t|jd��t|d���}t|jd��dS)Nr?FTrA)r
rrB)r^rEr�s   r�test_furthest_site_flagz#TestVoronoi.test_furthest_site_flag�sV��A�A�A���f�o�o���S�&�u�-�-�-��f�4�0�0�0���S�&�t�,�,�,�,�,rc�����t|ddjddkrdSt|\}}tj|d���}t	j|dd|���}|dd�D]}|�|���t	j|��}t	j|dd|���}t|��dkr3|�tj|dd�d���d���tt|j	��t|j	����tt|j	��t|j	����||fD]Ȋddi�t�j��D]9\}	}
t|j��D]\}}tj|
|��r|�|	<� �:���fd	��d
�}
t|
��j
����|
|j
����t|
��j����|
|j������dS)Nrr'r2r�TrEr�r-c����t|d��r(tt�fd�|D������S	�|S#t$r#}t	d�j|����|�d}~wwxYw)N�__len__c�&��g|]
}�|����Srjrj)r�r`�remaps  �rr�z?TestVoronoi.test_incremental.<locals>.remap.<locals>.<listcomp>�s!���%:�%:�%:�1�e�e�A�h�h�%:�%:�%:rz*incremental result has spurious vertex at )�hasattrrr�KeyErrorrXr�)r�e�objxr��
vertex_maps  ���rr�z+TestVoronoi.test_incremental.<locals>.remap�s�����1�i�(�(�=� ��%:�%:�%:�%:��%:�%:�%:�!;�!;�<�<�<�G�%�a�=�(���G�G�G�(�.�,0�M�!�,<�,<�*?�@�@�EF�G�����G���s�A�
A0�
A+�+A0c��ttt|����}d|vr|�d��d�|D��}|���|S)Nrjc�8�g|]}t|��dk�|��Srr�r�s  rr�zDTestVoronoi.test_incremental.<locals>.simplified.<locals>.<listcomp>�s#��8�8�8�q�S��V�V�a�Z�Z��Z�Z�Zr)rrr�remover)rr�s  r�
simplifiedz0TestVoronoi.test_incremental.<locals>.simplified�sY���C��a�0�0�1�1����;�;��L�L��$�$�$�8�8�E�8�8�8���
�
�����r)rBr>rrGrUr
r�r@rr�r�r�rWr�r�)r^rCrIrGrErIrJrKrLrr�rJ�v2r�r�r�r�s              @@@rrMzTestVoronoi.test_incremental�s������ ��%�a�(��+�1�!�4�q�8�8��F�+�D�1�������Q�/�/�/���m�F�1�I�4�+/�1�1�1���A�B�B�Z�	"�	"�E��N�N�5�!�!�!�!��}�V�$�$���}�V�A�Y�D�+/�1�1�1���v�;�;��?�?��O�O�B�N�6�!�"�"�:�A�>�>�>�$(�
�
*�
*�
*�	�S��)�*�*�C��0A�,B�,B�C�C�C��S��)�*�*�C��0A�,B�,B�C�C�C���I�	�	�D��b��J�!�$�-�0�0�
*�
*���1�&�t�}�5�5�*�*�E�A�r��{�1�b�)�)�*�()�
�1�
��*�
G�
G�
G�
G�
G�
G�
G�
�
�
�
��
�5�5���.�.�/�/��
�4�<�(�(�
�
�
�
��
�5�5��!4�5�5�6�6��
�4�.�/�/�
�
�
�
�9	�	rN)rgrhrir�r�rTr�rr�r�rr=r�rCr�rBrMrjrrr�r�sX�������[���4�	��	7����[���W�r�3�i�0�0��[���V�a��V�,�,�5�5�-�,�1�0�
��5�4?�?�?�'/�'/�'/�R���B�[���V�V�V�H�%5�%5�6�6�"�"�7�6�"�0C�C�C�0-�-�-��[���V�V�V�,@�%A�%A�B�B�<�<�C�B�<�<�<rr�c��eZdZd
d�Zej�deje	g��d���Z
d�Zd�Zd�Z
d�Zd	S)�Test_HalfspaceIntersectionr�c��t|j|j��tj|jdft���}|D]d}tjt
||z
��|k�d�����d}t|jd��d||d<�et|�����dS)z2Check that every line in arr1 is only once in arr2rror'r�rTN)	rr>rr&rxr�r�r�r)r^�arr1�arr2r��truths�l1�indexess       r�assert_unordered_allclosez4Test_HalfspaceIntersection.assert_unordered_allcloses����T�Z���,�,�,���4�:�a�=�*�$�7�7�7���	&�	&�B��j�#�d�R�i�.�.�4�"7�!<�!<�!�!<�!D�!D�E�E�a�H�G�����-�-�-�!%�F�7�1�:�����
�
�������r�dtc��tjgd�gd�gd�gd�g|���}tjddg|���}tjddgddgddgddgg��}tj||��}t	|j|��dS)	N)r-rr)rr-r)r'r���)rr'r�ror'r,rS)rrWrU�HalfspaceIntersectionr�
intersections)r^r��
halfspaces�feasible_pointrEr�s      r� test_cube_halfspace_intersectionz;Test_HalfspaceIntersection.test_cube_halfspace_intersections����X�z�z�z�)�z�z�)�z�z�)�z�z�+�35�6�6�6�
���1�a�&��3�3�3����C��:��S�z�C��:��S�z�J�K�K���*�:�~�F�F����*�F�3�3�3�3�3rc���tj�tj�t��dd��}tj|��}tj|dd�dd�f|dd�dd�ff��}tjgd���}tj
||��}t|jj
d��t|jd��tt!|j��d��|jD]}tt!|��d��� |dd�d	f|dd�dd	�f�|��z}|�|dd�dd	�fj|zj|j��t-jgd
���}|D]A}	ttj|j|	k�d�����d���BdS)Nr�zselfdual-4d-polytope.txtr')r,r,r,r,)�r3g@@r�r5r-)r,r,r+��r�)r�r�r�r�r�r�
genfromtxt�hstackrWrUr�rr�r>r�dual_volumer@�dual_facetsr�r�r��dual_points�	itertools�permutationsr�r�)
r^�fname�ineqsr��
feas_point�hs�facet�distsrE�points
          r�$test_self_dual_polytope_intersectionz?Test_HalfspaceIntersection.test_self_dual_polytope_intersection$s�������R�W�_�_�X�6�6��7�9�9���
�e�$�$���i��q�q�q�!�"�"�u��u�Q�Q�Q����U�|� <�=�=�=�
��X�.�.�.�/�/�
�
�
(��Z�
@�
@���R�%�+�W�5�5�5��B�N�D�1�1�1��S���(�(�"�-�-�-��^�	(�	(�E���U���Q�'�'�'�'��1�1�1�b�5�!�J�q�q�q�#�2�#�v�$6�$:�$:�:�$F�$F�F���&�&�
�1�1�1�c�r�c�6�(:�(<�U�(B�'E�r�~�V�V�V��'�(;�(;�(;�<�<���	M�	M�E�����!1�U�!:� ?� ?�Q� ?� G� G�H�H�!�L�L�L�L�	M�	Mrc��tjgd�gd�gd�gd�g��}tjgd���}tttj||��tjdgdgg��}tttj||��tjddgg��}tttj||��tjddg��}ttjtj||��dS)N)��r,r,)r,r�r,)rRr,r�)r,rRr��r+r+r+r+r�)rrWr\rrUr��
QhullError)r^r�r�s   r�test_wrong_feasible_pointz4Test_HalfspaceIntersection.test_wrong_feasible_point;s����X�/�/�/�/�/�/�/�/�/�/�/�/�1�2�2�
���/�/�/�2�2���j�%�"=�z�>�Z�Z�Z���C�5�3�%�.�1�1���j�%�"=�z�>�Z�Z�Z���C��:�,�/�/���j�%�"=�z�>�Z�Z�Z���4��,�/�/���e�&��(C�Z�Q_�`�`�`�`�`rc	���tjgd�gd�gd�gd�gd�gd�g��}tjgd�gd�gd	�gd
�g��}tjdggdz��}tjtj||f��|f��}tjgd
���}t	j||d���}t	j||d���}t
|��D�]\}}	|�|	tjdd�f��|�|	tjdd�fd���tj||d|dz�dd�ff��}
t	j|
|��}t|j
|j
��t|j
|j
��t|j|j��|�|j|j����|�
��dS)N)r,r,r�r�)r,r�r,r�)r�r,r,r�)rRr,r,r�)r,rRr,r�)r,r,rRr�)rRrRrR)rRrRr�)rRr�rR)r'r�r�r�r7r�Tr�r�r')rrWr��vstackrUr�r��add_halfspaces�newaxisrr�r�r�r[)r^r��
extra_normals�offsets�extra_halfspacesr��inc_hs�
inc_res_hsr�ehs�totalr�s            rrMz+Test_HalfspaceIntersection.test_incrementalNs$���X�2�2�2�2�2�2�2�2�2�1�1�1�1�1�1�1�1�1�3�4�4�
���,�,�,�"/�-�-�"/�-�-�"/�-�-�"1�2�2�
��(�S�E�7�1�9�%�%���9�b�i����0O�&P�&P�&-�&/�0�0���X�l�l�l�+�+�
��,�Z��QU�V�V�V���0��Z�UY�Z�Z�Z�
�� 0�1�1�	S�	S�F�A�s��!�!�#�b�j�!�!�!�m�"4�5�5�5��%�%�c�"�*�a�a�a�-�&8�$�%�G�G�G��I�z�+;�D�Q�q�S�D�!�!�!�G�+D�E�F�F�E��,�U�J�?�?�B��F�-�z�/D�E�E�E��F�-�r�}�=�=�=�
�B�,�j�.F�G�G�G��*�*�6�+?��AQ�R�R�R�R��������rc	��tjgd�gd�gd�gd�gd�gd�g��}tjgd���}tj||��}tjgd�gd	�gd
�gd�gd�gd
�g��}gd�gd�gd�gd�gd�gd�gd�gd�g}t	|��t	|j��ksJ�t
||j��D]'\}}t|��t|��ksJ��(t|j	|��dS)N)r�r,r,r,)rRr,r,r�)r,r�r,r,)r,rRr,r�)r,r,r�r,)r,r,rRr�r)r�rr)r/rr)rr�r)rr/r)rrr�)rrr/)r/r3r)r3r/r')r4r/r)r/r4r')r2r3r')r3r2r)r4r2r')r2r4r)
rrWrUr�r@r�r�rrr�)r^r�r�r��qhalf_points�qhalf_facetsr r!s        r�	test_cubez$Test_HalfspaceIntersection.test_cubexst���X�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�2�3�3�
������)�)��
�
(��U�
;�
;���x��J�J��I�I��J�J��I�I��J�J��I�I�
!����
�I�I��I�I��I�I��I�I��I�I��I�I��I�I��I�I����<� � �C���$7�$7�7�7�7�7���b�n�5�5�	$�	$�D�A�q��q�6�6�S��V�V�#�#�#�#�#�����5�5�5�5�5rN)r�)rgrhrir�r�r�rTrr.rr�r�rrMrrjrrr�r�
s�������	�	�	�	��[���T�B�J��#4�5�5�4�4�6�5�4�M�M�M�.a�a�a�&(�(�(�T"6�"6�"6�"6�"6rr�)4r�rX�numpyr�
numpy.testingrrrrrr�rr\�scipy.spatial._qhull�spatial�_qhullrU�
scipy.spatialr	r�r
r�rrrr#r�r�rErW�pathological_data_1r��float_r��pathological_data_2r��bug_2850_chunks�bug_2850_chunks_2r�r=rBrLrCrDrOrlr�rrarcr�r�rjrr�<module>rs)	��	�	�	�	���������I�I�I�I�I�I�I�I�I�I�I�I�I�I�
�
�
�
�*�*�*�*�*�*�$�$�$�$�$�$�$�$�$�+�+�+�+�+�+�!�!�!�!�!�!�����������16�	�	�	�	��	���t����	=�	=�	=���b�h� �
�5�M� ��%�=� �#(��-� �27��� �
�3�K� ���� � %�d�|� �.3�D�\� ��4�L� ���-� �#(��� �27�u�
� ��5�M�	 ��#�;�	 �"'�t��	 �05�T�l�	 �
�4�L� �
��,� �
"'�u�
� �
16�d�|� ��5�M�
 ��#�;�
 �"'�t��
 �05�U�m�
 ��5�M� ��$�<� �#(��� �16�e�}� ��4�L� ���-� �#(��� �27�u�
� ��3�K� ���� �!&�d�|� �/4�D�\� �	��K� ��e�� � #�5�k� �-0��;� �:=�S�	� �	��J� ��T�
� �!��J� �*-�T�
� �6:�%�L� �
�%�L� ���,� �"&�c�
� �.2�$�K� �
�$�K� ��t�� � $�E�l� �.2�$�K� �
�%�L� ���,� �"&�d�� �/3�4�[� �
�%�L� ���*� � $�D�k� �-1��<� � 
�$�K�! � �u��! � !%�U�|�! � /3�5�\�! �"
�%�L�# �"��*�# �" $�D�k�# �"-1��;�# �$
�$�K�% �$�t��% �$ $�E�l�% �$.2�%�L�% �&
�%�L�' �&��,�' �&"&�c�
�' �&.2�$�K�' �(
�$�K�) �(�t��) �( $�D�k�) ����.�b�h���H�r�1�g��A�w���G�a��V�a��V���X�R�X�b�i�
 �
 �
$�$�%��1�v��1�v� �����9�>�>�"�a�(�(��2�8�a��U�Q�q�E�A�a�5�1�Q�%�8�9�9���
%��i�n�n�R��+�+��X�R�X��!�u�q��e�a��U�Q�q�E�&B�C�C�C�E�E��
�2�:�f�%�%������A�&�&������A�&�&������A�&�&������A�&�&������A�&�&������A�&�&������A�&�&�)�)����!�$�'�$�d�+����4�4�4�4
�'�'�D��'�'�	��
�d�I�&�&�&�&�'�)�)�)�)�)�)�)�)�XSD�SD�SD�SD�SD�SD�SD�SD�l��������BD�D�D�D�D�D�D�D�N4%�4%�4%�nz*�z*�z*�z*�z*�z*�z*�z*�xh�h�h�h�h�h�h�h�ZP6�P6�P6�P6�P6�P6�P6�P6�P6�P6r

Youez - 2016 - github.com/yon3zu
LinuXploit