
    e                         d Z ddlZddlmZmZmZmZmZm	Z	m
Z
 ddlmZ  G d de          Z G d de          Z G d	 d
e          Z G d de          Z G d de          Z G d de          ZdS )z>
Test cases for the Comparisons class over the Chart elements
    N)BarsCurve	Dimension	HistogramPointsScatterVectorField)ComparisonTestCasec                        e Zd Zd Zd Zd ZdS )CurveComparisonTestc                     t          d t          d          D                       | _        t          d t          d          D                       | _        dS )7Variations on the constructors in the Elements notebookc                 F    g | ]}d |z  t          j        d |z            fS g?npsin.0is     Llib/python3.11/site-packages/holoviews/tests/element/test_comparisonchart.py
<listcomp>z-CurveComparisonTest.setUp.<locals>.<listcomp>   -    HHHc!eRVCE]]3HHH    d   c                 F    g | ]}d |z  t          j        d |z            fS r   r   r   s     r   r   z-CurveComparisonTest.setUp.<locals>.<listcomp>   r   r   e   N)r   rangecurve1curve2selfs    r   setUpzCurveComparisonTest.setUp   sP     HHU3ZZHHHIIHHU3ZZHHHIIr   c                 F    |                      | j        | j                   d S N)assertEqualr   r!   s    r   test_curves_equalz%CurveComparisonTest.test_curves_equal   s"    dk22222r   c                     	 |                      | j        | j                   d S # t          $ rB}t	          |                              d          s|                     d          Y d }~d S d }~ww xY w)Nz)Curve not of matching length, 100 vs. 101z Curve mismatch error not raised.)r&   r   r    AssertionErrorstr
startswithfailureExceptionr"   es     r   test_curves_unequalz'CurveComparisonTest.test_curves_unequal   s    	PT[$+66666 	P 	P 	Pq66$$%PQQ P++,NOOOP P P P P P	P    $ 
A07A++A0N)__name__
__module____qualname__r#   r'   r/    r   r   r   r      sI        J J J3 3 3P P P P Pr   r   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )BarsComparisonTestc                     t          d          g}t          d          g}dg}t          g d||          | _        t          g d||          | _        t          g d||          | _        dS )r   zCar occupantsCyclistsCount)one   two
   )three   )kdimsvdims)r:   r=   )r@      N)r   r   bars1bars2bars3)r"   	key_dims1	key_dims2value_dims1s       r   r#   zBarsComparisonTest.setUp!   s     _--.	Z(()	I@@@ )> > >
@@@ )> > >
@@@ )> > >


r   c                 F    |                      | j        | j                   d S r%   )r&   rE   r!   s    r   test_bars_equal_1z$BarsComparisonTest.test_bars_equal_1.   "    TZ00000r   c                 F    |                      | j        | j                   d S r%   )r&   rF   r!   s    r   test_bars_equal_2z$BarsComparisonTest.test_bars_equal_21   rM   r   c                 F    |                      | j        | j                   d S r%   )r&   rG   r!   s    r   test_bars_equal_3z$BarsComparisonTest.test_bars_equal_34   rM   r   c                     	 |                      | j        | j                   d S # t          $ r.}dt	          |          vrt          d|           Y d }~d S d }~ww xY w)Nznot almost equalz'Bars mismatched data error not raised. )r&   rE   rF   r)   r*   	Exceptionr-   s     r   test_bars_unequal_1z&BarsComparisonTest.test_bars_unequal_17   s    	OTZ44444 	O 	O 	O!Q// M! M MNNN 0/////	Os    $ 
A#AAc                     	 |                      | j        | j                   d S # t          $ r-}t	          |          dk    st          d          Y d }~d S d }~ww xY w)Nz5Dimension names mismatched: Car occupants != Cyclistsz-Bars key dimension mismatch error not raised.)r&   rE   rG   r)   r*   rS   r-   s     r   test_bars_unequal_keydimsz,BarsComparisonTest.test_bars_unequal_keydims>   s    	QTZ44444 	Q 	Q 	Qq66TTT OPPP UTTTTT	Qs    $ 
A"AAN)	r1   r2   r3   r#   rL   rO   rQ   rT   rV   r4   r   r   r6   r6      sv        > > >1 1 11 1 11 1 1O O OQ Q Q Q Qr   r6   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )HistogramComparisonTestc                    t           j                            d           t          j        d t	          d          D             d          \  }}t          ||f          | _        t           j                            d           t          j        d t	          d          D             d          \  }}t          ||f          | _        t          ||f          | _        t          ||f          | _	        dS )r      c                 J    g | ] }t           j                                        !S r4   r   randomnormalr   s     r   r   z1HistogramComparisonTest.setUp.<locals>.<listcomp>M   s&    ,U,U,UARY-=-=-?-?,U,U,Ur   i        c                 J    g | ] }t           j                                        !S r4   r\   r   s     r   r   z1HistogramComparisonTest.setUp.<locals>.<listcomp>P   s&    -V-V-VQbi.>.>.@.@-V-V-Vr   N)
r   r]   seed	histogramr   r   hist1hist2hist3hist4)r"   frequencies1edges1frequencies2edges2s        r   r#   zHistogramComparisonTest.setUpI   s     		q!|,U,Ut,U,U,UWYZZf566

	q "-V-V%PT++-V-V-VXZ [ [f566
566
566


r   c                 F    |                      | j        | j                   d S r%   )r&   rd   r!   s    r   test_histograms_equal_1z/HistogramComparisonTest.test_histograms_equal_1U   rM   r   c                 F    |                      | j        | j                   d S r%   )r&   re   r!   s    r   test_histograms_equal_2z/HistogramComparisonTest.test_histograms_equal_2X   rM   r   c                     |                      t                    5  |                     | j        | j                   d d d            d S # 1 swxY w Y   d S r%   )assertRaisesr)   r&   rd   re   r!   s    r   test_histograms_unequal_1z1HistogramComparisonTest.test_histograms_unequal_1[       ~.. 	5 	5TZ444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5   !A		AAc                     |                      t                    5  |                     | j        | j                   d d d            d S # 1 swxY w Y   d S r%   )rq   r)   r&   rd   rf   r!   s    r   test_histograms_unequal_2z1HistogramComparisonTest.test_histograms_unequal_2_   rs   rt   c                     |                      t                    5  |                     | j        | j                   d d d            d S # 1 swxY w Y   d S r%   )rq   r)   r&   rd   rg   r!   s    r   test_histograms_unequal_3z1HistogramComparisonTest.test_histograms_unequal_3c   rs   rt   N)	r1   r2   r3   r#   rm   ro   rr   rv   rx   r4   r   r   rX   rX   G   sn        
7 
7 
71 1 11 1 15 5 55 5 55 5 5 5 5r   rX   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )ScatterComparisonTestc                    t          d t          d          D                       | _        t          d t          d          D                       | _        t          d t          d          D                       | _        dS )r   c                     g | ]}d |fS rZ   r4   r   s     r   r   z/ScatterComparisonTest.setUp.<locals>.<listcomp>n        ; ; ;A!Q ; ; ;r   r_   c                     g | ]}d |fS r}   r4   r   s     r   r   z/ScatterComparisonTest.setUp.<locals>.<listcomp>o   r~   r      c                     g | ]	}d |dz  f
S rZ   r`   r4   r   s     r   r   z/ScatterComparisonTest.setUp.<locals>.<listcomp>p   s      = = =a!QqS = = =r   N)r   r   scatter1scatter2scatter3r!   s    r   r#   zScatterComparisonTest.setUpk   st       ; ;r ; ; ;<< ; ;r ; ; ;<< = =599 = = =>>r   c                 F    |                      | j        | j                   d S r%   )r&   r   r!   s    r   test_scatter_equal_1z*ScatterComparisonTest.test_scatter_equal_1s   "    66666r   c                 F    |                      | j        | j                   d S r%   )r&   r   r!   s    r   test_scatter_equal_2z*ScatterComparisonTest.test_scatter_equal_2v   r   r   c                 F    |                      | j        | j                   d S r%   )r&   r   r!   s    r   test_scatter_equal_3z*ScatterComparisonTest.test_scatter_equal_3y   r   r   c                     	 |                      | j        | j                   d S # t          $ rB}t	          |                              d          s|                     d          Y d }~d S d }~ww xY w)Nz*Scatter not of matching length, 20 vs. 21.'Scatter data mismatch error not raised.)r&   r   r   r)   r*   r+   r,   r-   s     r   test_scatter_unequal_data_shapez5ScatterComparisonTest.test_scatter_unequal_data_shape|   s    	WT]DM::::: 	W 	W 	Wq66$$%QRR W++,UVVVW W W W W W	Wr0   c                     	 |                      | j        | j                   d S # t          $ rB}t	          |                              d          s|                     d          Y d }~d S d }~ww xY w)Nz&Scatter not almost equal to 6 decimalsr   )r&   r   r   r)   r*   r+   r,   r-   s     r    test_scatter_unequal_data_valuesz6ScatterComparisonTest.test_scatter_unequal_data_values   s    	WT]DM::::: 	W 	W 	Wq66$$%MNN W++,UVVVW W W W W W	Wr0   N)	r1   r2   r3   r#   r   r   r   r   r   r4   r   r   rz   rz   i   sv        ? ? ?7 7 77 7 77 7 7W W WW W W W Wr   rz   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )PointsComparisonTestc                    t          d t          d          D                       | _        t          d t          d          D                       | _        t          d t          d          D                       | _        dS )r   c                     g | ]}d |fS r}   r4   r   s     r   r   z.PointsComparisonTest.setUp.<locals>.<listcomp>       999!1v999r   r_   c                     g | ]}d |fS r}   r4   r   s     r   r   z.PointsComparisonTest.setUp.<locals>.<listcomp>   r   r   r   c                     g | ]	}d |dz  f
S r   r4   r   s     r   r   z.PointsComparisonTest.setUp.<locals>.<listcomp>   s     ;;;A1Q3x;;;r   N)r   r   points1points2points3r!   s    r   r#   zPointsComparisonTest.setUp   st     99uRyy999::99uRyy999::;;r;;;<<r   c                 F    |                      | j        | j                   d S r%   )r&   r   r!   s    r   test_points_equal_1z(PointsComparisonTest.test_points_equal_1   "    t|44444r   c                 F    |                      | j        | j                   d S r%   )r&   r   r!   s    r   test_points_equal_2z(PointsComparisonTest.test_points_equal_2   r   r   c                 F    |                      | j        | j                   d S r%   )r&   r   r!   s    r   test_points_equal_3z(PointsComparisonTest.test_points_equal_3   r   r   c                     	 |                      | j        | j                   d S # t          $ rB}t	          |                              d          s|                     d          Y d }~d S d }~ww xY w)Nz)Points not of matching length, 20 vs. 21.z'Points count mismatch error not raised.)r&   r   r   r)   r*   r+   r,   r-   s     r   test_points_unequal_data_shapez3PointsComparisonTest.test_points_unequal_data_shape   s    	WT\4<88888 	W 	W 	Wq66$$%PQQ W++,UVVVW W W W W W	Wr0   c                     	 |                      | j        | j                   d S # t          $ rB}t	          |                              d          s|                     d          Y d }~d S d }~ww xY w)Nz%Points not almost equal to 6 decimalsz&Points data mismatch error not raised.)r&   r   r   r)   r*   r+   r,   r-   s     r   test_points_unequal_data_valuesz4PointsComparisonTest.test_points_unequal_data_values   s    	VT\4<88888 	V 	V 	Vq66$$%LMM V++,TUUUV V V V V V	Vr0   N)	r1   r2   r3   r#   r   r   r   r   r   r4   r   r   r   r      sv        = = =5 5 55 5 55 5 5W W WV V V V Vr   r   c                   &    e Zd Zd Zd Zd Zd ZdS )VectorFieldComparisonTestc                    t           j        ddddf         dz  \  }}t          j        |dz  |dz  z             t           j        z  t           j        z   }dt          j        |dz  |dz  z   dz            z  }dt          j        |dz  |dz  z   dz            z  }t          ||||g          | _        t          ||||g          | _        dS )	r   ir?   g      ?r`   rZ   r<   	   N)r   mgridr   piexpr	   vfield1vfield2)r"   xy
sine_ringsexp_falloff1exp_falloff2s         r   r#   zVectorFieldComparisonTest.setUp   s     xBs2v&-!fQT!Q$Y''-be3
AadA...AadA..."Aa
L#ABB"Aa
L#ABBr   c                 F    |                      | j        | j                   d S r%   )r&   r   r!   s    r   test_vfield_equal_1z-VectorFieldComparisonTest.test_vfield_equal_1   r   r   c                 F    |                      | j        | j                   d S r%   )r&   r   r!   s    r   test_vfield_equal_2z-VectorFieldComparisonTest.test_vfield_equal_2   r   r   c                     	 |                      | j        | j                   d S # t          $ rB}t	          |                              d          s|                     d          Y d }~d S d }~ww xY w)Nz*VectorField not almost equal to 6 decimalsz,VectorField  data mismatch error not raised.)r&   r   r   r)   r*   r+   r,   r-   s     r   test_vfield_unequal_1z/VectorFieldComparisonTest.test_vfield_unequal_1   s    	\T\4<88888 	\ 	\ 	\q66$$%QRR \++,Z[[[\ \ \ \ \ \	\r0   N)r1   r2   r3   r#   r   r   r   r4   r   r   r   r      sX        	C 	C 	C5 5 55 5 5\ \ \ \ \r   r   )__doc__numpyr   	holoviewsr   r   r   r   r   r   r	   holoviews.element.comparisonr
   r   r6   rX   rz   r   r   r4   r   r   <module>r      s        U U U U U U U U U U U U U U U U U U ; ; ; ; ; ;P P P P P, P P P($Q $Q $Q $Q $Q+ $Q $Q $QP5 5 5 5 50 5 5 5DW W W W W. W W WFV V V V V- V V VF\ \ \ \ \ 2 \ \ \ \ \r   