o
    *ήc                     @   s   d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZ d dlmZmZmZ dd Zdd	 Zd
d Zedd ZdS )    )S)Symbol)import_module)		GeometricPoissonZetasampleSkellam
DiscreteRVLogarithmicNegativeBinomial	YuleSimon)skipraisesslowc                  C   s   t ddtddtddg} d}td}|std	 n!| D ]}t||dd
}|D ]}||jjjv s3J q(qt	t
dd  t	t
dd  d S )NG      ?P   Z      numpyz6Numpy is not installed. Abort tests for _sample_numpy.sizelibraryc                   S      t tdddddS )Nr   r   r   r   r   r	    r   r   Y/tmp/pip-target-vg8gfxp4/lib/python/sympy/stats/sampling/tests/test_sample_discrete_rv.py<lambda>       z#test_sample_numpy.<locals>.<lambda>c                   S   s   t dddjjjddS )Nr   r   
tensorflowr   )r	   pspacedistributionr   r   r   r   r    r!      s    )r   r   r   r   r   r   r$   domainsetr   NotImplementedError)distribs_numpyr   r   Xsampssamr   r   r    test_sample_numpy   s&   
r-   c               
   C   s  t dd } tdddd}| d|  |d   }t||t jdtdd	td
d	tdddtddtdddt	ddt
ddg}d}td}|sLtd d S |D ]9}t||dd}t|ddd}|D ]}	|	|jjjv skJ q`tdD ]}
tdD ]}||
 | |jjjv sJ qvqpqNd S )Nr   r   xT)integerpositiver   )r'   r   r   LN   皙?r   r   Yr   scipyz6Scipy is not installed. Abort tests for _sample_scipy.r   )r   r   )r   r   r
   Naturalsr   r   r   r   r	   r   r   r   r   r   r$   r&   r'   range)pr.   pdfdistribs_scipyr   r6   r*   r+   samps2r,   ijr   r   r    test_sample_scipy   s6   


r?   c                  C   s   t ddtddtdddg} d}td	}|std
 d S | D ]}t||d	d}|D ]}||jjjv s5J q*qt	t
dd  d S )Nr   r   r   r   r2   r3   r4   r   pymcz4PyMC is not installed. Abort tests for _sample_pymc.r   c                   S   r   )Nr   r   r@   r   r   r   r   r   r    r!   J   r"   z"test_sample_pymc.<locals>.<lambda>)r   r   r   r   r   r   r$   r&   r'   r   r(   )distribs_pymcr   r@   r*   r+   r,   r   r   r    test_sample_pymc:   s    
rB   c            
   	   C   s   t dtj} td}|std t| | jjjv sJ t| dd}|D ]}|| jjjv s.J q#g d}|D ]C}z8t|}|rng g g }}}	t| d|dd	}t| d|dd	}t| d|d
d	}	t	||ksfJ t	||	krnJ W q5 t
yx   Y q5w d S )Nr*   r6   z Scipy not installed. Abort testsr   )r   )r6   r   r@   
   r   )r   r   seedr   )r   r   Halfr   r   r   r$   r&   r'   allr(   )
r*   r6   r+   samp	librarieslibimported_libs0s1s2r   r   r    test_sample_discreteL   s0   rN   N)sympy.core.singletonr   sympy.core.symbolr   sympy.externalr   sympy.statsr   r   r   r   r	   r
   r   r   r   sympy.testing.pytestr   r   r   r-   r?   rB   rN   r   r   r   r    <module>   s    ,