
    e^                         d dl mZ 	 d dlZn# e$ r  ed          w xY wd dlZd dlmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZmZ  G d de          ZdS )	    )SkipTestNzSciPy not available)Area	BivariateContoursDistributionImagePolygons)ComparisonTestCase)bivariate_kdeunivariate_kdec                   B    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )KDEOperationTestszo
    Tests for the various timeseries operations including rolling,
    resample and rolling_outliers_std.
    c                    t          j        d          | _        t          | j                  | _        t          j        dt           j                  | _        d t          j        ddd          D             | _	        t          | j	                  | _        t          | j                  | _        t          t          j        | j        | j        g                    | _        d S )N      c                 H    g | ]}t          j        d dd          D ]}||f S )r   r   
   )nplinspace).0ijs      Nlib/python3.11/site-packages/holoviews/tests/operation/test_statsoperations.py
<listcomp>z+KDEOperationTests.setUp.<locals>.<listcomp>   sN     9 9 9A"$+aB"7"79 9 Q 9 9 9 9    r   r   )r   arangevaluesr   distfullnannansr   values2dr   	bivariate	dist_nanscolumn_stackbivariate_nans)selfs    r   setUpzKDEOperationTests.setUp   s    ill --	GArv&&	9 9Q2)>)> 9 9 9"4=11%di00'DI8N(O(OPPr   c                     t          | j        dd          }t          j        d          }g d}t	          ||fdd          }|                     ||           d S )Nr   r   r   	n_samples	bin_range)P^?AG$?r/   r.   g;]?ValueValue_densityDensity)r   r   r   r   r   assertEqualr'   kdexsysareas        r   test_univariate_kdez%KDEOperationTests.test_univariate_kde   sb    TY!vFFFYq\\HHHRHg'CDDd#####r   c                     t          g d          }t          |dd          }t          g dd          }|                     ||           d S )N)   r<   r<   r   r*   r+   r0   r1   )r   r   r   r4   )r'   r   r6   r9   s       r   %test_univariate_kde_flat_distributionz7KDEOperationTests.test_univariate_kde_flat_distribution&   sU    III&&TQ&AAAB!=>>d#####r   c                     t          | j        dd          }t          j        d          }g d}t	          ||fdd          }|                     ||           d S )Nr   r*   r+   )r   r   r   r   r   r0   r1   )r   r$   r   r   r   r4   r5   s        r   test_univariate_kde_nansz*KDEOperationTests.test_univariate_kde_nans,   s`    T^qFKKKYq\\__RHg'CDDd#####r   c                     t          | j        dddd          }t          t          j        ddgddgg          ddg          }|                     ||           d S )	N   r*   Fr,   x_rangey_rangecontoursg.oӕ?rG      rH   r3   boundsvdims)r   r#   r   r   arrayr4   r'   r6   imgs      r   test_bivariate_kdez$KDEOperationTests.test_bivariate_kde3   su    DNa$*U< < <BHx2Xx4HIJJ))> > >c"""""r   c                 N   t           j                            d           t          t           j                            dd                    }t          |ddddd          }|                     |t                     |                     t          |j
                  d           d S )	Nr<   d   rA   r   r<   Tr   )r,   rC   rD   rE   levels	   )r   randomseedr   randr   assertIsInstancer   r4   lendatar'   r#   r6   s      r   test_bivariate_kde_contoursz-KDEOperationTests.test_bivariate_kde_contours:   s    
	qbinnS!4455	If$*T"F F Fc8,,,SX*****r   c           	      P   t           j                            d           t          t           j                            dd                    }t          |dddddd          }|                     |t                     |                     t          |j
                  d           d S )Nr<   rQ   rA   rR   Tr   )r,   rC   rD   rE   filledrS   )r   rU   rV   r   rW   r   rX   r	   r4   rY   rZ   r[   s      r   "test_bivariate_kde_contours_filledz4KDEOperationTests.test_bivariate_kde_contours_filledB   s    
	qbinnS!4455	If$*T$rS S Sc8,,,SX+++++r   c                     t          | j        dddd          }t          t          j        d          ddg          }|                     ||           d S )	NrA   r*   FrB   )rA   rA   rF   r3   rI   )r   r&   r   r   zerosr4   rM   s      r   test_bivariate_kde_nansz)KDEOperationTests.test_bivariate_kde_nansJ   s`    D/1f$*U< < <BHV$$^I;OOOc"""""r   N)__name__
__module____qualname____doc__r(   r:   r=   r?   rO   r\   r_   rb    r   r   r   r      s         
Q Q Q$ $ $$ $ $$ $ $# # #+ + +, , ,# # # # #r   r   )unittestr   scipyImportErrornumpyr   	holoviewsr   r   r   r   r   r	   holoviews.element.comparisonr
   holoviews.operation.statsr   r   r   rg   r   r   <module>ro      s         *LLLL * * *
((
)
))*     N N N N N N N N N N N N N N N N ; ; ; ; ; ; C C C C C C C C?# ?# ?# ?# ?#* ?# ?# ?# ?# ?#s    