403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
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/stats/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

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

d�c�����ddlZddlmZddlmZmZddlZddlZddl	m
Z
mZmZddl
mZddlmZddlmZddlmZdd	lmZmZmZmZmZmZmZmZGd
�d��ZGd�d
��ZGd�dej��Zd�Z d�Z!d�Z"d�Z#Gd�d��Z$Gd�de$��Z%Gd�de$��Z&Gd�de$��Z'Gd�de$��Z(Gd�d��Z)Gd �d!��Z*Gd"�d#��Z+Gd$�d%��Z,d&�Z-dS)'�N)�Counter)�combinations�product)�assert_allclose�assert_equal�assert_array_equal)�distance)�shapiro)�_test_find_index)�qmc)�van_der_corput�n_primes�primes_from_2_to�update_discrepancy�	QMCEngine�_l1_norm�_perturb_discrepancy�&_lloyd_centroidal_voronoi_tessellationc�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�	TestUtilsc�(�dgdgdgg}dgdgdgg}tj|dd���}t||��ddgddgddgg}tjddgddgg��}ddgddgdd	gg}tj||d|d���}t||��tj||d|dd
���}t||��gd�gd
�gd�g}dgd�}}gd�gd�gd�g}tj|||���}t||��dS)Nr���?�������l_bounds�u_bounds��@T�rr�reverse�rrr)rrr)rrr)rr �)r%r!��?)r�scaler�np�array)�self�space�out�scaled_space�bounds�scaled_back_spacerrs        �</usr/lib/python3/dist-packages/scipy/stats/tests/test_qmc.py�
test_scalezTestUtils.test_scaleso����q�c�C�5�!���t�a�S�1�#����y���a�@�@�@����c�*�*�*��Q��!�Q��#�s��,����B��7�Q��F�+�,�,���A�w��A���C��)���y�����V�A�Y�O�O�O����c�*�*�*��I�l�V�A�Y�/5�a�y�$�H�H�H���)�5�1�1�1����I�I�I����7���	�	�	�(���y�y�)�)�)�]�]�]�3���y���H�M�M�M����c�*�*�*�*�*�c�P�tj�d��}|�d��}|�d��dz}|�d��dz}tj|||d���}tj|||d���}t||��dS)Nl	Ea�T4�G��*�w�v����
r6F)r#T)r(�random�default_rngrr'r)r*�rng�sample�a�b�scaled�unscaleds       r0�test_scale_randomzTestUtils.test_scale_random3s����i�#�#�$K�L�L�����H�%�%��
�Z�Z��^�^�O�b� ���J�J�r�N�N�R�����6�1�a��7�7�7���9�V�Q��4�8�8�8����&�)�)�)�)�)r2c�8�tjtd���5gd�}tj|dd���ddd��n#1swxYwYtjtd���5ddgd	d	gd
d
gg}tjddgddgg��}tj||d|d	���ddd��n#1swxYwYtjtd���5ddgd	d	gd
d
gg}gd
�ddg}}tj|||���ddd��n#1swxYwYtjtd���5ddgd	d	gd
d
gg}tjgd
�gd�g��}tj||d|d	���ddd��n#1swxYwYtjtd���5ddgd	dgd
d
gg}tjddgddgg��}tj||d|d	���ddd��n#1swxYwYtjtd���5ddgddgddgg}tjddgddgg��}tj||d|d	d���ddd��dS#1swxYwYdS)N�Sample is not a 2D array��match�rrrrrrzBounds are not consistentrrrr z/'l_bounds' and 'u_bounds' must be broadcastable)rrr)rr r �Sample is not in unit hypercuber&zSample is out of bounds�r!Tr")�pytest�raises�
ValueErrorrr'r(r))r*r+r.rrr,s      r0�test_scale_errorszTestUtils.test_scale_errors<s���
�]�:�-H�
I�
I�
I�	6�	6��K�K�E��I�e�b�1�5�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6��]�:�-I�
J�
J�
J�	E�	E���V�a��V�c�3�Z�0�E��X��A�w��A��/�0�0�F��I�e�f�Q�i�&��)�D�D�D�D�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�
�]�:�.G�H�H�H�	C�	C���V�a��V�c�3�Z�0�E�!+���a��V�h�H��I�e�h��B�B�B�B�		C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C��]�:�.G�H�H�H�	E�	E���V�a��V�c�3�Z�0�E��X�z�z�z�9�9�9�5�6�6�F��I�e�f�Q�i�&��)�D�D�D�D�		E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E��]�:�.:�;�;�;�	E�	E���V�a��X��S�z�2�E��X��A�w��A��/�0�0�F��I�e�f�Q�i�&��)�D�D�D�D�		E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E��]�:�-G�
H�
H�
H�	$�	$���7�Q��F�Q��H�-�C��X��A�w��A��/�0�0�F��I�c�F�1�I��q�	�"�
$�
$�
$�
$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$so�A�A�A�*A	B?�?C�C�%+D�D �#D �A	F�F�F�=A	H�H�H�8A
J�J�Jc
�V�tjddgddgddgddgddgddgg��}d|zdz
d	z}tjddgddgddgddgddgddgg��}d|zdz
d	z}ttj|��d
d���ttj|��d
d���tjgd�gd�gd�gd�gd�gd�gd�g��}d|zdz
dz}ttj|d���dd���ttj|d���dd���ttj|d���dd���dD]U}tjd|z��}ttjtjdg|zg��d���|���VdS)Nrr%rr�r �@��?�(@��ǘ���?�-C��6?��atolg/�$��?�rrrrrr�rrrrrr�rrrrrr�rrrrrr�rrrrrr�rrrrrr�rrrrrr�@�MD��methodr!�WD���S�?�CD���:M�?�rrLrF�� �@�L2-star)r(r)rr�discrepancy�sqrt)r*�space_1�space_2r:�dim�refs      r0�test_discrepancyzTestUtils.test_discrepancy^s?���(�Q��F�Q��F�Q��F�Q��F�Q��F�Q��F�K�L�L����=�3�&�9�5���(�Q��F�Q��F�Q��F�Q��F�Q��F�Q��F�K�L�L����=�3�&�9�5��	����0�0�&�t�D�D�D�D�����0�0�&�t�D�D�D�D�
��-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�
/�0�0����,��$��3������t�<�<�<�f�!�	#�	#�	#�	#�����t�<�<�<�f�!�	#�	#�	#�	#�����t�<�<�<�f�!�	#�	#�	#�	#�)�	D�	D�C��'�!�s�d�)�$�$�C��C�O�B�H�q�c�#�g�Y�,?�,?�3<�>�>�>�?B�
D�
D�
D�
D�	D�	Dr2c	��tjddgddgddgddgddgddgg��}tjtd���5tj|��ddd��n#1swxYwYtjtd	���5tjddg��ddd��n#1swxYwYd
d
gddgddgg}tjtd���5tj|d
���ddd��dS#1swxYwYdS)Nrr%rrrLr rErBrArrz'toto' is not a valid ...�totor])r(r)rGrHrIrrh)r*r:s  r0�test_discrepancy_errorsz!TestUtils.test_discrepancy_errors�s�����A�q�6�A�q�6�A�q�6�A�q�6�A�q�6�A�q�6�J�K�K��
�]��@�
�
�
�	$�	$�
�O�F�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�
�]�:�-H�
I�
I�
I�	$�	$��O�Q��F�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$��a�&�1�a�&�3��*�-��
�]�:�-I�
J�
J�
J�	3�	3��O�F�6�2�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s6�A#�#A'�*A'�	B,�,B0�3B0�D�D�Dc
�j�tjgd�gd�gd�gd�gd�gd�gd�g��}d|zd	z
d
z}ttj|dd�
��dd���ttj|dd�
��dd���ttj|dd�
��dd���dD]V}tjd|z��}ttjtjdg|zg��dd�
��|���W|�tdd���tj	td���5tj|d���ddd��n#1swxYwYtj	td���5tj|d ���ddd��dS#1swxYwYdS)!NrTrUrVrWrXrYrZrMrNr[r\rF)r^�workersr!rQrRr_r`rarbrcr%rrg����	cpu_countc��dS�N�rxr2r0�<lambda>z5TestUtils.test_discrepancy_parallel.<locals>.<lambda>�s��T�r2zCannot determine therB�rszInvalid number of workers...r)r(r)rrrhri�setattr�osrGrH�NotImplementedErrorrI)r*�monkeypatchr:rlrms     r0�test_discrepancy_parallelz#TestUtils.test_discrepancy_parallel�s�����-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�
/�0�0����,��$��3������t�Q�G�G�G��!�	#�	#�	#�	#�	����t�Q�G�G�G��!�	#�	#�	#�	#�	����t�Q�G�G�G��!�	#�	#�	#�	#�)�	P�	P�C��'�!���+�&�&�C��C�O�B�H�q�c�C�i�[�,A�,A�3<�b�J�J�J�KN�
P�
P�
P�
P�	���B��\�\�:�:�:�
�]�.�6L�
M�
M�
M�	0�	0��O�F�B�/�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0��]�:�-K�
L�
L�
L�	0�	0��O�F�B�/�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0s$�;E�E"�%E"�F(�(F,�/F,c	�b�tjddgddgddgddgddgddgg��}d|zdz
d	z}tj|dd
�d���}t	|d
|dd
�|��}t|d
d���tj�d��}|�d��}tj|��}tj|dd
�d���}t	|d
|dd
�|��}t||d���tj	td���5t	|d
|dd
�dz|��ddd��n#1swxYwYtj	td���5t	|d
|d|��ddd��n#1swxYwYddg}tj	td���5t	||dd
�|��ddd��n#1swxYwYddgg}tj	td���5t	||dd
�|��ddd��n#1swxYwYgd�}tj	td���5t	||dd
�|��ddd��dS#1swxYwYdS)Nrr%rrrLr rMrNrOrtT)�	iterativerPrQrRl	gy�,!uUx�FYo9"]�)rLr6rErBrArzx_new is not in unit hypercuberzx_new is not a 1D array)g333333�?皙�����?rz&x_new and sample must be broadcastable)r(r)rrhrrr7r8rGrHrI)r*rj�	disc_init�	disc_iterr9�disc_ref�x_news       r0�test_update_discrepancyz!TestUtils.test_update_discrepancy�s/���(�Q��F�Q��F�Q��F�Q��F�Q��F�Q��F�K�L�L����=�3�&�9�5���O�G�C�R�C�L�D�A�A�A�	�&�w�r�{�G�C�R�C�L�)�L�L�	��	�6��5�5�5�5��i�#�#�$K�L�L���*�*�W�%�%���?�7�+�+���O�G�C�R�C�L�D�A�A�A�	�&�w�r�{�G�C�R�C�L�)�L�L�	��	�8�$�7�7�7�7��]�:�.:�;�;�;�	I�	I��w�r�{�G�C�R�C�L�1�,<�i�H�H�H�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I��]�:�-H�
I�
I�
I�	C�	C��w�r�{�G�A�J�	�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C��A���
�]�:�.:�;�;�;�	?�	?��u�g�c�r�c�l�I�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?��s����
�]�:�-G�
H�
H�
H�	?�	?��u�g�c�r�c�l�I�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?��
�
��
�]�:�.>�?�?�?�	?�	?��u�g�c�r�c�l�I�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	?�	?sZ�3#E"�"E&�)E&�F2�2F6�9F6�H�H�	H�-I�I�I�=J$�$J(�+J(c��tj�d��}tjd|���}|�d��}tj|��}t
d��D]�}|�d��}|�d��}|�d��}t|||||��}|||f|||fc|||f<|||f<tj|��}	t||	����dS)Nl	�Pv�W�uW=�l�W�x"r ��seedr6�d)
r(r7r8r�LatinHypercuberh�range�integersrr)
r*r9�qmc_genr:�disc�i�row_1�row_2�col�disc_references
          r0�test_perm_discrepancyzTestUtils.test_perm_discrepancy�s���i�#�#�$J�K�K���$�Q�S�1�1�1������#�#����v�&�&���s���		2�		2�A��L�L��$�$�E��L�L��$�$�E��,�,�q�/�/�C�'���u�c�4�H�H�D��u�c�z�"�F�5�#�:�$6�
3�F�5�#�:���u�c�z� 2� �_�V�4�4�N��D�.�1�1�1�1�		2�		2r2c��d�}d�}d�}d�}tj�d��}|�d��}tj|d���}||��}t||��tj|d	���}||��}t||��tj|d
���}||��}t||��tj|d���}||��}t||��dS)
z,Alternative definitions from Matt Haberland.c�f�|j\}}|}tjtjddtj|dz
��zzdtj|dz
��dzzz
d�����}|ddd�dd�f}|dd�ddd�f}tjtjtjddtj|dz
��zzdtj|dz
��zzdtj||z
��zz
d���d�����}d|zd|z|zz
d|dzz|zzS)Nrrr��axisrgUUUUUU�?��shaper(�sum�prod�abs��x�n�s�xij�disc1�xkj�disc2s       r0�disc_c2zFTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_c2�so���7�D�A�q��C��F�2�7�A�&)�"�&��S��/�/�&9�%:�&)�"�&��S��/�/�1�*<�&<�%=�DE�G�G�G�H�H�E��D�!�!�!�Q�Q�Q�J�-�C��A�A�A�t�Q�Q�Q�J�-�C��F�2�6�"�'�!�,/���s�S�y�0A�0A�,A�+B�,/���s�S�y�0A�0A�,A�+B�-0���s�S�y�0A�0A�,A�+B�IJ�#K�#K�#K�()�	*�*�*�+�+�E�
�A�:��!��e��+�a��1��f�U�l�:�:r2c�T�|j\}}|ddd�dd�f}|dd�ddd�f}tjtjtjdtj||z
��z
tj||z
��dzzd���d�����}d|zd|dzz|zzS)Nr&rr�rgUUUUUU�?rr�)r�r�r�r�r�r�s      r0�disc_wdzFTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_wds����7�D�A�q��D�!�!�!�Q�Q�Q�J�-�C��A�A�A�t�Q�Q�Q�J�-�C��6�"�&����+-�6�#��)�+<�+<�*=�+-�6�#��)�+<�+<�a�+?�*@�FG�"I�"I�"I�'(�)�)�)�*�*�D��1�H�9�q��A��v��}�,�,r2c��|j\}}|}tjtjddtj|dz
��zz
dtj|dz
��dzzz
d�����}|ddd�dd�f}|dd�ddd�f}tjtjtjddtj|dz
��zz
dtj|dz
��zz
dtj||z
��zz
dtj||z
��dzzzd���d	�����}d
|zd|z|zz
d|dzz|zzS)Ng�������?��?rrrr�g�?��?rgUUUUUU�?r�r�s       r0�disc_mdzFTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_mds����7�D�A�q��C��F�2�7�C�&)�"�&��S��/�/�&9�%:�&)�"�&��S��/�/�1�*<�&<�%=�DE�G�G�G�H�H�E��D�!�!�!�Q�Q�Q�J�-�C��A�A�A�t�Q�Q�Q�J�-�C��F�2�6�"�'�$�,/���s�S�y�0A�0A�,A�+B�,/���s�S�y�0A�0A�,A�+B�-0���s�S�y�0A�0A�,A�+B�-0���s�S�y�0A�0A�1�0D�,D�	+E�
01�#2�#2�#2�
9:�;�;�;�<�<�E��A�:��!��e��+�a��1��f�U�l�:�:r2c�*����j\�}tjd|zdd|z
z�ztjtjd�dzz
d�����zz
tj��fd�t���D�����dzzz��S)Nr%rrr�c
���g|]R}t���D]@}tjdtj�|dd�f�|dd�f��z
����A�SS)rN)r�r(r��maximum)�.0�k�jr�r�s   ��r0�
<listcomp>z_TestUtils.test_discrepancy_alternative_implementation.<locals>.disc_star_l2.<locals>.<listcomp>!sv�������u�Q�x�x���*+��G�A��
�1�Q����T�7�A�a����d�G� <� <�<�=�=����r2)r�r(rir�r�r�)r�r�r�s` @r0�disc_star_l2zKTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_star_l2s������7�D�A�q��7��q�b�	�A�!�a�%�L�1�,��&����Q�!�V��!�4�4�4�5�5�6�6��&������"�1�X�X�������!�V�����
r2l	�j�;<Q`s�i�y��Xr4rar]r_r\rgN)r(r7r8rrhr)	r*r�r�r�r�r9r:�	disc_curr�disc_alts	         r0�+test_discrepancy_alternative_implementationz5TestUtils.test_discrepancy_alternative_implementation�s3��
	;�
	;�
	;�	-�	-�	-�	;�	;�	;� 		�		�		��i�#�#�$K�L�L�����H�%�%���O�F�4�8�8�8�	��7�6�?�?���	�8�,�,�,��O�F�4�8�8�8�	��7�6�?�?���	�8�,�,�,��O�F�4�8�8�8�	��7�6�?�?���	�8�,�,�,��O�F�9�=�=�=�	��<��'�'���	�8�,�,�,�,�,r2c��td��}|ddksJ�td��}|ddksJ�td��}|ddksJ�dS)Nr6rt��i�i^i5	)r)r*�primess  r0�
test_n_primeszTestUtils.test_n_primes:sh���"�����b�z�R������#�����b�z�S� � � � ��#�����b�z�T�!�!�!�!�!�!r2c�L�td��}gd�}t||��dS)N�2)rr%r ���
���r���%�)�+�/)rr)r*r�r,s   r0�test_primeszTestUtils.test_primesDs0��!�"�%�%��F�F�F�����$�$�$�$�$r2N)�__name__�
__module__�__qualname__r1r?rJrnrqrr�r�r�r�r�rxr2r0rrs�������+�+�+�<*�*�*� $� $� $�D#D�#D�#D�J
3�
3�
3�!0�!0�!0�F(?�(?�(?�T2�2�2�"H-�H-�H-�T"�"�"�%�%�%�%�%r2rc� �eZdZd�Zd�Zd�ZdS)�TestVDCc�"�td��}gd�}t||��tdd���}t||��tdd���}t||��tdd���}t||dd���dS)	Nr6)
�rr�r���?��?��?��?g�?g�?rLrzrFr�r%)�start_index�r
r)r*r:r,s   r0�test_van_der_corputzTestVDC.test_van_der_corputKs�����#�#��-�-�-�����$�$�$���A�.�.�.�����$�$�$���A�.�.�.�����$�$�$���q�1�1�1�����A�B�B��(�(�(�(�(r2c�4�d}tdd|���}tddd|���}t||dd���tddd|d�	��}t||dd���tddd|d
�	��}t||dd���dS)Nl		XC�f
Kl<{O�8�r6T��scrambler�r�r%)r�r�r�rL)r�r�r�rsrFr�)r*r�r,r:s    r0�test_van_der_corput_scramblez$TestVDC.test_van_der_corput_scrambleZs���6���R�$�T�:�:�:����q�4�d�K�K�K�����A�B�B��(�(�(��
�1�t�$��
�
�
��	���A�B�B��(�(�(��
�1�t�$��
�
�
��	���A�B�B��(�(�(�(�(r2c��tjtd���5tdd���ddd��dS#1swxYwYdS)Nz'base' must be at least 2rBr6r)�base)rGrHrIr
�r*s r0�test_invalid_base_errorzTestVDC.test_invalid_base_errorks���
�]�:�-I�
J�
J�
J�	'�	'��2�A�&�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's
�;�?�?N)r�r�r�r�r�r�rxr2r0r�r�JsA������
)�
)�
)�)�)�)�"'�'�'�'�'r2r�c�.��eZdZd�fd�	Zddd�d�Z�xZS)�RandomEngineNc�P��t���|||���dS)N)�d�optimizationr�)�super�__init__)r*r�r�r��	__class__s    �r0r�zRandomEngine.__init__qs(���
�����1�<�d��C�C�C�C�Cr2rrzc�H�|j�||jf��}|Srw)r9r7r�)r*r�rsr:s    r0�_randomzRandomEngine._randomts ������!�T�V��-�-���
r2)NN)r)r�r�r�r�r��
__classcell__)r�s@r0r�r�psc�������D�D�D�D�D�D��a���������r2r�c���tdd���}|�d���}|�d���}|jdksJ�|���|jdksJ�|�d���}t	||��|���|�d���|�d���}t	||��|jdksJ�dS)	Nrl	�F,@IY^�+Ge�r�r �r�r��r)r�r7�
num_generated�resetr�fast_forward)�engine�sample_1�sample_2�
sample_1_test�
sample_2_tests     r0�test_subclassing_QMCEnginer�ys���
�!�"I�
J�
J�
J�F��}�}�q�}�!�!�H��}�}�q�}�!�!�H���2�%�%�%�%��L�L�N�N�N���1�$�$�$�$��M�M�A�M�&�&�M���=�)�)�)��L�L�N�N�N�
���!������M�M�A�M�&�&�M���=�)�)�)���2�%�%�%�%�%�%r2c���tjtd���5td��ddd��n#1swxYwYtjtd���5td��ddd��n#1swxYwYd}tjt|���5td��}|�dd���ddd��dS#1swxYwYdS)	Nz d must be a non-negative integerrB)rrtz*'u_bounds' and 'l_bounds' must be integersrg�������?r)rGrHrIr�r�)�msgr�s  r0�test_raisesr��s���	��z�)L�	M�	M�	M����T����������������������
��z�)L�	M�	M�	M����R����������������������8�C�	��z��	-�	-�	-�2�2��a��������S��1�1�1�2�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2�2�2s0�8�<�<�A:�:A>�A>�"'C�C�Cc���tdd���}|�dd���}ttj|��dg��|jtjd��ksJ�|�ddd�	��}ttj|��ddg��d
}d}|���|�d��}|||z
z|z}tj|���	tj
��}|���|�||dd
���}t||��|�||dd
���}t|���|���f||dz
f��|�||dd���}t|���|���f||f��dS)Nrl	llG�
�[/Ww�r�r6r�r�int64T)r��endpoint���r��F�rr�r�r�)
r�r�rr(�unique�dtyper�r7�floor�astyper��min�max)r�r:�low�high�
ref_samples     r0�
test_integersr�s���
�!�"I�
J�
J�
J�F��_�_�Q�"�_�
%�
%�F����6�"�"�Q�C�(�(�(��<�2�8�G�,�,�,�,�,�,�
�_�_�Q�"�t�_�
4�
4�F����6�"�"�Q��F�+�+�+�
�C��D��L�L�N�N�N����r�"�"�J��t�c�z�*�S�0�J���*�%�%�,�,�R�X�6�6�J�
�L�L�N�N�N�
�_�_�S�4�2��_�
F�
F�F����$�$�$��_�_�S�4�3��_�
G�
G�F��&�*�*�,�,��
�
���-��T�!�V�}�=�=�=�
�_�_�S�4�3��_�
F�
F�F��&�*�*�,�,��
�
���-��T�{�;�;�;�;�;r2c�V�d}tj�d��}|�dd|���}|�dd|d�	��}t	||�
��}|�||dd�
��}t|�d���|��t|�d���|dz
��|�||dd�
��}t|�d���|��t|�d���|��dS)Nr6l	G]	#0�m$av�errt)r	r
�sizerr T)r	r
rr�r�r�Frrr�)r(r7r8r�r�rrr)r�r9r	r
r�r:s      r0�test_integers_ndr�s��
�A�
�)�
�
� E�
F�
F�C�

�,�,�2�B�Q�,�
/�
/�C��<�<�A�A�A��<�=�=�D�
�!�#�
&�
&�
&�F�
�_�_�S�4�3��_�
G�
G�F�������#�#�S�)�)�)�������#�#�T�!�V�,�,�,�
�_�_�S�4�3��_�
F�
F�F�������#�#�S�)�)�)�������#�#�T�*�*�*�*�*r2c�l�eZdZdZeZeZeZeZddgZ	ddgZ
dedefd�Z
dedejfd	�Zej�de	e
�
��d���Zej�de	e
�
��d���Zej�de	e
�
��d
���Zej�de	e
�
��d���Zej�de	e
�
��d���Zej�de	e
�
��d���Zej�de	e
�
��d���Zej�de	e
�
��d���Zej�ddg��d���Zd�Zej�ddejfdd�fg��d���Z dS)�QMCEngineTestszGeneric tests for QMC engines.TF�	Scrambled�Unscrambledr��returnc��tj�d��}|jr|jd||d�|��S|rtj��dS|jdd|i|��S)Nl	\v$Pd�v�uL2+C�r�r�rx)r(r7r8�can_scramble�qmcerG�skip)r*r��kwargsr�s    r0r�zQMCEngineTests.engine�sv���y�$�$�%L�M�M����	6��4�9�D�h�T�D�D�V�D�D�D��
6���
�
�
�
�
� �t�y�5�5�d�5�f�5�5�5r2c�"�|r|jn|jSrw)�scramble_nd�
unscramble_nd)r*r�s  r0�	referencezQMCEngineTests.reference�s��#+�C�t����1C�Cr2)�idsc��|�d|���}|�d��}ttjd��|��dS)Nr�r�r�rL)rLr�r�r7rr(�empty�r*r�r�r:s    r0�	test_0dimzQMCEngineTests.test_0dim��H�����q�8��4�4�����q�!�!���2�8�F�+�+�V�4�4�4�4�4r2c��|�d|���}|�d��}ttjd��|��dS)Nrr r�rrr!r#s    r0�test_0samplezQMCEngineTests.test_0sample�r%r2c�x�|�d|���}|�d��}d|jksJ�dS)Nrr r�rr)r�r7r�r#s    r0�test_1samplezQMCEngineTests.test_1sample�sA�����q�8��4�4�����q�!�!�����%�%�%�%�%�%r2c���|�d|���}|�d��}tj|dk��sJ�tj|dk��sJ�dS)Nr�r �rr)r�r7r(�allr#s    r0�test_boundszQMCEngineTests.test_bounds�sb�����s�X��6�6�����s�#�#���v�f��k�"�"�"�"�"��v�f��k�"�"�"�"�"�"�"r2c��|�|���}|�d|���}|�t|�����}t	||d���|jt|��ksJ�dS)N�r�rr r�r�rR)rr�r7�lenrr�)r*r�rr�r:s     r0�test_samplezQMCEngineTests.test_samplesx���^�^�X�^�6�6�
����q�8��4�4������Z����1�1����
��6�6�6�6��#�s�:���6�6�6�6�6�6r2c�>�|�d|���}|�d���}|�d|���}t|��dz}|�|���}|�|���}t|||d�d���dS)Nrr rFr�r�rR)r�r7r2r)r*r�r�r�n_half�_r:s       r0�test_continuingzQMCEngineTests.test_continuing	s������q�8��4�4���]�]�Q�]�'�'�
����q�8��4�4���Z���A�%���M�M�F�M�#�#�������(�(����
�6�7�7� 3�$�?�?�?�?�?�?r2c���|�d|���}|�d���}|���|jdksJ�|�d���}t	||��dS)Nrr rFr�r)r�r7r�r�r)r*r�r�rr:s     r0�
test_resetzQMCEngineTests.test_resetst�����q�8��4�4���]�]�Q�]�'�'�
��������#�q�(�(�(�(������#�#����
�+�+�+�+�+r2c�v�|�d|���}|�d���}|�d|���}|�d��|�d���}t||dd�d���|���g}td��D]H}|dzdkr(|�|������3|�d	���It|d
�td��D��tj|��d���dS)Nrr rFr�rLr�rRrrc�$�g|]
}|dzdk�|��S)rrrx)r�r�s  r0r�z4QMCEngineTests.test_fast_forward.<locals>.<listcomp>6s!��:�:�:�a�q�1�u��z�z��z�z�zr2��h㈵��>)	r�r7r�rr�r��appendr(�concatenate)r*r�r�rr:�
even_drawsr�s       r0�test_fast_forwardz QMCEngineTests.test_fast_forward!s=�����q�8��4�4���]�]�Q�]�'�'�
����q�8��4�4�����A���������#�#����
�1�2�2��T�:�:�:�:�	�������
��q���	'�	'�A��1�u��z�z��!�!�&�-�-�/�/�2�2�2�2��#�#�A�&�&�&�&���:�:�5��8�8�:�:�:�;��N�:�&�&��	
�	
�	
�	
�	
�	
r2c��d}|�||���}|�d��}ttj|d���tjd|��d���ttj|d	d���tjd
|��d���ttj|dd���tjd|��d���dS)
Nr�r irr�r�{�G�z�?rR�r��Kr�)r�r7rr(�mean�repeat�
percentile)r*r�r�r�r:s     r0�test_distributionz QMCEngineTests.test_distribution;s��������q�8��4�4�����t�$�$����G�F��#�#�#�R�Y�s�A�%6�%6�T�	
�	
�	
�	
�	��M�&�"�1�-�-�-�r�y��q�/A�/A��	
�	
�	
�	
�	��M�&�"�1�-�-�-�r�y��q�/A�/A��	
�	
�	
�	
�	
�	
r2c��d}tjt|���5|�ddd���ddd��dS#1swxYwYdS)Nz)'toto' is not a valid optimization methodrBrFrp�r�r�r�)rGrHrIr��r*�messages  r0�test_raises_optimizerz$QMCEngineTests.test_raises_optimizerJs���>��
�]�:�W�
5�
5�
5�	B�	B��K�K�!�e�&�K�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	Bs�A�A�Azoptimization,metric�	random-CD�lloydc�"�t|��Srw)r�r:s r0ryzQMCEngineTests.<lambda>Ss��h�v�&6�&6�%6�r2c��|�dd���}|�d���}||��}|�dd|���}|�d���}||��}||ksJ�dS)NrFr rfr�rJ)r�r7)	r*r��metricr��
sample_ref�
metric_ref�optimal_�sample_�metric_s	         r0�test_optimizerszQMCEngineTests.test_optimizersOs������q�5��1�1���]�]�R�]�(�(�
��V�J�'�'�
��;�;��U��;�N�N���/�/�B�/�'�'���&��/�/����#�#�#�#�#�#r2N)!r�r�r��__doc__�NotImplementedrrrrr�r�boolrr�r(�ndarrayrrG�mark�parametrizer$r(r+r/r3r7r9r@rHrMrrhrYrxr2r0rr�s�������(�(��D�!�L�"�M� �K��e�}�H��
�
&�C�6�t�6�)�6�6�6�6�D�$�D�2�:�D�D�D�D��[���Z��s��;�;�5�5�<�;�5�
�[���Z��s��;�;�5�5�<�;�5�
�[���Z��s��;�;�&�&�<�;�&�
�[���Z��s��;�;�#�#�<�;�#��[���Z��s��;�;�7�7�<�;�7��[���Z��s��;�;�
@�
@�<�;�
@��[���Z��s��;�;�,�,�<�;�,��[���Z��s��;�;�
�
�<�;�
�2�[���Z�$��0�0�
�
�1�0�
�B�B�B�
�[����
�#�/�*�
�6�6�7�	9���	$�	$�
��	$�	$�	$r2rc���eZdZejZdZejddgddgddgddgd	d
gddgd
dgddgg��Z	ejddgddgddgddgddgddgddgdd gg��Z
d!�Zd"S)#�
TestHaltonTrrgUUUUUU�?r�gUUUUUU�?r�g�q�q�?r�g�q�q�?r�g9��8���?r�g�q�q�?r�gr�q��?g{���'�?gg_��p�?g�z���'d?g�U����?g{���'�?gvc��j��?g� oO(�?gɭj���?g{���'�?gR�2��?g�A��P�?g�iv�ܟ�?g{���'�?g���9��?g� oO(�?g-]�(�f�?c��|�d���}|�dd���}|�t|��d���}t	||d���|���|�d	��}|���|�d	d�
��}t||��dS)NTr1rr rF)r�rsg����MbP?rRr6rz)rr�r7r2rr�r�r)r*rr�r:s    r0�test_workerszTestHalton.test_workersss����^�^�T�^�2�2�
����q�4��0�0������Z���!��<�<����
��6�6�6�6�	�������_�_�R�(�(�
�����������Q��/�/���V�Z�(�(�(�(�(r2N)r�r�r�r�Haltonrrr(r)rrrcrxr2r0raraas��������:�D��L��B�H�q�!�f�u�e�n�$�e�n�u�e�n�$�e�n�u�e�n�$�e�n�u�e�n�>�?�?�M�
�"�(�Z��4�'��4�'��3�'��4�'��4�'��4�'��4�'��4�6�7�7�K�)�)�)�)�)r2rac��eZdZejZdZd�Zd�Zd�Z	e
j�dddg��e
j�ddd	g��e
j�d
ddg��d
�������Z
d�ZdS)�TestLHSFc�.�tjd��dS�NzNot applicable: not a sequence.�rGr�r*�argss  r0r7zTestLHS.test_continuing������5�6�6�6�6�6r2c�.�tjd��dSrhrirjs  r0r@zTestLHS.test_fast_forward�rlr2c�.�tjd��dS�NzJNot applicable: the value of reference sample is implementation dependent.rirjs  r0r3zTestLHS.test_sample��%����1�	2�	2�	2�	2�	2r2�strengthrrr�Tr�NrNc��tj�d��}d}|dz}d}tj|||||���}|�|���}	|	j||fksJ�|j|ksJ�tj|��dz|z}
tj|
||f��j	}tj
|	|k��sJ�tj|	d�	��}|rd|znd}
t|||
�
��tj
|	|z
|
k��sJ�|dkr�|��tj|��}tt||����}tt!|j��d��D]]\}}|	dd�||gf}||z�t&��}td�|D����}t)||���ZdSdSdS)Nl	pIrtS"�M�d@Br rr)r�r�rqr�r�r�rrr�rRc3�4K�|]}t|��V��dSrw)�tuple)r��rows  r0�	<genexpr>z1TestLHS.test_sample_stratified.<locals>.<genexpr>�s(����9�9�c�u�S�z�z�9�9�9�9�9�9r2)r(r7r8rr�r�r��arange�broadcast_to�T�any�sortr�setrrr�r�r�intr)r*r�r�rqr��pr�r�r�r:�
expected1d�expected�
sorted_sample�tol�unique_elements�desiredr�r��
samples_2d�res�res_sets                     r0�test_sample_stratifiedzTestLHS.test_sample_stratified�s���y�$�$�%K�L�L��
��
�q�D��
���#�a�(�-5�1=�)-�/�/�/�������#�#���|��1�v�%�%�%�%��#�q�(�(�(�(�
�i��l�l�S�(�A�-�
��?�:��1�v�6�6�8���v�f��(�)�)�)�)�)����Q�/�/�/�
�!�(�c�A�g�g�q���
�x�c�:�:�:�:��v�f�x�'�#�-�.�.�.�.�.��q�=�=�\�1� �i��l�l�O��'�/�?�C�C�D�D�G�$�U�6�8�_�_�a�8�8�
/�
/���1�#�A�A�A��1�v�I�.�
�!�A�~�-�-�c�2�2���9�9�S�9�9�9�:�:���W�g�.�.�.�.��=�1�1�
/�
/r2c�t�d}tjt|���5tjdd���ddd��n#1swxYwYd}tjt|���5tjdd���}|�d	��ddd��n#1swxYwYd}tjt|���5tjdd���}|�d
��ddd��n#1swxYwYd}tjt|���5tjd
d���}|�d��ddd��n#1swxYwYd
}tjt|���5tjdd���ddd��dS#1swxYwYdS)Nznot a valid strengthrBrr%)rqz%n is not the square of a prime numberr)r�rqrdr zn is too small for d�	z'centered' is deprecatedT)�centered)rGrHrIrr�r7�warns�UserWarning)r*rLr�s   r0r�zTestLHS.test_raises�s���)��
�]�:�W�
5�
5�
5�	.�	.���q�1�-�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�;��
�]�:�W�
5�
5�
5�	�	��'�!�a�8�8�8�F��M�M�"����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�;��
�]�:�W�
5�
5�
5�	�	��'�!�a�8�8�8�F��M�M�!����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�*��
�]�:�W�
5�
5�
5�	�	��'�!�a�8�8�8�F��M�M�!����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�.��
�\�+�W�
5�
5�
5�	1�	1���q�4�0�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1sY�A�A�A�),B!�!B%�(B%�	,D�D�D�),E!�!E%�(E%�	F-�-F1�4F1)r�r�r�rr�rrr7r@r3rGr^r_r�r�rxr2r0rfrf�s���������D��L�7�7�7�7�7�7�2�2�2��[���Z�!�Q��0�0��[���Z�%���7�7��[���^�d�K�-@�A�A�#/�#/�B�A�8�7�1�0�#/�J1�1�1�1�1r2rfc�*�eZdZejZdZejddgddgddgddgddgddgdd	gd	dgg��Z	ejd
dgdd
gddgddgddgddgddgddgg��Z
d�Zd�Zd�Z
d�Zej�ddd g��d!���Zd"�Zd#S)$�	TestSobolTr�rr�r�r�r�r�r�g��a6�?gtAAz�?g�`����?g�_k�m�?g�sAdn�?g�rIâ?g��q�L�?g��|�?g+�&�C�?g#�*H;�?g�&fb_��?g�]bnQ�?gvD2��(�?gt�|�!�?g�$\�?g�4>z@�?c��tjtd���5tjd��}|�d��ddd��dS#1swxYwYdS)N�'The balance properties of Sobol' pointsrBrr6)rGr�r�r�Sobolr7�r*r�s  r0�test_warningzTestSobol.test_warning�s���
�\�+�.>�?�?�?�	�	��Y�q�\�\�F��M�M�"����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�*A�A�Ac��tjdd���}|�d��}t|jdd�|��|�d��}t|jdd�|��tjtd���5|�d��ddd��dS#1swxYwYdS)NrFr1rLrFr�rB)rr��random_base2rrrGrHrI�r*r�r:s   r0�test_random_base2zTestSobol.test_random_base2�s����1�u�-�-�-���$�$�Q�'�'���4�-�b�q�b�1�6�:�:�:��$�$�Q�'�'���4�-�a��c�2�F�;�;�;��]�:�.>�?�?�?�	#�	#�����"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s�B9�9B=�B=c�L�tjtd���5tjtjjdz��ddd��n#1swxYwYtjtd���5tjdd���ddd��dS#1swxYwYdS)Nz Maximum supported dimensionalityrBrzMaximum supported 'bits' is 64�A)�bits)rGrHrIrr��MAXDIMr�s r0�
test_raisezTestSobol.test_raise�s+��
�]�:�.?�@�@�@�	,�	,��I�c�i�&��*�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,��]�:�.=�>�>�>�	"�	"��I�a�b�!�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	"�	"s#�'A�A�A�5B�B� Bc���tjdd���}t|�����������}t|�����������}t
|tddi����t
|tddi����dS)NiWFr1r�r)rr�rr7�flatten�tolistr)r*r��count1�count2s    r0�
test_high_dimzTestSobol.test_high_dims�����4�%�0�0�0��������0�0�2�2�9�9�;�;�<�<��������0�0�2�2�9�9�;�;�<�<���V�W�c�4�[�1�1�2�2�2��V�W�c�4�[�1�1�2�2�2�2�2r2r�rr%c�2�tjdd|���}d|z}|�|��}t|jd|�|��tjtd���5|���ddd��dS#1swxYwYdS)NrF�r�r�zincreasing `bits`rB)rr�r7rrrGrHrI)r*r�r��nsr:s     r0�	test_bitszTestSobol.test_bitss�����1�u�4�8�8�8��
��W�����r�"�"���4�-�c�r�c�2�F�;�;�;�
�]�:�-@�
A�
A�
A�	�	��M�M�O�O�O�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�*B�B�Bc��tjddd���}|�d��}t|j|��dS)NrFrfr�rF)rr�r7rrr�s   r0�test_64bitszTestSobol.test_64bitssB����1�u�2�6�6�6�����q�!�!���4�-�v�6�6�6�6�6r2N)r�r�r�rr�rrr(r)rrr�r�r�r�rGr^r_r�r�rxr2r0r�r��sE�������9�D��L��B�H�r�2�h�"�C�j�#�T�l�#�T�l�$�e�n�$�e�n�$�e�n�$�e�n�.�/�/�M��"�(�Z��4�&�	�2�'��4�'��4�'��4�'��4�'��4�'��4�6�7�7�K����#�#�#�"�"�"�3�3�3��[���V�a��V�,�,���-�,��7�7�7�7�7r2r�c�J�eZdZejZdZd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	S)
�TestPoissonFc�.�tjd��dS)NzToo costly in memory.rirjs  r0r/zTestPoisson.test_bounds s����+�,�,�,�,�,r2c�.�tjd��dS)Nz"Not applicable: recursive process.rirjs  r0r@zTestPoisson.test_fast_forward#s����8�9�9�9�9�9r2c�.�tjd��dSrorirjs  r0r3zTestPoisson.test_sample&rpr2c���d}d}|�d|d���}|�|���}t|��|ksJ�t|��|ksJ�|�|���}t|��|ksJ�t|��|ksJ�t	j||gd���}t|��|dzksJ�t|��|ksJ�dS)	N皙�����?rrF)r��radiusr�r�rr�)r�r7r2�l2_normr(r>)r*rkr�r�r��sample_init�sample_continuedr:s        r0r7zTestPoisson.test_continuing*s����
�����q��%��@�@���m�m�b�m�)�)���;���2�%�%�%�%��{�#�#�v�-�-�-�-�!�=�=�2�=�.�.���#�$�$��*�*�*�*��'�(�(�F�2�2�2�2����.>� ?�a�H�H�H���6�{�{�b�1�f�$�$�$�$��v���&�(�(�(�(�(�(r2c��tj�d��}d}d\}}||z
|�d��z|z}gd�}ddg}t|||��}|D]^\}	}
}|�|	|
||���}|�|��}
t|
��|ksJ�t
|
��|
ksJ��_dS)	Nl	�x�_�4��vZ.cr�)g{�G�z�?皙�����?r )rr%rL�volume�surface)r�r��hyperspherer�)r(r7r8rrr2r�)r*r9r�r	r
�radii�
dimensions�hypersphere_methods�genr�r�r�r�r:s              r0�test_mindistzTestPoisson.test_mindist=s����i�#�#�$K�L�L��
���	��T����s�z�z�!�}�}�,�s�2���Y�Y�
�'��3���j�%�)<�=�=��&)�	-�	-�"�A�v�{��Y�Y��F��#����F��]�]�2�&�&�F��v�;�;�"�$�$�$�$��6�?�?�f�,�,�,�,�,�	-�	-r2c��d}|�d|���}|���}t|��|ksJ�dS)Nr�r)r�r�)r�
fill_spacer�)r*r�r�r:s    r0�test_fill_spacezTestPoisson.test_fill_spaceRsJ�������Q�v��.�.���"�"�$�$���v���&�(�(�(�(�(�(r2c��d}tjt|���5tjdd���ddd��dS#1swxYwYdS)Nz*'toto' is not a valid hypersphere samplingrBrrp)r�)rGrHrIr�PoissonDiskrKs  r0r�zTestPoisson.test_raisesZs���?��
�]�:�W�
5�
5�
5�	3�	3��O�A�6�2�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s�A�A�	AN)r�r�r�rr�rrr/r@r3r7r�r�r�rxr2r0r�r�s��������?�D��L�-�-�-�:�:�:�2�2�2�)�)�)�&-�-�-�*)�)�)�3�3�3�3�3r2r�c��eZdZd�Zej�d��d���Zd�Zd�Z	ej�d��d���Z
dS)�TestMultinomialQMCc�B�tjgd���}tjtd���5tj|d���ddd��n#1swxYwYtjgd���}d}tjt|���5tj|d���ddd��n#1swxYwYtjgd���}d	}tjt|���5tj|dtjd
������ddd��n#1swxYwYd
}tjt|���5tj|dtj�	�����ddd��dS#1swxYwYdS)N)���Q��?�p=
ף�?g���������ffffff�?�)\��(�?z'Elements of pvals must be non-negative.rBr6)�n_trials)r�r�r�r�r�z Elements of pvals must sum to 1.�r�r�r�r�r�z Dimension of `engine` must be 1.r�r�)r�r��"`engine` must be an instance of...)
r(r)rGrHrIr�MultinomialQMCr�r7r8)r*r~rLs   r0�test_validationsz#TestMultinomialQMC.test_validationsas����H�4�4�4�5�5��
�]�:�.A�B�B�B�	/�	/���q�2�.�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�

�H�2�2�2�3�3��5��
�]�:�W�
5�
5�
5�	/�	/���q�2�.�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�
�H�3�3�3�4�4��5��
�]�:�W�
5�
5�
5�	F�	F���q�2�c�i�!�n�n�n�E�E�E�E�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F�8��
�]�:�W�
5�
5�
5�	O�	O���q�2�b�i�6K�6K�6M�6M�N�N�N�N�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O����	O�	O�	O�	O�	O�	OsG�A�A�A�B6�6B:�=B:�4+D+�+D/�2D/�4F�F�Fzignore::UserWarningc��tj�d��}tjgd���}tjgd�g��}t	j|d|���}t
|�d��|��dS)Nl	�(u�@�gP�{-�r�)r��r�#�r��r�r�r)r(r7r8r)rr�r)r*r�r~r�r�s     r0�test_MultinomialBasicDrawz,TestMultinomialQMC.test_MultinomialBasicDrawxs����y�$�$�%J�K�K���H�3�3�3�4�4���8�0�0�0�1�2�2���#�A��$�?�?�?���6�=�=��+�+�X�6�6�6�6�6r2c�:�tj�d��}tjgd���}t	j|d|���}|�d��}t
|tj|��ztj|��d���dS)Nl	8X�7:ct]+���C:r�i r�rrQrR)	r(r7r8r)rr�rr��
atleast_2d)r*r�r~r��drawss     r0�test_MultinomialDistributionz/TestMultinomialQMC.test_MultinomialDistribution�s����y�$�$�%K�L�L���H�3�3�3�4�4���#�A��4�@�@�@���
�
�a� � ������u�
�
�-�r�}�Q�/?�/?�d�K�K�K�K�K�Kr2c��tjgd���}t|��}tt	||d��d��tt	||d��d��tt	||d��d��tt	||d��d��tt	||d	��|d
z
��dS)N)r�皙�����?g�������?g333333�?r���������?g�G�z��?rNr�rr�rg�aۢ��?g��7����?r%rNr)r(r)r2rr)r*�p_cumulativers   r0�test_FindIndexz!TestMultinomialQMC.test_FindIndex�s����x� K� K� K�L�L���<� � ���%�l�D�#�>�>��B�B�B��%�l�D�#�>�>��B�B�B��%�l�D�'�B�B�A�F�F�F��%�l�D�'�B�B�A�F�F�F��%�l�D�#�>�>��q��I�I�I�I�Ir2c�B�tj�d��}tjgd���}tjgd�g��}t	jdd|���}t	j|d||���}t|�d��|��dS)	Nl	a�F�k�q�|��'x<�r�)r�rCr �$r�rTr�r�)r�r�r�)r(r7r8r)rr�r�r)r*r�r~r��base_enginer�s      r0�test_other_enginez$TestMultinomialQMC.test_other_engine�s����y�$�$�%L�M�M���H�3�3�3�4�4���8�0�0�0�1�2�2���i��D�t�<�<�<���#�A��K�)-�/�/�/���6�=�=��+�+�X�6�6�6�6�6r2N)r�r�r�r�rGr^�filterwarningsr�r�r�r�rxr2r0r�r�`s�������O�O�O�.�[��� 5�6�6�7�7�7�6�7�L�L�L�J�J�J��[��� 5�6�6�7�7�7�6�7�7�7r2r�c�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�
TestNormalQMCc���tjtjd�����}|���}t|jd��|�d���}t|jd��tjtjd�����}|���}t|jd��|�d���}t|jd	��dS)
Nr)rE�rrr r��r rrr*�r r�r�MultivariateNormalQMCr(�zerosr7rr��r*r��sampless   r0�test_NormalQMCzTestNormalQMC.test_NormalQMC�s����*������<�<�<���-�-�/�/���W�]�F�+�+�+��-�-�!�-�$�$���W�]�F�+�+�+��*������<�<�<���-�-�/�/���W�]�F�+�+�+��-�-�!�-�$�$���W�]�F�+�+�+�+�+r2c��tjtjd��d���}|���}t|jd��|�d���}t|jd��tjtjd��d���}|���}t|jd	��|�d���}t|jd
��dS)NrT)rE�
inv_transformr�r r�r�rr*r�r�r�s   r0�test_NormalQMCInvTransformz(TestNormalQMC.test_NormalQMCInvTransform�s����*���!���D�2�2�2���-�-�/�/���W�]�F�+�+�+��-�-�!�-�$�$���W�]�F�+�+�+��*���!���D�2�2�2���-�-�/�/���W�]�F�+�+�+��-�-�!�-�$�$���W�]�F�+�+�+�+�+r2c�r�tj�d��}tjtjd��d|���}|�d���}tjddgdd	gg��}t||d
���tj�d��}tjtjd��d|���}|�d���}tjgd
�gd�g��}t||d
���tj�d��}tjdd|���}tjtjd��d||���}|�d���}tjgd
�gd�g��}t||d
���dS)Nl	q)�*s�yR�M�@
K�rF�rEr�r�r���eO��?�[�nK��g[��X�Ϳg��1ZGU�?rQrRr%)r�r�g�v/���?)g;�O����g�/.Ui��?g�}���?rLTr�)rEr�r�r�)	r(r7r8rr�r�r)rr�)r*r�r�r��samples_expectedr�s      r0�test_NormalQMCSeededz"TestNormalQMC.test_NormalQMCSeeded�s����y�$�$�%L�M�M���*���!���E��>�>�>���-�-�!�-�$�$���8�h�	�%:�&/��%9�%;�<�<����!1��=�=�=�=��y�$�$�%L�M�M���*���!���E��>�>�>���-�-�!�-�$�$���8�%D�%D�%D�%D�%D�%D�%F�G�G����!1��=�=�=�=��y�$�$�%L�M�M���i��D�t�<�<�<���*���!���E��T�
�
�
���-�-�!�-�$�$���8�%D�%D�%D�%D�%D�%D�%F�G�G����!1��=�=�=�=�=�=r2c�.�tj�d��}tjtjd��|d���}|�d���}tjddgdd	gg��}t||d
���tj�d��}tjtjd��|d���}|�d���}tjgd
�gd�g��}t||d
���dS)Nl	9e)-%�5�Z�%�_6�rT)rEr�r�r��ۆQ<���H����?gF^��_�?g(+�� ��rQrRr%)r�r�g��/fKV�?)gr����)�?g�A�v"�g���9}��)r(r7r8rr�r�r)r)r*r�r�r�r�s     r0� test_NormalQMCSeededInvTransformz.TestNormalQMC.test_NormalQMCSeededInvTransform�s&���y�$�$�%L�M�M���*���!���4�t�=�=�=���-�-�!�-�$�$���8�i��%:�&.�	�%:�%<�=�=����!1��=�=�=�=��y�$�$�%L�M�M���*���!���4�t�=�=�=���-�-�!�-�$�$���8�%D�%D�%D�%E�%E�%E�%G�H�H����!1��=�=�=�=�=�=r2c���dD]l}tj|d���}tjtj|��|d���}|���}t
|jd|f���mdS)N�rrrFr T)rEr�r�r)rr�r�r(r�r7rr�)r*r�r�r�r�s     r0r�zTestNormalQMC.test_other_engine�s����	0�	0�A��)�a�%�8�8�8�K��.�B�H�Q�K�K�6A�=A�C�C�C�F��m�m�o�o�G�����A��/�/�/�/�
	0�	0r2c��tj�d��}tjtjd��|���}|�d���}t
tj|�d�����dk��sJ�t
tj|�	d���d	z
��dk��sJ�d
D]&}t|dd�|f��\}}|dksJ��'tj|�����}tj|d
��dksJ�dS)Ni�3r)rEr��r�rr�rBr�rrr��
r(r7r8rr�r�r.r�rE�stdr
�cov�	transpose�r*r9r�r�r�r6�pvalrs        r0�test_NormalQMCShapiroz#TestNormalQMC.test_NormalQMCShapiro�s)���i�#�#�E�*�*���*������#�F�F�F���-�-�#�-�&�&���2�6�'�,�,�A�,�.�.�/�/�$�6�7�7�7�7�7��2�6�'�+�+�1�+�-�-��1�2�2�T�9�:�:�:�:�:��	�	�A��g�a�a�a��d�m�,�,�G�A�t��#�:�:�:�:�:��f�W�&�&�(�(�)�)���v�c�$�i� � �4�'�'�'�'�'�'r2c��tj�d��}tjtjd��d|���}|�d���}t
tj|�d�����d	k��sJ�t
tj|�	d���d
z
��d	k��sJ�dD]&}t|dd�|f��\}}|dksJ��'tj|�����}tj|d��d	ksJ�dS)
Ni�Z1rTr�rr�rr�rBrrr�rrs        r0�!test_NormalQMCShapiroInvTransformz/TestNormalQMC.test_NormalQMCShapiroInvTransforms2���i�#�#�G�,�,���*���!���D�s�<�<�<���-�-�#�-�&�&���2�6�'�,�,�A�,�.�.�/�/�$�6�7�7�7�7�7��2�6�'�+�+�1�+�-�-��1�2�2�T�9�:�:�:�:�:��	�	�A��g�a�a�a��d�m�,�,�G�A�t��#�:�:�:�:�:��f�W�&�&�(�(�)�)���v�c�$�i� � �4�'�'�'�'�'�'r2N)
r�r�r�r�r�r�r�r�r	rrxr2r0r�r��s}������,�,�,�,�,�,� >�>�>�>>�>�>�&0�0�0�(�(�(�
(�
(�
(�
(�
(r2r�c�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�TestMultivariateNormalQMCc�B�d}tjt|���5tjdgtjd������ddd��n#1swxYwYd}tjt|���5tjgd�tjd������ddd��n#1swxYwYd	}tjt|���5tjddgtj������ddd��n#1swxYwYd
}tjt|���5tjddgddgddgg��ddd��n#1swxYwYd}tjt|���5tjddgddgddgg��ddd��n#1swxYwYd
}tjt|���5tjdgddgddgg��ddd��dS#1swxYwYdS)Nz(Dimension of `engine` must be consistentrBrrr�)r�r$rLr�zCovariance matrix not PSD.rz#Covariance matrix is not symmetric.z/Dimension mismatch between mean and covariance.)	rGrHrIrr�r�r(r7r8rKs  r0r�z*TestMultivariateNormalQMC.test_validationss���=��
�]�:�W�
5�
5�
5�	B�	B��%�q�c�#�)�a�.�.�.�A�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�>��
�]�:�W�
5�
5�
5�	H�	H��%�i�i�i��	�A����G�G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�8��
�]�:�W�
5�
5�
5�	N�	N��%�q�!�f�R�Y�5J�5J�5L�5L�M�M�M�M�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N����	N�	N�	N�	N�0��
�]�:�W�
5�
5�
5�	@�	@��%�q�!�f��1�v��1�v�.>�?�?�?�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�9��
�]�:�W�
5�
5�
5�	@�	@��%�q�!�f��1�v��1�v�.>�?�?�?�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�E��
�]�:�W�
5�
5�
5�	=�	=��%�q�c�Q��F�Q��F�+;�<�<�<�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	=�	=sk�+A�A�A�=,B5�5B9�<B9�5D�D"�%D"�E0�0E4�7E4�G�G�	G�*H�H�Hc�X�tjgd�gd�gd�gd�g��}|j�J�dS)Nr$)rrr)rrr)rrr)rr��_corr_matrixr�s  r0�test_MultivariateNormalQMCNonPDz9TestMultivariateNormalQMC.test_MultivariateNormalQMCNonPD0sG���*��I�I�	�	�	�9�9�9�i�i�i�8�
�
���"�.�.�.�.�.r2c��tjdd���}|���}t|jd��|�d���}t|jd��tjddgddgddgg���}|���}t|jd��|�d���}t|jd	��tjgd
���}tjgd�gd�gd
�g��}tj||��}|���}t|jd��|�d���}t|jd��dS)Nrr )rErr�r�r�rr*r�r��rrr�rrr�rrr�rr%�r r%�rr�r7rr�r(r)�r*r�r�rErs     r0�test_MultivariateNormalQMCz4TestMultivariateNormalQMC.test_MultivariateNormalQMC7sZ���*��q�9�9�9���-�-�/�/���W�]�F�+�+�+��-�-�!�-�$�$���W�]�F�+�+�+��*��A��a��V�a��V�<L�M�M�M���-�-�/�/���W�]�F�+�+�+��-�-�!�-�$�$���W�]�F�+�+�+��x�	�	�	�"�"���h�	�	�	�9�9�9�i�i�i�8�9�9���*�4��5�5���-�-�/�/���W�]�F�+�+�+��-�-�!�-�$�$���W�]�F�+�+�+�+�+r2c��tjddd���}|���}t|jd��|�d���}t|jd��tjddgddgddggd���}|���}t|jd	��|�d���}t|jd
��tjgd���}tjgd�gd
�gd�g��}tj||d���}|���}t|jd��|�d���}t|jd��dS)Nrr T)rErr�r�r�r�rr*r�r�rrr)r�rrrrs     r0�&test_MultivariateNormalQMCInvTransformz@TestMultivariateNormalQMC.test_MultivariateNormalQMCInvTransformOsl���*��q��M�M�M���-�-�/�/���W�]�F�+�+�+��-�-�!�-�$�$���W�]�F�+�+�+��*��Q��q�!�f�q�!�f�-�T�
�
�
���-�-�/�/���W�]�F�+�+�+��-�-�!�-�$�$���W�]�F�+�+�+��x�	�	�	�"�"���h�	�	�	�9�9�9�i�i�i�8�9�9���*�4��D�I�I�I���-�-�/�/���W�]�F�+�+�+��-�-�!�-�$�$���W�]�F�+�+�+�+�+r2c��tj�d��}|�d��}||���ztj|�d����z}t
jtjddg��|d|���}|�d���}tjdd	gd
dgg��}t||d�
��tj�d��}|�d��}||���ztj|�d����z}t
jtjgd���|d|���}|�d���}tjgd�gd�g��}t||d�
��dS)Nl	�b�{1/YK�$`�F��rrrrF)r�r�r�g6�>W[��?gP5z5@��?g�?Qٰf�?gʤ�6�?rQrR�r%r%r%r$)g��c�@gàL��@g��D�`�)g����
�?go����'�?g�I�p�
r(r7r8�standard_normalr�diagrr�r)r�r*r9r;�Ar�r�r�s       r0� test_MultivariateNormalQMCSeededz:TestMultivariateNormalQMC.test_MultivariateNormalQMCSeededis����i�#�#�$K�L�L������'�'��
����
�
�����
�
�1�
�
� 6� 6�6���*�2�8�Q��F�+;�+;�Q�9>�S�J�J�J���-�-�!�-�$�$���8�h��%9�&.��%9�%;�<�<����!1��=�=�=�=��i�#�#�$K�L�L������'�'��
����
�
�����
�
�1�
�
� 6� 6�6���*�2�8�I�I�I�+>�+>��9>�S�J�J�J���-�-�!�-�$�$���8�%D�%D�%D�%D�%D�%D�%F�G�G����!1��=�=�=�=�=�=r2c��tj�d��}|�d��}||���ztj|�d����z}t
jtjddg��||d���}|�d���}tjdd	gd
dgg��}t||d�
��tj�d��}|�d��}||���ztj|�d����z}t
jtjgd���||d���}|�d���}tjgd�gd�g��}t||d�
��dS)Nl	A^�}�KT0zub�N�rrrT)r�r�r�gB��ފ��gS��"!�g`s�	M�?g]¡�x�?rQrRrr%r$)g�����?g��;ۤտgy�����)g��t���ֿg���c��?g�(�[Z
ӿr r#s       r0�,test_MultivariateNormalQMCSeededInvTransformzFTestMultivariateNormalQMC.test_MultivariateNormalQMCSeededInvTransform�s����i�#�#�$K�L�L������'�'��
����
�
�����
�
�1�
�
� 6� 6�6���*��H�a��V���a�c��
�
�
���-�-�!�-�$�$���8�i��%;�&.��%9�%;�<�<����!1��=�=�=�=��i�#�#�$K�L�L������'�'��
����
�
�����
�
�1�
�
� 6� 6�6���*��H�Y�Y�Y�����D�
�
�
���-�-�!�-�$�$���8�%E�%E�%E�%D�%D�%D�%F�G�G����!1��=�=�=�=�=�=r2c���tj�d��}tjddgddgddgg|���}|�d���}ttj|�d�����dk��sJ�ttj|�d���dz
��dk��sJ�d	D]&}t|dd�|f��\}}|d
ksJ��'tj
|�����}tj|d	��dksJ�tjddgd
dgdd
gg|���}|�d���}ttj|�d���ddgz
��dk��sJ�ttj|�d���tjd
��z
��dk��sJ�d	D]&}t|dd�|f��\}}|d
ksJ��'tj
|�����}tj|d	dz
��dksJ�dS)Nl	�R�2�qM}�3�i/�rr�rErr�rr�r�rBrr�rNrMr&rr�
r(r7r8rr�r.r�rErr
rrri�r*r�r�r�r�r6rrs        r0�!test_MultivariateNormalQMCShapiroz;TestMultivariateNormalQMC.test_MultivariateNormalQMCShapiro�su���y�$�$�%L�M�M���*��Q��q�!�f�q�!�f�-�D�
�
�
���-�-�#�-�&�&���2�6�'�,�,�A�,�.�.�/�/�$�6�7�7�7�7�7��2�6�'�+�+�1�+�-�-��1�2�2�T�9�:�:�:�:�:��	�	�A��g�a�a�a��d�m�,�,�G�A�t��#�:�:�:�:�:��f�W�&�&�(�(�)�)���v�c�$�i� � �4�'�'�'�'��*��s��3��*�s�C�j�!9��
�
�
���-�-�#�-�&�&���2�6�'�,�,�A�,�.�.�!�Q��7�8�8�4�?�@�@�@�@�@��2�6�'�+�+�1�+�-�-������<�=�=��D�E�E�E�E�E��	�	�A��g�a�a�a��d�m�,�,�G�A�t��#�:�:�:�:�:��f�W�&�&�(�(�)�)���v�c�$�i�#�o�&�&��-�-�-�-�-�-r2c���tj�d��}tjddgddgddgg|d���}|�d���}ttj|�d�����d	k��sJ�ttj|�d���dz
��d	k��sJ�d
D]&}t|dd�|f��\}}|dksJ��'tj
|�����}tj|d
��d	ksJ�tjdd
gddgddgg|d���}|�d���}ttj|�d���ddgz
��d	k��sJ�ttj|�d���tjd��z
��d	k��sJ�d
D]&}t|dd�|f��\}}|dksJ��'tj
|�����}tj|d
dz
��d	ksJ�dS)Nl	A"l7D#maxbwcu�C�rrT)rErr�r�rr�r�rBrr�rNrMr&rrr*r+s        r0�-test_MultivariateNormalQMCShapiroInvTransformzGTestMultivariateNormalQMC.test_MultivariateNormalQMCShapiroInvTransform�s|���y�$�$�%L�M�M���*��Q��q�!�f�q�!�f�-�D��
�
�
���-�-�#�-�&�&���2�6�'�,�,�A�,�.�.�/�/�$�6�7�7�7�7�7��2�6�'�+�+�1�+�-�-��1�2�2�T�9�:�:�:�:�:��	�	�A��g�a�a�a��d�m�,�,�G�A�t��#�:�:�:�:�:��f�W�&�&�(�(�)�)���v�c�$�i� � �4�'�'�'�'��*��s���s��c�3�Z�(���	
�
�
���-�-�#�-�&�&���2�6�'�,�,�A�,�.�.�!�Q��7�8�8�4�?�@�@�@�@�@��2�6�'�+�+�1�+�-�-������<�=�=��D�E�E�E�E�E��	�	�A��g�a�a�a��d�m�,�,�G�A�t��#�:�:�:�:�:��f�W�&�&�(�(�)�)���v�c�$�i�#�o�&�&��-�-�-�-�-�-r2c�^�tj�d��}tjgd�gd�gd�gd�g|���}|�d���}ttj|�d	�
����dk��sJ�tjtj|dd�d	f��dz
��dksJ�tjtj|dd�df��dz
��dksJ�tjtj|dd�d
f��tj	d
��z
��dksJ�dD]&}t|dd�|f��\}}|dksJ��'tj|�����}tj|d��dksJ�tj|ddz
��dksJ�ttj|dd�d	f|dd�dfz|dd�d
fz
��dk��sJ�dS)Nl	A	�+�C�I�I�mG`3dz)r�r�r�)rNr�rN)r�rNrN)rNrNrMr)r-r�rr�rBrrr�g�������?rr'r<)
r(r7r8rr�r.r�rErrir
rrr+s        r0�$test_MultivariateNormalQMCDegeneratez>TestMultivariateNormalQMC.test_MultivariateNormalQMCDegenerate�s?���y�$�$�%L�M�M���*� ��� ���/�/�/�?�?�?�C��
�
�
��
�-�-�#�-�&�&���2�6�'�,�,�A�,�.�.�/�/�$�6�7�7�7�7�7��v�b�f�W�Q�Q�Q��T�]�+�+�a�/�0�0�4�7�7�7�7��v�b�f�W�Q�Q�Q��T�]�+�+�a�/�0�0�4�7�7�7�7��v�b�f�W�Q�Q�Q��T�]�+�+�b�g�a�j�j�8�9�9�D�@�@�@�@��	�	�A��g�a�a�a��d�m�,�,�G�A�t��#�:�:�:�:�:��f�W�&�&�(�(�)�)���v�c�$�i� � �4�'�'�'�'��v�c�$�i�!�m�$�$�t�+�+�+�+��2�6�'�!�!�!�Q�$�-�'�!�!�!�Q�$�-�7�'�!�!�!�Q�$�-�G�H�H�����	�	�	�	�	r2N)r�r�r�r�rrrr%r'r,r.r0rxr2r0r
r
s�������=�=�=�4/�/�/�,�,�,�0,�,�,�4>�>�>�.>�>�>�2.�.�.�@!.�!.�!.�F����r2r
c� �eZdZd�Zd�Zd�ZdS)�	TestLloydc�^�tj�d��}|�ddd���}t	|��}t|��}t
d��D]G}t|d���}t	|��}t|��}||ksJ�||ksJ�|}|}|}�HdS)Ni��rr)�r)rrL)�maxiter)r(r7�RandomState�uniformrr�r�r)	r*r9r:�base_l1�base_l2r6�sample_lloyd�curr_l1�curr_l2s	         r0�
test_lloydzTestLloyd.test_lloyd�s����i�#�#�G�,�,�����Q����1�1���6�"�"���&�/�/���q���	"�	"�A�A��A����L��|�,�,�G��l�+�+�G��W�$�$�$�$��W�$�$�$�$��G��G�!�F�F�	"�	"r2c���tjddgddgddgddgg��}|���}t|���}t	||��tj||��rJ�dS)z�
        Verify that the input samples are not mutated in place and that they do
        not share memory with the output.
        r�r�rQN)r(r)�copyrr�may_share_memory)r*�sample_orig�sample_copy�
new_samples    r0�test_lloyd_non_mutatingz!TestLloyd.test_lloyd_non_mutatings���
�h��c�
�!$�c�
�!$�c�
�!$�c�
� ,�-�-��"�&�&�(�(��;��
�
�
�
�	��[�1�1�1��&�{�J�?�?�?�?�?�?�?r2c���tjtd���5gd�}t|��ddd��n#1swxYwYd}tjt|���5dgdgdgg}t|��ddd��n#1swxYwYd}tjt|���5d	dgd
dgddgg}t|��ddd��dS#1swxYwYdS)Nz`sample` is not a 2D arrayrBrDz`sample` dimension is not >= 2rr�rz!`sample` is not in unit hypercubeg�������r�r)rGrHrIr)r*r:r�s   r0�test_lloyd_errorszTestLloyd.test_lloyd_errorss���
�]�:�-J�
K�
K�
K�	;�	;� �[�[�F�2�6�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�0��
�]�:�S�
1�
1�
1�	;�	;��c�C�5�1�#�&�F�2�6�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�3��
�]�:�S�
1�
1�
1�	;�	;��Q�i�#�s��a��V�4�F�2�6�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s3�<�A�A�$B�B�B�0C�C�CN)r�r�r�r=rDrFrxr2r0r2r2�sD������"�"�"�.@�@�@� 
;�
;�
;�
;�
;r2r2c�N�tj|�����Srw)r	�pdistrrQs r0r�r�-s���>�&�!�!�%�%�'�'�'r2).r|�collectionsr�	itertoolsrrrG�numpyr(�
numpy.testingrrr�
scipy.spatialr	�scipy.statsr
�scipy.stats._sobolrr�scipy.stats._qmcr
rrrrrrrrr�r�r�r�rrrrarfr�r�r�r�r
r2r�rxr2r0�<module>rQs���	�	�	�	�������+�+�+�+�+�+�+�+�
�
�
�
�����K�K�K�K�K�K�K�K�K�K�"�"�"�"�"�"�������/�/�/�/�/�/���������������������������s%�s%�s%�s%�s%�s%�s%�s%�l	#'�#'�#'�#'�#'�#'�#'�#'�L�����3�=����&�&�&�.2�2�2�<�<�<�D
+�
+�
+� N$�N$�N$�N$�N$�N$�N$�N$�b)�)�)�)�)��)�)�)�BL1�L1�L1�L1�L1�n�L1�L1�L1�^H7�H7�H7�H7�H7��H7�H7�H7�VA3�A3�A3�A3�A3�.�A3�A3�A3�H97�97�97�97�97�97�97�97�xu(�u(�u(�u(�u(�u(�u(�u(�p]�]�]�]�]�]�]�]�@5;�5;�5;�5;�5;�5;�5;�5;�r(�(�(�(�(r2

Youez - 2016 - github.com/yon3zu
LinuXploit