
    e                         d Z ddlZddl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
dS )z-
Unit tests of Ellipsis (...) in __getitem__
    N)ComparisonTestCasec                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestEllipsisChartsc                     t          j        d t          d          D                       dddf         }|                     |                    d          d           d S )Nc                     g | ]	}|d |z  f
S     .0is     Elib/python3.11/site-packages/holoviews/tests/element/test_ellipsis.py
<listcomp>zBTestEllipsisCharts.test_curve_ellipsis_slice_x.<locals>.<listcomp>        666qAac7666    
   r	      .xr	      hvCurverangeassertEqualselfsliceds     r   test_curve_ellipsis_slice_xz.TestEllipsisCharts.test_curve_ellipsis_slice_x   s[    66E"II66677!C@c**E22222r   c                     t          j        d t          d          D                       dddf         }|                     |                    d          d           d S )Nc                     g | ]	}|d |z  f
S r   r
   r   s     r   r   zBTestEllipsisCharts.test_curve_ellipsis_slice_y.<locals>.<listcomp>   r   r   r   .   	   y      r   r   s     r   test_curve_ellipsis_slice_yz.TestEllipsisCharts.test_curve_ellipsis_slice_y   s[    66E"II66677QqSAc**E22222r   c                     t          j        d t          d          D                       dddf         }|                     |                    d          d           d S )Nc                     g | ]	}|d |z  f
S r   r
   r   s     r   r   zCTestEllipsisCharts.test_points_ellipsis_slice_x.<locals>.<listcomp>   s     888a!W888r   r   r	   r   .r   r   r   Pointsr   r   r   s     r   test_points_ellipsis_slice_xz/TestEllipsisCharts.test_points_ellipsis_slice_x   s[    )88eBii88899!A#c'B			&,,s++U	3	3	3	3	3r   c                 T    t          j        t          d                    d          d S )Nr   ).r$   )r   Scatterr   )r   s    r   test_scatter_ellipsis_valuez.TestEllipsisCharts.test_scatter_ellipsis_value   s#    

599g&&&&r   c                     	 t          j        t          d                    d          d S # t          $ r-}t	          |          dk    rt          d          Y d }~d S d }~ww xY w)Nr   .zNon-existent2'Non-existent' is not an available value dimensionIncorrect exception raised.)r   r/   r   	ExceptionstrAssertionError)r   es     r   #test_scatter_ellipsis_value_missingz6TestEllipsisCharts.test_scatter_ellipsis_value_missing   s    	DJuRyy!!"45555 	D 	D 	D1vvMMM$%BCCC NMMMMM	Ds   '+ 
A""AA"c                     t          j        d t          d          D                       dddf         }|                     |                    d          d           d S )Nc                     g | ]	}|d |z  f
S r   r
   r   s     r   r   zCTestEllipsisCharts.test_points_ellipsis_slice_y.<locals>.<listcomp>#   s     777QqsG777r   r   .r"   r#   r$   r%   r+   r   s     r   test_points_ellipsis_slice_yz/TestEllipsisCharts.test_points_ellipsis_slice_y"   s[    77U2YY77788acBc**E22222r   c                     t          j        t          d          d          \  }}t          j        ||f          d         }|                     t          |                    d                    d           d S )N   ).	Frequencyr   np	histogramr   r   	Histogramr   lendimension_valuesr   frequenciesedgesr   s       r   #test_histogram_ellipsis_slice_valuez6TestEllipsisCharts.test_histogram_ellipsis_slice_value&   sj    \%))R88U{E2334DEV44Q7788"=====r   c                     t          j        t          d          d          \  }}t          j        ||f          dddf         }|                     t          |                    d                    d           d S )Nr>   r      .r@   rF   s       r   #test_histogram_ellipsis_slice_rangez6TestEllipsisCharts.test_histogram_ellipsis_slice_range+   sq    \%))R88Uuk233AaCH=V44Q7788!<<<<<r   c                     t          j        t          d          d          \  }}|                     t                    5  t          j        ||f          d          d d d            d S # 1 swxY w Y   d S )Nr>   r2   )rA   rB   r   assertRaises
IndexErrorr   rC   )r   rG   rH   s      r   +test_histogram_ellipsis_slice_value_missingz>TestEllipsisCharts.test_histogram_ellipsis_slice_value_missing1   s    \%))R88Uz** 	D 	DL+u-../BCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds    A**A.1A.N)__name__
__module____qualname__r   r(   r-   r0   r9   r<   rI   rL   rP   r
   r   r   r   r   
   s        3 3 33 3 34 4 4' ' 'D D D3 3 3> > >
= = =D D D D Dr   r   c                   0     e Zd Z fdZd Zd Zd Z xZS )TestEllipsisTablec                     g d}g d}t          j        t          ||          ddgddg          | _        t	                                                       d S )N))Mr   )rW      )F   ))   皙?)   g333333?)r   r\   GenderAgeWeightHeight)kdimsvdims)r   TableziptablesupersetUp)r   keysvalues	__class__s      r   rh   zTestEllipsisTable.setUp9   sd    ///222HSf--&.%6$,h#79 9 9
 	r   c                 <    | j         d         }|j        dgk    sJ d S )N).r`   r`   rf   rc   r   s     r   &test_table_ellipsis_slice_value_weightz8TestEllipsisTable.test_table_ellipsis_slice_value_weightA   )    M*|hZ''''''r   c                 <    | j         d         }|j        dgk    sJ d S )N).ra   ra   rm   r   s     r   &test_table_ellipsis_slice_value_heightz8TestEllipsisTable.test_table_ellipsis_slice_value_heightE   ro   r   c                     | j         d         }t          d |                    d          D                       st          d          d S )N)rW   .c              3   "   K   | ]
}|d k    V  dS )rW   Nr
   )r   els     r   	<genexpr>zITestEllipsisTable.test_table_ellipsis_slice_key_gender.<locals>.<genexpr>K   s&      GGr2s7GGGGGGr   r^   z%Table key slicing on 'Gender' failed.)rf   allrE   r7   r   s     r   $test_table_ellipsis_slice_key_genderz6TestEllipsisTable.test_table_ellipsis_slice_key_genderI   sW    G$GGV%<%<X%F%FGGGGG 	J !HIII	J 	Jr   )rQ   rR   rS   rh   rn   rq   rw   __classcell__)rk   s   @r   rU   rU   7   sl            ( ( (( ( (J J J J J J Jr   rU   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestEllipsisRasterc                     t           j                            dd          }t          j        |          d         }|                     |j        |           d S Nr   ).z)rA   randomrandr   Rasterr   datar   r   r   s      r    test_raster_ellipsis_slice_valuez3TestEllipsisRaster.test_raster_ellipsis_slice_valueR   sG    y~~b$$4)d+++++r   c                     t           j                            dd          }	 t          j        |          d          d S # t
          $ r+}dt          |          vrt          d          Y d }~d S d }~ww xY w)Nr   r2   z*'z' is the only selectable value dimensionUnexpected exception.)rA   r~   r   r   r   r5   r6   r7   r   r   r8   s      r   (test_raster_ellipsis_slice_value_missingz;TestEllipsisRaster.test_raster_ellipsis_slice_value_missingW   s    y~~b$$	>IdOO.//// 	> 	> 	>=SVVKK$%<=== LKKKKK	>s   > 
A3 A..A3c                     t           j                            dd          }t          j        |          d         }|                     |j        |           d S r|   )rA   r~   r   r   Imager   r   r   s      r   test_image_ellipsis_slice_valuez2TestEllipsisRaster.test_image_ellipsis_slice_value_   sG    y~~b$$$(d+++++r   c                     t           j                            dd          }	 t          j        |          d          d S # t
          $ r-}t          |          dk    rt          d          Y d }~d S d }~ww xY w)Nr   r2   r3   r   )rA   r~   r   r   r   r5   r6   r7   r   s      r   'test_image_ellipsis_slice_value_missingz:TestEllipsisRaster.test_image_ellipsis_slice_value_missingd   s    y~~b$$	>HTNN-.... 	> 	> 	>1vvMMM$%<=== NMMMMM	>s   > 
A5"A00A5c                     t           j                            ddd          }t          j        |          d d d d df         }|                     |j        |d d d d df                    d S )Nr   r"   Rr   )rA   r~   r   r   RGBr   r   r   s      r   test_rgb_ellipsis_slice_valuez0TestEllipsisRaster.test_rgb_ellipsis_slice_valuel   si    y~~bA&&aaa#g&&+tAAAaaaE{33333r   c                    t          j        t          j                            ddd                    }	 |d          d S # t
          $ r:}t          |          t          d          k    rt          d          Y d }~d S d }~ww xY w)Nr   r"   r2   r3   r4   )	r   r   rA   r~   r   r5   r6   reprr7   )r   rgbr8   s      r   %test_rgb_ellipsis_slice_value_missingz8TestEllipsisRaster.test_rgb_ellipsis_slice_value_missingr   s    fRY^^Br!,,--	D"#### 	D 	D 	D1vvRSSSS$%BCCC TSSSSS	Ds   ? 
B	/A>>BN)	rQ   rR   rS   r   r   r   r   r   r   r
   r   r   rz   rz   P   ss        , , ,
> > >, , ,
> > >4 4 4D D D D Dr   rz   c                        e Zd Zd Zd Zd ZdS )TestEllipsisDeepIndexingc                     t          j        d t          d          D                       }|dddf         }|                     |                                g d           d S )Nc           	      f    i | ].}|t          j        d  t          d          D                       /S )c                     g | ]}||fS r
   r
   r   js     r   r   zZTestEllipsisDeepIndexing.test_deep_ellipsis_curve_slicing_1.<locals>.<dictcomp>.<listcomp>       &@&@&@!u&@&@&@r   r   r   r   r   r   s     r   
<dictcomp>zOTestEllipsisDeepIndexing.test_deep_ellipsis_curve_slicing_1.<locals>.<dictcomp>   I     ' ' ' RX&@&@eBii&@&@&@AA ' ' 'r   r   r	   rK   .)r	   r"   r&   )r   HoloMapr   r   ri   r   hmapr   s      r   "test_deep_ellipsis_curve_slicing_1z;TestEllipsisDeepIndexing.test_deep_ellipsis_curve_slicing_1~   sn    z ' '!"II' ' ' ( (ac#g			22222r   c                     t          j        d t          d          D                       }|dddddf         }|                     |j                            d          d	           d S )
Nc           	      f    i | ].}|t          j        d  t          d          D                       /S )c                     g | ]}||fS r
   r
   r   s     r   r   zZTestEllipsisDeepIndexing.test_deep_ellipsis_curve_slicing_2.<locals>.<dictcomp>.<listcomp>   r   r   r   r   r   s     r   r   zOTestEllipsisDeepIndexing.test_deep_ellipsis_curve_slicing_2.<locals>.<dictcomp>   r   r   r   r	   rK      r'   .r   )r   r   r   r   r   r   lastr   s      r   "test_deep_ellipsis_curve_slicing_2z;TestEllipsisDeepIndexing.test_deep_ellipsis_curve_slicing_2   sy    z ' '!"II' ' ' ( (ac!A#ck"**3//77777r   c                     t          j        d t          d          D                       }|dddf         }|                     |j                            d          d           d S )Nc           	      f    i | ].}|t          j        d  t          d          D                       /S )c                     g | ]	}|d |z  f
S r   r
   r   s     r   r   zZTestEllipsisDeepIndexing.test_deep_ellipsis_curve_slicing_3.<locals>.<dictcomp>.<listcomp>   s     &B&B&B1!A#w&B&B&Br   r   r   r   s     r   r   zOTestEllipsisDeepIndexing.test_deep_ellipsis_curve_slicing_3.<locals>.<dictcomp>   sI     ' ' ' RX&B&Bb		&B&B&BCC ' ' 'r   r   .r	   rK   r$   )r	   r&   r   r   s      r   "test_deep_ellipsis_curve_slicing_3z;TestEllipsisDeepIndexing.test_deep_ellipsis_curve_slicing_3   sr    z ' '!"II' ' ' ( (c!A#g**3//88888r   N)rQ   rR   rS   r   r   r   r
   r   r   r   r   |   sA        3 3 38 8 89 9 9 9 9r   r   )__doc__numpyrA   	holoviewsr   holoviews.element.comparisonr   r   rU   rz   r   r
   r   r   <module>r      s            ; ; ; ; ; ;*D *D *D *D *D+ *D *D *DZJ J J J J* J J J2(D (D (D (D (D+ (D (D (DX9 9 9 9 91 9 9 9 9 9r   