
    e                     r    d dl Zd dlmZ d dlZd dlZd dlm	Z	 d dl
mZmZmZ d dlmZ  G d de          ZdS )    N)product)HoloMap)ContoursCurveImage)ComparisonTestCasec                   b    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd ZdS )DimensionedSelectionTestc                 "    d  _         d  _        d  _        d t          d          D             }t	          d t          dd          D             d	g
           _        t	           fdt          | D             ddg
           _        t	           fdt          | D             ddg
           _         j        	                    d           _
         j         j        z   _         j
         j        z    _         j                            ddg
           _        t	           fdt          d          D                        _        t	           fdt          d          D                        _         j         j        z    _        d S )Nc                  \    t          t          j                            dd                    S )N
   r   nprandomrand     Jlib/python3.11/site-packages/holoviews/tests/element/test_elementselect.py<lambda>z0DimensionedSelectionTest.setUp.<locals>.<lambda>   s    eBINN2r$:$:;; r   c                  N    t          d t          d          D                       S )Nc                 N    g | ]"}t           j                            d d          #S )r      )r   r   r   .0is     r   
<listcomp>zDDimensionedSelectionTest.setUp.<locals>.<lambda>.<locals>.<listcomp>   s8     ,? ,? ,?01 -/INN2q,A,A ,? ,? ,?r   r   )r   ranger   r   r   r   z0DimensionedSelectionTest.setUp.<locals>.<lambda>   s4    ( ,? ,?5:1XX,? ,? ,? #@ #@ r   c            	          t          t          j        ddd          t          j        ddd          t          j        ddd          gt          j                            d          fdd          S )N     r      timex)r   dtdatetimer   r   r   r   r   r   r   z0DimensionedSelectionTest.setUp.<locals>.<lambda>   sd    5[a""BKQq$9$9[a""$INN1* s	$ $ r   c                 F    g | ]}t          t          d                     S )r!   )listr   r   s     r   r   z2DimensionedSelectionTest.setUp.<locals>.<listcomp>   s$    333Q$uQxx..333r   r   c           
      p    i | ]3}|t          |t          j                            d d           z            4S )r   r   r   s     r   
<dictcomp>z2DimensionedSelectionTest.setUp.<locals>.<dictcomp>   sG     &< &< &<*+ '(q21F1F/F)G)G &< &< &<r   r    r   zA B)kdimsc                 D    i | ]\  }}||f                                 S r   img_fnr   r   jselfs      r   r)   z2DimensionedSelectionTest.setUp.<locals>.<dictcomp>   s;      >  >  >$(Aq "#A  >  >  >r   abc                 D    i | ]\  }}||f                                 S r   )
contour_fnr.   s      r   r)   z2DimensionedSelectionTest.setUp.<locals>.<dictcomp>   sC     $B $B $B(,1 &'FDOO,=,= $B $B $Br   r#   yc                 :    i | ]}|                                 S r   r,   r   r   r0   s     r   r)   z2DimensionedSelectionTest.setUp.<locals>.<dictcomp>%   s#     D D DaDKKMM D D Dr      c                 :    i | ]}|                                 S r   r,   r7   s     r   r)   z2DimensionedSelectionTest.setUp.<locals>.<dictcomp>&   s#     E E EaDKKMM E E Er   )r-   r4   datetime_fnr   r   sanitized_mapr   img_mapcontour_mapoverlayndoverlay_mapoverlay_map
layout_mapcloneduplicate_mapoverlap1overlap2overlap_layout)r0   paramss   ` r   setUpzDimensionedSelectionTest.setUp   s   ;;@ @ 
 43%((333$ &< &</4Qr{{&< &< &<DI7L L L  >  >  >  >,3V,< >  >  >&)3Z1 1 1 # $B $B $B $B070@$B $B $B*-s5 5 5 "\11#66<$*::,t/??!\//sCj/AA D D D D588 D D DEE E E E E599 E E EFF"mdm;r   c                 |    |                      | j                            dd          | j        d                    d S )Nr   r    r1   r2   r   r    assertEqualr<   selectr0   s    r   test_simple_holoselectz/DimensionedSelectionTest.test_simple_holoselect*   sE    ,,qA,66d+	- 	- 	- 	- 	-r   c                     |                      | j                            dd          | j        ddddf                    d S Nr    r!   rJ   r    r!   rL   rO   s    r   test_simple_holoslicez.DimensionedSelectionTest.test_simple_holoslice/   sQ    ,,v,@@ac1Q3h/	1 	1 	1 	1 	1r   c                     |                      | j                            d d           | j        ddddf                    d S )Nc                 "    d| cxk    odk     nc S Nr    r!   r   r#   s    r   r   zBDimensionedSelectionTest.test_function_holoslice.<locals>.<lambda>5       a! r   c                 "    d| cxk    odk     nc S rW   r   rX   s    r   r   zBDimensionedSelectionTest.test_function_holoslice.<locals>.<lambda>6   rY   r   rJ   r    r!   rL   rO   s    r   test_function_holoslicez0DimensionedSelectionTest.test_function_holoslice4   sa    ,,/C/C/C/C - E Eac1Q3h/	1 	1 	1 	1 	1r   c                 ~    |                      | j                            d          | j        dd                    d S )NrS   )A_Br    r!   )rM   r;   rN   rO   s    r   test_sanitized_holoslicez1DimensionedSelectionTest.test_sanitized_holoslice:   sI    +22u2==+AaC0	2 	2 	2 	2 	2r   c                     |                      | j                            dd          | j        ddddf                    d S rR   )rM   r?   rN   rO   s    r    test_simple_holo_ndoverlay_slicez9DimensionedSelectionTest.test_simple_holo_ndoverlay_slice?   sS    +22Vv2FF+AaC1H5	7 	7 	7 	7 	7r   c           	          | j                             dddd          }|                     || j         ddddd dd df                    d S )NrS   )Nr   r1   r2   r#   r5   r    r!   r   )r<   rN   rM   r0   	selections     r   test_deep_holoslicez,DimensionedSelectionTest.test_deep_holosliceD   s\    L''%6Y)'TT	DL1ac2A2rr1A$BCCCCCr   c                     | j         ddddf         }|                    d t          t          g          }| j                             dddd          }|                     ||           d S )Nr    r!   c                     | ddddf         S )Nr         ?r   rX   s    r   r   zFDimensionedSelectionTest.test_deep_holooverlay_slice.<locals>.<lambda>K   s    !C%3, r   rS   r   rh   rb   )r@   mapr   r   rN   rM   )r0   map_slcimg_slcrd   s       r   test_deep_holooverlay_slicez4DimensionedSelectionTest.test_deep_holooverlay_sliceI   sr    "1Q3!8,++77%9JKK$++evX+VV	G,,,,,r   c                     | j         j        j        ddddddddf         }| j         j        j        ddddddddf         }| j                             dddd          }|                     |||z              d S )Nr    r!   r   rh   rS   ri   rb   )rA   r   IIIrN   rM   )r0   hmap1hmap2rd   s       r   test_deep_layout_nesting_slicez7DimensionedSelectionTest.test_deep_layout_nesting_sliceP   s    ')!A#qsAcE1S5*@A'*1Q3!QsUAcE+ABO**UfH*UU	EEM22222r   c                     | j                             t          fdd          }|                     || j         ddddf                    d S )NrK   rS   )selection_specsr#   r5   r   r    r!   )rC   rN   r   rM   rc   s     r   test_spec_duplicate_dim_selectz7DimensionedSelectionTest.test_spec_duplicate_dim_selectV   sZ    &--$J&F . 
 
	 	D$6qsAaCx$@AAAAAr   c           	          | j                             dd          }|                     || j         d dd dd dd df                    d S )N)Nrh   )r#   r5   rh   )rC   rN   rM   rc   s     r   test_duplicate_dim_selectz2DimensionedSelectionTest.test_duplicate_dim_select\   sZ    &--{-KK	D$6ssCRC"crc7I$JKKKKKr   c                     | j                             d          }|                     || j                            d          | j        dd          z              d S )N)   N)DefaultF)shared_datarz   )rF   rN   rM   rD   rB   rE   rc   s     r   test_overlap_selectz,DimensionedSelectionTest.test_overlap_select`   s]    '..y.AA	DM$7$7E$7$J$JT][\[][]M^$^_____r   c                    d\  }}|                                  }||                                  z  }||fD ]}|                    ||f          }|                     ||||                    |                     |                    t          j        ddd          t          j        ddd          f          |||                    |                     |                    t          j        |          t          j        |          f          |t          j        |          t          j        |                              d S )	Nz
1999-12-31z2000-1-2r"   i        r   r    r   )r:   rN   rM   r$   r%   pd	Timestamp)r0   securver>   elvs          r   test_datetime_selectz-DimensionedSelectionTest.test_datetime_selectd   sL   '1  ""$**,,,'" 	4 	4B		1v	&&AQ1Q3(((RYYT2r**BKa,C,CD ' F FGI!A#w   RYYl1oor|A7 '  ",q//",q//124 4 4 4	4 	4r   c                     d\  }}|                                  }|                     t          d          5  |                    t          f||f           d d d            d S # 1 swxY w Y   d S )Nr   zUse the selection_specs keywordr   )r:   assertRaisesRegex
ValueErrorrN   r   )r0   r   r   r   s       r   ,test_selection_spec_positional_error_messagezEDimensionedSelectionTest.test_selection_spec_positional_error_messager   s    '1  ""##=
 
 	0 	0 LL%AL///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s    A""A&)A&N)__name__
__module____qualname__rH   rP   rT   r[   r^   r`   re   rm   rs   rv   rx   r}   r   r   r   r   r   r
   r
      s        < < <8- - -
1 1 1
1 1 12 2 2
7 7 7
D D D
- - -3 3 3B B BL L L` ` `4 4 40 0 0 0 0r   r
   )r%   r$   	itertoolsr   numpyr   pandasr   holoviews.corer   holoviews.elementr   r   r   holoviews.element.comparisonr   r
   r   r   r   <module>r      s                      " " " " " " 4 4 4 4 4 4 4 4 4 4 ; ; ; ; ; ;l0 l0 l0 l0 l01 l0 l0 l0 l0 l0r   