
    Eg2                     |   d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlmc mZ  G d d          Z G d d          Z G d d          Zej                            d	d
dg          d             Zej                            d	d
dg          d             Zej        d             Zd Z dS )    N)NACategoricalCategoricalIndexIndexIntervalIntervalIndexNaTPeriodIndexSeries	Timedelta	Timestampc            
          e Zd Zd Zd Zej                            d eddg           eddgddg          g          d             Z	ej                            d eddgg d           eddgg d	           eddgdg           eddgdg          g          d
             Z
ej                            d eddg           eddgddgd           eddgg d	d          g          d             Zd Zd ZdS )!TestCategoricalIndexingWithFactorc                    t          g dd          }|d         dk    sJ |d         dk    sJ |g d         }t          j        |j        t	          j        g d	t          j        
                     |t	          j        |          dk             }t          j        |j        t	          j        g dt          j        
                     d S )Nabr   r   r   cr   r   Torderedr   r   r   )r         )r   r   r   dtype)r   r   r   )r   tmassert_numpy_array_equal_codesnparrayint8asarray)selffactorsubfs      b/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/arrays/categorical/test_indexing.pytest_getitemz.TestCategoricalIndexingWithFactor.test_getitem   s    EEEtTTTayCbzS    iii 
#DK)))271S1S1STTTbj((C/0
#DK)))271S1S1STTTTT    c                 |   t          g dd          }|                                }d|d<   |d         dk    sJ d|d<   |d         dk    sJ |                                }t          j        t	          |          d	          }d|d<   d|d<   d
||<   t          g dd          }t          j        ||           d S )Nr   Tr   r   r   r   r   boolr   r   )r   r   r   r   r   r   r   r   )r   copyr   zeroslenr   assert_categorical_equal)r#   r$   r   indexerexpecteds        r&   test_setitemz.TestCategoricalIndexingWithFactor.test_setitem#   s    EEEtTTTKKMM!ts{{{{"u|||| KKMM(3q66000
'
GGGQUVVV
#Ax00000r(   otherr   r   
categoriesc                     t          ddgddg          }t          j        ddg          }||         ||<   t          ddgddg          }t          j        ||           d S )Nr   r   r3   TF)r   r   r    r   r.   )r#   r2   targetmaskr0   s        r&   test_setitem_same_but_unorderedzATestCategoricalIndexingWithFactor.test_setitem_same_but_unordered6   sq     c3ZS#J???xu&&T{tSzsCjAAA
#FH55555r(   )r   r   r   r   r   r   c                     t          ddgddg          }t          j        ddg          }d}t          j        t
          |          5  ||         ||<   d d d            d S # 1 swxY w Y   d S )Nr   r   r3   TFCCannot set a Categorical with another, without identical categoriesmatchr   r   r    pytestraises	TypeErrorr#   r2   r6   r7   msgs        r&   'test_setitem_different_unordered_raiseszITestCategoricalIndexingWithFactor.test_setitem_different_unordered_raisesB   s     c3ZS#J???xu&&S]9C000 	' 	' ;F4L	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   	A""A&)A&Tr4   r   c                     t          ddgddgd          }t          j        ddg          }d}t          j        t
          |          5  ||         ||<   d d d            d S # 1 swxY w Y   d S )Nr   r   TrE   Fr;   r<   r>   rB   s        r&    test_setitem_same_ordered_raiseszBTestCategoricalIndexingWithFactor.test_setitem_same_ordered_raisesS   s     c3ZS#JMMMxu&&S]9C000 	' 	' ;F4L	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   
A##A'*A'c                 Z    t          g d          }|d         |d<   |d         dk    sJ d S )N)r   r   )r   r   rI   r   r   rI   )r   r#   cats     r&   test_setitem_tuplez4TestCategoricalIndexingWithFactor.test_setitem_tuplec   s@    22233 QA1vr(   c                 (   t          t          j                            d                              ddd                              t          j                                                dg          }t          j        dg                              t          j	                  }d||<   |j
        t          j        dg                              t          j	                           }t          j        |t          j        dgd	                     d S )
Nr   r      I sizei順 r!   r   )r   r   randomdefault_rngintegersastyper!   add_categoriesr    int64codesr   r   )r#   rK   r/   results       r&   test_setitem_listlikez7TestCategoricalIndexingWithFactor.test_setitem_listlikek   s     I!!!$$--a-@@GGPP
 

.%
!
! 	 (F8$$++BH55G 28VH--44RX>>?
#FBHaS,G,G,GHHHHHr(   N)__name__
__module____qualname__r'   r1   r?   markparametrizer   r8   rD   rG   rL   r[    r(   r&   r   r      s       	U 	U 	U1 1 1& [	c3Z	 	 ++sCjc3Z"P"P"PQ 6 6	 6 [Kc
???Kc
???Kc
u555Kc
u555		
 ' ' ' [Kc
##Kc
Sz4HHHKc
MMM	
 ' ' '     I I I I Ir(   r   c                   J   e Zd Zd Zd Zd Zej                            dde	j
        eeej
        dddd	d
dg          d             Zej                            dg dddgg          d             Zej                            dg dg dg dg dg          ej                            dddgddgddgddgg          ej                            deeg          ej                            dg d          d                                                 Zd Zd Zd Zd Zd  ZdS )!TestCategoricalIndexingc                     t          g d          }|d         }|dk    sJ |dd         }t          ddgg d          }t          j        ||           d S )N)r   r   r   dr   r   r      re   rN   r   )r   r   r   re   r3   )r   r   r.   )r#   rK   slicedr0   s       r&   test_getitem_slicez*TestCategoricalIndexing.test_getitem_slice|   so    ===>>Q}}}}QqSSz6J6J6JKKK
#FH55555r(   c                    t          t          j                            d                              ddd                              t          j                            }|j        t          j        dg                              t          j	                           }|t          j        dg                              t          j	                           j        }t          j        ||           d S )Nr   r   rN   rO   rP   rR   )r   r   rS   rT   rU   rV   r!   rY   r    rX   r   r   )r#   r   rZ   r0   s       r&   test_getitem_listlikez-TestCategoricalIndexing.test_getitem_listlike   s     I!!!$$--a-@@GGPP
 
 6(++2228<<=RXvh''..rx889?
#FH55555r(   c                    t          g dd          }t          |          }t          |           t          j        g dt          j                  }t          g dd          }t          j        |j        |           t          j	        |j
        |           t          g dd          }t          |d	          }t          |           t          j        g d
t          j                  }t          g dd          }t          j        |j        |           t          j	        |j
        |           t          g dd          }t          |d	          }	t          j        g dt          j                  }t          g dd          }t          j        |	j        |           t          j	        |	j
        |           d S )N)2014-01rl   2014-02rm   2014-03rn   Mfreq)r   r   r   r   r   r   r   )rl   rm   rn   )rn   rn   rm   rl   rn   rl   Tr   )r   r   r   r   r   r   )2013-122013-112013-102013-092013-082013-072013-05)   rN      rf   r   r   r   )rx   rw   rv   ru   rt   rs   rr   )r
   r   strr   r    r!   r   r   r   assert_index_equalr4   )
r#   idx1cat1exp_arrexp_idxidx2cat2exp_idx2idx3cat3s
             r&   test_periodindexz(TestCategoricalIndexing.test_periodindex   s   NNN
 
 

 4  D			(---RW===???cJJJ
#DK999
dow777NNN
 
 
 4...D			(---RW===@@@sKKK
#DK999
dox888   
 
 
 4...(000@@@   
 
 
 	#DK999
dow77777r(   null_valNr	   natNATnanNaNNANc                     t          dd|gd          }t          g dd          }|d         t          u sJ t          j        ||           d S )	N
2022-04-06
2022-04-07Drp   )r   r   r	   z	period[D]r   r   )r
   r	   r   r|   )r#   r   rZ   r0   s       r&   test_periodindex_on_null_typesz6TestCategoricalIndexing.test_periodindex_on_null_types   sd     lL(C#NNNBBB+VVVayC
fh/////r(   new_categories)r   r   rf   rz   r   r   c                     t          g d          }d}t          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )N)r   r   r   r   zKnew categories need to have the same number of items as the old categories!r<   )r   r?   r@   
ValueErrorrename_categories)r#   r   rK   rC   s       r&   /test_categories_assignments_wrong_length_raiseszGTestCategoricalIndexing.test_categories_assignments_wrong_length_raises   s    ...//% 	 ]:S111 	2 	2!!.111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   AAA
idx_values)r   rf   r   rz   )r   rf   rf   rz   )r   r   r   rz   
key_valuesrN   	key_classr   )Ncategorykeyc                     ||t          dd                    }|dk    r|j        }t          ||          }|                    |          \  }}|                    |          \  }	}
t	          j        ||	           t	          j        ||
           |                                                    |          }|                                                    |          }t	          j        ||           d S )Nr   rN   r3   r   r   )ranger   r   get_indexer_non_uniquer   r   uniqueget_indexer)r#   r   r   r   r   r   idxr0   exp_missrZ   res_miss
exp_unique
res_uniques                r&   test_get_indexer_non_uniquez3TestCategoricalIndexing.test_get_indexer_non_unique   s     i
uQ{{;;;E>>IE Je,,, 77
CC(55c::
#Hf555
#Hh777ZZ\\--j99
ZZ\\--c22

#J
;;;;;r(   c                    t          t          ddg                    }|                    ddg          }t          t          dd gddg                    }t          j        ||           t          t          ddg                    }|                    ddg          }t          t          d d gddg                    }t          j        ||           d S )Nr   r   TFr3   )r   r   wherer   assert_series_equalr#   serrZ   r0   s       r&   test_where_unobserved_nanz1TestCategoricalIndexing.test_where_unobserved_nan   s    [#s,,--D%=))+sDksCjIIIJJ
vx000 [#s,,--E5>**+tTlSzJJJKK
vx00000r(   c                     t          t          g dg d                    }|                    g dd          }t          t          g d|j        j                            }t          j        ||           d S )Nr9   re   r   r   r   r3   )TTFr   )r2   )r   r   r   )r   r   r   rK   r4   r   r   r   s       r&    test_where_unobserved_categoriesz8TestCategoricalIndexing.test_where_unobserved_categories  s    [=Q=Q=QRRRSS...c::+ooo#'BTUUUVV
vx00000r(   c                    t          t          g dg d                    }t          g dg d          }|                    g d|          }t          t          g d|j                            }t	          j        ||           d S )	Nr9   r   r3   r   r   r   r   r   r   re   TFT)r   r   r   r   )r   r   r   r   r   r   )r#   r   r2   rZ   r0   s        r&   test_where_other_categoricalz4TestCategoricalIndexing.test_where_other_categorical  s    [=Q=Q=QRRRSSOOO8L8L8LMMM...66+oooSYGGGHH
vx00000r(   c                     t          t          g d                    }d}t          j        t          |          5  |                    g dd           d d d            d S # 1 swxY w Y   d S )Nr9   z3Cannot setitem on a Categorical with a new categoryr<   r   re   r   r   r?   r@   rA   r   )r#   r   rC   s      r&   test_where_new_category_raisesz6TestCategoricalIndexing.test_where_new_category_raises  s    [1122C]9C000 	0 	0II)))3///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   A""A&)A&c                    t          t          g dg dd                    }t          g dg dd          }t          j        t          d          5  |                    g d	|           d d d            d S # 1 swxY w Y   d S )
Nr9   r   TrE   r   r   zwithout identical categoriesr<   r   r   )r#   r   r2   s      r&   !test_where_ordered_differs_rasiesz9TestCategoricalIndexing.test_where_ordered_differs_rasies  s    4H4H4HRVWWW
 
 OO(<(<(<d
 
 
 ]9,JKKK 	2 	2II)))5111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   A;;A?A?)r\   r]   r^   rh   rj   r   r?   r_   r`   r   r   r	   r   mathr   r   r   r   r   r   r   r   r   r   ra   r(   r&   rc   rc   {   s       6 6 6	6 	6 	638 38 38j [	rvsB%ueUS 0 0	 0 [-q!f/EFF2 2 GF2 [|||\\\<<<N  [\QFQFQFQF+KLL[[;8H*IJJ[W&?&?&?@@< < A@ KJ ML	 <&
1 
1 
11 1 11 1 10 0 02 2 2 2 2r(   rc   c                       e Zd Zd Zej                            d edd          dfd edd          d	fd
 ed          d	f e	d          d	fge
          d             Zd ZdS )TestContainsc                    t          t          d          t          d                    }d|v sJ d|vsJ t          j        |vsJ t	          j        t          d          5  dg|v sJ 	 d d d            n# 1 swxY w Y   d	|vsJ d|vsJ t          t          d          t          j        gz   t          d                    }t          j        |v sJ d S )
Naabbcacabr3   r   zzunhashable type: 'list'r<   r   r   )r   listr   r   r?   r@   rA   rJ   s     r&   test_containszTestContains.test_contains   s   $x..T%[[AAAczzzz#~~~~vS    ]9,EFFF 	 	3#:::::	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ||||||||$x..BF83ULLLv}}}}}}s   #A88A<?A<zitem, expectedr   r   T)      ?Tg      ?r   F)r   F)idsc                 v    t          t          j        t          d                              }||v }||u sJ d S )Nrf   )r   r   from_breaksr   )r#   itemr0   rK   rZ   s        r&   test_contains_intervalz#TestContains.test_contains_interval1  sB     -3E!HH==>>!!!!!!r(   c                    t          g d          }d|vsJ t          j        t          d          5  dg|v  d d d            n# 1 swxY w Y   t          j        t          d          5  ddg|v  d d d            d S # 1 swxY w Y   d S )N)r   r   rf   r   zunhashable typer<   r   )r   r?   r@   rA   rJ   s     r&   test_contains_listzTestContains.test_contains_listC  s!   )))$$#~~~~]9,=>>> 	 	ESLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9,=>>> 	 	#J#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AA	A	+A??BBN)r\   r]   r^   r   r?   r_   r`   r   r   r   r{   r   r   ra   r(   r&   r   r     s          " [Xa^^T"Xc3'Yq\\5!Yq\\5!	
    " " "
 
 
 
 
r(   r   indexTFc                    t          t          d                    }t          g d          }| rt          |          }t	          j        |          sJ ||         }||                    d                   }t          j        ||           d S )Nrf   r   object)	r   r   r   r   comis_bool_indexerrV   r   r   r   r   r   rZ   r0   s        r&   test_mask_with_booleanr   P  s    
q

C
)))
*
*C $s##s#####XF3::h''(H68,,,,,r(   c                     t          t          d                    }t          g d          }| rt          |          }||         }||                    d                   }t          j        ||           d S )Nrf   )TFNF)r   r   r   r   fillnar   r   r   s        r&   *test_mask_with_boolean_na_treated_as_falser   ]  sx     q

C
)))
*
*C $s##XF3::e$$%H68,,,,,r(   c              #      K   dd}|                                  5 }|                    t          d|           dV  ddd           dS # 1 swxY w Y   dS )z
    Monkeypatch Categorical.__array__ to ensure no implicit conversion.

    Raises
    ------
    ValueError
        When Categorical.__array__ is called.
    Nc                      t          d          )NzI cannot be converted.)r   )r#   r   s     r&   r    z(non_coercible_categorical.<locals>.arrayx  s    1222r(   	__array__)N)contextsetattrr   )monkeypatchr    ms      r&   non_coercible_categoricalr   k  s      3 3 3 3 
				 !			+{E222                 s   !A		AAc                  p    t          g d          } t          |           }|j        d         }|dk    sJ d S )Nr9   r   r   )r   r   at)arrr   rZ   s      r&   test_series_atr     s:    
ooo
&
&C
++CVAYFS======r(   )!r   numpyr   r?   pandasr   r   r   r   r   r   r	   r
   r   r   r   pandas._testing_testingr   pandas.core.commoncorecommonr   r   rc   r   r_   r`   r   r   fixturer   r   ra   r(   r&   <module>r      s                                                         aI aI aI aI aI aI aI aIHa2 a2 a2 a2 a2 a2 a2 a2H. . . . . . . .b 4-00	- 	- 10	- 4-00
- 
- 10
-   (    r(   