
    bMhQ                         d dl m Z  d dlZd dlZd dlZd dlm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  G d d          ZdS )    )datetimeN)using_string_dtype)
ArrowDtype	DataFrameIndexSeriesStringDtypebdate_range)opsc            
       <   e Zd Zej                            d          ej                            dej        ej	        ej
        g          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ej                            dej        ej	        ej
        g          d             Zd Zej                            dej        ej        g          d             Zej                            dej         eddg          fej         eddg          fej         eddg          fg          d             Z ej        !                     e"            d          d             Z#d Z$ej        !                    d          d             Z%d Z&dS ) TestSeriesLogicalOpsz4ignore:Downcasting object dtype arrays:FutureWarningbool_opc                    t          t          dd          t                    }t          j        |d d d<   |                                }|                    |d                   } |||d         k     ||d         k              } |||d         k     ||d         k              }d	||<   t          j        ||           d S )
Nz1/1/2000
   )periodsdtype   r   	      F)	r   r
   objectnpnanisnafillnatmassert_series_equal)selfr   sermaskfilledresultexpecteds          d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/series/test_logical_ops.pytest_bool_operators_with_nasz1TestSeriesLogicalOps.test_bool_operators_with_nas   s     [R888GGG6CCaCxxzzCF##s1vsSV|4476F1I-vq	/ABB
vx00000    c                 T   t          d          }t          g d|          }t          g d|          }t          g t                    }||z  }|                                }t	          j        ||           ||z  }|                                }t	          j        ||           d S )NbcaTFTindexFFFr   )listr   r   
sort_indexr   r   )r   r+   s_tfts_fffs_emptyresr#   s          r$   ,test_logical_operators_bool_dtype_with_emptyzATestSeriesLogicalOps.test_logical_operators_bool_dtype_with_empty&   s    U***%888,,,E:::6***go##%%
sH---go##%%
sH-----r&   c                    t          t          d          d          }t          dgdz            }t          dgdz            }||z  }t          t          d          d          }t          j        ||           ||z  }t          t          dd          d          }t          j        ||           t          dgdz  d          }||z  }t          g dd          }t          j        ||           |                    t
          j                  |                    t
          j                  z  }t          g d	d
          }t          j        ||           d S )N   int64r   r         int8r   r8   r   r8   )r8   r8   r   r   int32)r   ranger   r   astyper   int16r;   )r   s_0123s_3333s_4444r2   r#   s_1111s          r$   /test_logical_operators_int_dtype_with_int_dtypezDTestSeriesLogicalOps.test_logical_operators_int_dtype_with_int_dtype6   sG    a000aavo%(('222
sH---vo%1++W555
sH---av...vo,,,g666
sH---mmBH%%bh(?(??,,,g666
sH-----r&   c                     t          t          d          d          }|dz  }t          dgdz            }t          j        ||           |dz  }t          g d          }t          j        ||           d S )Nr5   r6   r   r   r8   r:   )r   r<   r   r   )r   r?   r2   r#   s       r$   0test_logical_operators_int_dtype_with_int_scalarzETestSeriesLogicalOps.test_logical_operators_int_dtype_with_int_scalarN   sz    a000qj1#'??
sH---qj,,,''
sH-----r&   c                 D   t          t          d          d          }d}d}t          j        t          |          5  |t
          j        z   d d d            n# 1 swxY w Y   t          j        t          |          5  |dz   d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        t          |          5  |g d	z   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          |          5  |t          j
        g d	          z   d d d            n# 1 swxY w Y   t          j        t          |          5  |t          g d
          z   d d d            d S # 1 swxY w Y   d S )Nr5   r6   r   LLogical ops \(and, or, xor\) between Pandas objects and dtype-less sequences7Cannot perform.+with a dtyped.+array and scalar of typematchQ	@z unsupported operand type.+for &:)皙?r5   rK   r   )rL   r5   gQ	r   )r   r<   pytestraises	TypeErrorr   r   r   assert_produces_warningFutureWarningarray)r   r?   warn_msgmsgs       r$   +test_logical_operators_int_dtype_with_floatz@TestSeriesLogicalOps.test_logical_operators_int_dtype_with_floatZ   s   a000# 	
 H]9C000 	 	RVOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	TMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	0]9C000 	+ 	++MJJJ + +*****+ + + + + + + + + + + + + + +	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ ]9C000 	1 	1RX///0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1]9C000 	0 	0V...////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s}   AA!A BBB:DC*D*C.	.D1C.	2DDD'EEE3FFFc                    t          dgdz  d          }d}d}t          j        t          |          5  |dz   d d d            n# 1 swxY w Y   t          j        t          d	          5  t	          j        t          |          5  |g d
z   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr8   r5   r9   r   rG   z=Cannot perform 'and_' with a dtyped.+array and scalar of typerI   azunsupported operand.+for &)rW   bcd)r   rM   rN   rO   r   rP   rQ   )r   rB   rS   rT   s       r$   )test_logical_operators_int_dtype_with_strz>TestSeriesLogicalOps.test_logical_operators_int_dtype_with_strq   s   av...# 	
 N]9C000 	 	SLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9,HIII 	. 	.+MJJJ . .-----. . . . . . . . . . . . . . .	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.sG   AAA-B5	BB5B!	!B5$B!	%B55B9<B9c                 ,   t          t          d          d          }t          dgdz            }|dz  }t          j        ||           d}t          j        t
          |          5  |dgz  }d d d            n# 1 swxY w Y   t          j        ||           t          j        t
          |          5  |dz  }d d d            n# 1 swxY w Y   t          j        ||           |dz  }t          g d          }t          j        ||           d S )	Nr5   r6   r   FrG   rI   )F)FTTT)r   r<   r   r   rP   rQ   )r   r?   r#   r"   rS   s        r$   *test_logical_operators_int_dtype_with_boolz?TestSeriesLogicalOps.test_logical_operators_int_dtype_with_bool   s   a0005'A+&&%
vx000# 	 'XFFF 	& 	&ug%F	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
vx000'XFFF 	' 	'h&F	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'
vx000%33344
vx00000s$   )A<<B B 7C		CCc                 ~   t          t          d          d          }|t          dt          j        ddg          z  }t          dgdz            }t	          j        ||           t          ddt          j        dg          }t          j        t          d	          5  ||z   d d d            d S # 1 swxY w Y   d S )
Nr5   r6   r   FrW   rX   rZ   z3unsupported.* 'int' and 'str'|'rand_' not supportedrI   )	r   r<   r   r   r   r   rM   rN   rO   )r   r?   r"   r#   s_abNds        r$   ,test_logical_operators_int_dtype_with_objectzATestSeriesLogicalOps.test_logical_operators_int_dtype_with_object   s   a000&%!>???5'A+&&
vx000c263/00]R
 
 
 	 	 VOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B22B69B6c                     t          d          }t          g d|          }t          g d|          }|dz  }|}t          j        ||           |dz  }|}t          j        ||           d S )Nr(   r)   r*   r,   r   r8   )r-   r   r   r   )r   r+   r/   r0   r2   r#   s         r$   *test_logical_operators_bool_dtype_with_intz?TestSeriesLogicalOps.test_logical_operators_bool_dtype_with_int   s    U***%888,,,E:::ai
sH---ai
sH-----r&   c                 ^   t          g d          }ddd dt          j        g}d}t          g d          }t          j        t
          |          5  ||z  }d d d            n# 1 swxY w Y   t          j        ||           |t          j        |          z  }t          j        ||           |t          |          z  }t          j        ||           |t          |          z  }t          j        ||           t          g d          }t          j        t
          |          5  ||z  }d d d            n# 1 swxY w Y   t          j        ||           |t          j        |          z  }t          j        ||           |t          |          z  }t          j        ||           |t          |          z  }t          j        ||           t          g d          }t          j        t
          |          5  ||z  }d d d            n# 1 swxY w Y   t          j        ||           |t          j        |          z  }t          j        ||           |t          |          z  }t          j        ||           |t          |          z  }t          j        ||           d S )	N)TTTFTTFrG   )TFFFFrI   )TTTTT)FTTTT)	r   r   r   r   rP   rQ   r   rR   r   )r   leftrightrT   r#   r"   s         r$   (test_logical_ops_bool_dtype_with_ndarrayz=TestSeriesLogicalOps.test_logical_ops_bool_dtype_with_ndarray   sL   55566udD"&1# 	
 <<<=='SAAA 	" 	"E\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"
vx000'
vx000e$
vx000u%
vx00088899'SAAA 	" 	"E\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"
vx000'
vx000e$
vx000u%
vx000999::'SAAA 	" 	"E\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"
vx000'
vx000e$
vx000u%
vx00000s6   A##A'*A')D;;D?D?HHHc                 J   t          d          }t          g d|          }t          g d|          }t          g d|          }t          t          d          d          }t          dgd	z  g d
          }t          j        t
                    5  ||z  }d d d            n# 1 swxY w Y   t          j        ||           t          dgd	z  g d
          }t          j        t
                    5  ||z  }d d d            n# 1 swxY w Y   t          j        ||           t          dgt          d                    }t          j        t
                    5  ||z  }d d d            n# 1 swxY w Y   |                    t          d                    }t          j        ||           t          j        t
                    5  ||z  }d d d            n# 1 swxY w Y   |                    t          d                    }t          j        ||           d S )Nr(   r)   r*   TFFr5   r6   r   F   )r   r8   r   r   rW   rX   rY   r8   rX   abc)r-   r   r<   r   rP   rQ   r   reindex)	r   r+   r/   s_tffr?   r#   r"   s_a0b1c0r2   s	            r$   <test_logical_operators_int_dtype_with_bool_dtype_and_reindexzQTestSeriesLogicalOps.test_logical_operators_int_dtype_with_bool_dtype_and_reindex   s	    U***%888***%888+++5999a000 5'A+-H-H-HIII'66 	$ 	$V^F	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$
vx000 5'A+-H-H-HIII'66 	$ 	$e^F	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$
vx0001#tCyy))'66 	# 	#("C	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#==e--
sH---'66 	# 	#("C	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#==e--
sH-----sH   B))B-0B-9DDD"E44E8;E8G!!G%(G%c                     t          g d          }d}t          j        t          |          5  |t	          ddd          z   d d d            n# 1 swxY w Y   t          dddd	d
dddt	          ddd          g	          }t
          j        |d d d<   t          d|j                  }d|d d d<   d}t          j	        t          |          5  |t          |          z  }d d d            n# 1 swxY w Y   t          j        ||           d S )N)	r   r   r5         ri   r7   r   r   rH   rI     r8   r   r   r5   rp   rq   ri   r7   r   Tr*   FrG   )r   rM   rN   rO   r   r   r   r+   r   rP   rQ   r-   r   )r   srT   r#   r"   s        r$   "test_scalar_na_logical_ops_cornersz7TestSeriesLogicalOps.test_scalar_na_logical_ops_corners  s   ///00G]9C000 	% 	%q!$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% Aq!Q1aHT1a,@,@ABB##A#$ag...1# 	 'SAAA 	! 	!a[F	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!
vx00000s#   AAAC..C25C2c                 |   t          ddddddddt          d	d
d
          g	          }t          j        |d d d<   t	          d|i          }t	          dt          d          dgt          t          d                    z             }||z  }t          j        ||           ||z  }t          j        ||           d S )Nr   r   r5   rp   rq   ri   r7   r   rr   r8   AF)r+   columns)	r   r   r   r   r   r<   r-   r   assert_frame_equal)r   rs   rZ   r#   r"   s        r$   )test_scalar_na_logical_ops_corners_alignsz>TestSeriesLogicalOps.test_scalar_na_logical_ops_corners_aligns  s    Aq!Q1aHT1a,@,@ABB##A#sAhU%((SEDqNN<RSSSQ
fh///Q
fh/////r&   opc                    t          g d          t          g d          t          g d          t          fdt          t                              D                       }           }t	          j        ||           t          fdt          t                              D             t                    }           }t	          j        ||           d S )NTTFFTFTFr8   r   r8   r   c                 @    g | ]} |         |                   S  r   ).0nidx1rz   r   s     r$   
<listcomp>zDTestSeriesLogicalOps.test_logical_ops_with_index.<locals>.<listcomp>-  -    HHH122c!fd1g..HHHr&   c                 @    g | ]} |         |                   S r   r   )r   r   idx2rz   r   s     r$   r   zDTestSeriesLogicalOps.test_logical_ops_with_index.<locals>.<listcomp>2  r   r&   r   )r   r   r<   lenr   r   bool)r   rz   r#   r"   r   r   r   s    `  @@@r$   test_logical_ops_with_indexz0TestSeriesLogicalOps.test_logical_ops_with_index&  s     ///00///00\\\""HHHHHHc#hhHHHIIC
vx000HHHHHHc#hhHHHPTUUUC
vx00000r&   c                    t          g d          }t          g dt                    }t          g d          }t          g d          }||z  }t          j        ||           ||z  }t          j        ||           d S )Nr|   r}   r   r~   )FTTF)r   r   r   r   r   )r   r   r   r   r#   r"   s         r$   +test_reversed_xor_with_index_returns_seriesz@TestSeriesLogicalOps.test_reversed_xor_with_index_returns_series7  s    ///00///t<<<\\\""44455
vx000
vx00000r&   c                 h   t          g d          }t          g d          }t          g d          }t           ||j        |j                            } |||          }t          j        ||            ||t          |                    } |||          }t          j        ||           d S )Nr|   r}   r~   )r   r   valuesr   r   )r   rz   r   r   r   r#   r"   s          r$   2test_reversed_logical_op_with_index_returns_serieszGTestSeriesLogicalOps.test_reversed_logical_op_with_index_returns_seriesD  s     ///00///00\\\""""T[#*5566C
vx0002c6$<<((C
vx00000r&   zop, expectedFTc                     t          ddg          }t          ddg          } |||          }t          j        ||           d S )NTF)r   r   r   r   )r   rz   r#   r   idxr"   s         r$   test_reverse_ops_with_indexz0TestSeriesLogicalOps.test_reverse_ops_with_indexY  sN     dE]##UDM""C
vx00000r&   zTODO(infer_string))reasonc                 j   t          g dt          d                    }t          g dt          d                    }t          g dt          d                    }||z  }t          j        ||           t          g dt          d                    }||z  }t          j        ||           t          g dt          d                    }||z  }t          j        ||           t          g dt          d                    }t          g dt          d                    }t          g d	t          d                    }||z  }t          j        ||           t          g d
t          d                    }||z  }t          j        ||           t          g t                    }||                                z  }t          g dt          d                    }t          j        ||           ||                                z  }t          g dt          d                    }t          j        ||           t          j        t                    5  |t          dgdg          z  }d d d            n# 1 swxY w Y   t          g dt          d                    }t          j        ||           t          j        t                    5  |t          dgdg          z  }d d d            n# 1 swxY w Y   t          g d
t          d                    }t          j        ||           t          j        t                    5  |                                t          dgdg          t          t          j	        |j
                  t          t          j	        |j
                  fD ](}|||z           }t          j        |||                    )	 d d d            n# 1 swxY w Y   t          dg          fD ]i}|r?t          j        t          d          5  |||z           }d d d            n# 1 swxY w Y   n|||z           }t          j        |||                    jt          d          }t          g d          }	dD ]@}
t          g d|          |
z  }t          g d|          }t          j        ||           Ad}t          j	        dfD ]:}
t          j        t          |          5  |	|
z   d d d            n# 1 swxY w Y   ;dD ]@}
t          g d|          |
z  }t          g d|          }t          j        ||           AdD ]@}
t          g d|          |
z  }t          g d|          }t          j        ||           AdD ]@}
t          g d|          |
z  }t          g d|          }t          j        ||           Ad}t          j	        fD ]:}
t          j        t          |          5  |	|
z   d d d            n# 1 swxY w Y   ;d S )Nr)   r(   )FTFrj   TTFrh   )FTFTabcd)FTFFr|   r   r,   r8   z)FFFFabczz0not supported for dtype|unsupported operand typerI   )Tr8   r   r*   )TTTrH   foo)Fr   )Tr8   )r   r-   r   r   r   copyrP   rQ   r   r   r+   rM   rN   rO   )r   using_infer_stringrW   rX   r#   r"   emptyer+   tvrT   s               r$   test_logical_ops_label_basedz1TestSeriesLogicalOps.test_logical_ops_label_basedk  s   
 &&&U44'''e55...U<<Q
vx000---tE{{;;Q
vx000...U<<Q
vx000 &&&U44---tF||<<555tF||DDQ
vx000444d6llCCQ
vx000
 r(((UZZ\\!///e==
vx000UZZ\\!---tE{{;;
vx000 '66 	, 	,cU+++F	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,666VEE
vx000'66 	, 	,cU+++F	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,444d6llCC
vx000 '66 	5 	5

sSE""rvqw''rvqw''	 5 5 1q5&vqt44445	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 #-- 
	1 
	1A! " ]%W   & & q1uXF& & & & & & & & & & & & & & &
 1q5"61Q40000 U&&&'' 	5 	5A///u===AF000>>>H"684444G&% 	 	Ay444  A                	5 	5A///u===AF111???H"684444 	5 	5A///u===AF111???H"684444 	5 	5A///u===AF3335AAAH"684444G& 	 	Ay444  A              	 	sm   JJJK;;K?K?BO,,O03O0'P??Q	Q	TT	T	X''X+	.X+	c                 j	   t          g dt          d          d          }t          g dt          d          d          }t          g dt          d          d          }t          j        ||z  |           t          j        ||z  |           t          g d	t          d          d          }t          j        ||z  |           t          g d
t          d          d          }t          j        ||z  |           t          j        |                                |                                z  |                                           t          j        |                                |                                z  |                                           t          dddt          j        t          j        git          d                    }t          j        |                                |                                z  |                                           t          j        |                                |                                z  |                                           t          g dt          d          d          }t          g dt          d          d          }t          g dt          d          d          }t          j        ||z  |           t          j        ||z  |           t          g d	t          d          d          }t          j        ||z  |           t          g dt          d          d          }t          j        ||z  |           t          j        |                                |                                z  |                                           t          j        |                                |                                z  |                                           t          j        |                                |                                z  |                                           t          j        |                                |                                z  |                                           d S )Nr)   ABCxr+   namer   ABD)TFFFABCD)TTTFr|   Tr*   )TTTTr}   )	r   r-   r   r   rx   to_framer   r   r   )r   s1s2expexp_or1exp_ors3s4s           r$   test_logical_ops_df_compatz/TestSeriesLogicalOps.test_logical_ops_df_compat  s   '''tE{{EEE'''tE{{EEE000V3OOO
rBw,,,
rBw,,, 222$v,,SQQQ
rBw000222$v,,SQQQ
rBw/// 	bkkmmbkkmm;S\\^^LLL
bkkmmbkkmm;S\\^^LLLtT2626:;4<<PPP
bkkmmbkkmm;W=M=M=O=OPPP
bkkmmbkkmm;V__=N=NOOO '''tE{{EEE,,,DLLsKKK///tF||#NNN
rBw,,,
rBw,,, 222$v,,SQQQ
rBw000000V3OOO
rBw///
bkkmmbkkmm;S\\^^LLL
bkkmmbkkmm;S\\^^LLL
bkkmmbkkmm;W=M=M=O=OPPP
bkkmmbkkmm;V__=N=NOOOOOr&   z-Will pass once #52839 deprecation is enforcedc                    t          g dg dd          }t          g dg dd          }t          j        ||          }t          g dg dd          }t          j        ||           ||z  }t          j        ||           d S )N)r8   r   r   )r         rW   r   )r         )r   r   r   )   r7      )r   r   bitwise_xorr   r   )r   ser1ser2r"   r#   s        r$   'test_int_dtype_different_index_not_boolz<TestSeriesLogicalOps.test_int_dtype_different_index_not_bool	  s     iii|||#>>>lll,,,SAAAd+++++\\\DDD
vx000
vx00000r&   c                    t          j        d          }t          ddg          }t          ddgt          t          j                            }||k    }t          d|j                  }t          j        ||           ||k    }t          d|j                  }t          j        ||           t          j	        t          d	
          5  ||k     d d d            n# 1 swxY w Y   |                    d          }||k    }t          j        ||                    d                     ||k    }	t          j        |	|                    d                     t          j	        t          d	
          5  ||k     d d d            n# 1 swxY w Y   |                    t          |                                                    }
|
|k    }t          j        ||                    d                     |
|k    }t          j        ||                    d                     t          j	        t          d	
          5  ||
k     d d d            d S # 1 swxY w Y   d S )NpyarrowFTrW   rX   )na_valuer   r*   zInvalid comparisonrI   zstring[pyarrow]zbool[pyarrow])rM   importorskipr   r	   r   r   r+   r   r   rN   rO   r=   r   string)r   par   r   r"   expected_eqexpected_neser3
result3_eq
result3_neser4
result4_eq
result4_nes                r$   !test_pyarrow_numpy_string_invalidz6TestSeriesLogicalOps.test_pyarrow_numpy_string_invalid  s    ++eT]##sCjRV(D(D(DEEEU#)444
v{333T333
v{333]9,@AAA 	 	$JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 {{,--S[

z;+=+=o+N+NOOOS[

z;+=+=o+N+NOOO]9,@AAA 	 	$JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 {{:biikk2233S[

z;+=+=o+N+NOOOS[

z;+=+=o+N+NOOO]9,@AAA 	 	$JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   C!!C%(C%8FFFIIIN)'__name__
__module____qualname__rM   markfilterwarningsparametrizeoperatorand_or_xorr%   r3   rC   rE   rU   r[   r]   r`   rb   rf   rn   rt   ry   r   r   r   rand_ror_r   r   rxorr   xfailr   r   r   r   r   r   r&   r$   r   r      s       [ VWW[Yhl(STT1 1 UT XW1. . . . . .0
. 
. 
.0 0 0.. . .1 1 12  . . .)1 )1 )1V". ". ".H1 1 1*0 0 0 [THM8<#NOO1 1 PO1 1 1 1 [IH	
 1 1 1 [Yu~../XvvtTl++,XvvtTl++,	
 1 1 1 [))++4HIIn n JIn`+P +P +PZ [MNN	1 	1 ON	1! ! ! ! !r&   r   )r   r   numpyr   rM   pandas._configr   pandasr   r   r   r   r	   r
   pandas._testing_testingr   pandas.corer   r   r   r&   r$   <module>r      s                - - - - - -                           b b b b b b b b b br&   