+
    xȇi}                        ^ RI t^ RIt^ RIt^ RIHtHtHtHtH	t	H
t
Ht ^ RIHt ]P                  R 4       t ! R R4      t]P$                  P'                  RRR.4      ]P$                  P'                  R	RR.4      R
 4       4       tR# )    N)CategoricalDtypeCategoricalIndex	DataFrameIndex
MultiIndexSeriescrosstabc                  v   \        R . ROR. R	OR. R
OR\        P                  P                  ^4      P	                  ^4      R\        P                  P                  ^4      P	                  ^4      R\        P                  P                  ^4      P	                  ^4      /4      p \
        P                  ! W .RR7      # )ABCDEFT)ignore_index)foor   r   r   barr   r   r   r   r   r   )oner   r   twor   r   r   r   r   r   r   )dullr   shinyr   r   r   r   r   r   r   r   )r   nprandomdefault_rngstandard_normalpdconcat)dfs    r/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/reshape/test_crosstab.pyr   r      s    	      &&q)99"=&&q)99"=&&q)99"=U+	
-
B^ 99bXD11    c                   v  a  ] tR t^Et o R tR t]P                  P                  R]	P                  ]].4      R 4       tR tR tR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR t ]P                  P                  RRR%.R&R..4      R 4       t!R t"R t#R t$R t%R  t&R! t'R" t(R#t)V t*R$# )'TestCrosstabc                   \        VR ,          VR,          4      pVP                  R R.4      P                  4       P                  4       p\        P
                  ! W#P                  ^ 4      P                  \        P                  4      4       R# )r   r   N)
r	   groupbysizeunstacktmassert_frame_equalfillnaastyper   int64selfr   resultexpecteds   &&  r   test_crosstab_single!TestCrosstab.test_crosstab_singleF   s`    "S'2c7+::sCj)..088:
fooa&8&?&?&IJr    c                   \        VR ,          VR,          VR,          .4      pVP                  . RO4      P                  4       pVP                  R4      P                  R4      P	                  ^ 4      P                  \        P                  4      p\        P                  ! W#4       \        VR,          VR,          .VR ,          4      pVP                  . RO4      P                  4       pVP                  R 4      P	                  ^ 4      P                  \        P                  4      p\        P                  ! W#4       R# )r   r   r   Nr   r   r   )r   r   r   )
r	   r$   r%   r&   r)   r*   r   r+   r'   r(   r,   s   &&  r   test_crosstab_multiple#TestCrosstab.test_crosstab_multipleK   s    "S'BsGRW#56::o.335##C(005<<Q?FFrxxP
f/2c7BsG,bg6::o.335##C(//299"((C
f/r    boxc                X   V! \         P                  P                  ^4      P                  ^ ^^dR7      4      pV! \         P                  P                  ^4      P                  ^ ^^dR7      4      pV! \         P                  P                  ^4      P                  ^ ^
^dR7      4      p\	        RVRVRV/4      p\        W#V.R.R
R7      p\        VR,          VR,          VR,          .4      p\        P                  ! Wg4       \        W4.VR.R
R7      p\        VR,          VR,          .VR,          4      p\        P                  ! Wg4       \        W$4      p\        VR,          VR,          4      pR.VP                  n	        R.VP                  n	        \        P                  ! Wg4       R	# )   r%   abc)rownamescolnames)r>   r=   row_0col_0Nr;   r<   )r   r   r   integersr   r	   r'   r(   indexnamescolumns)r-   r6   r:   r;   r<   r   r.   r/   s   &&      r   test_crosstab_ndarray"TestCrosstab.test_crosstab_ndarrayV   se    		%%a(11!QS1AB		%%a(11!QS1AB		%%a(11!Rc1BCQQQ/0!VsejIBsGbgr#w%78
f/1&!sejIRWbg.38
f/ !BsGRW- 'y")
f/r    c           	     z   \        . RO. R	OR7      p\        . R
O. ROR7      p\        P                  ! . RO\        P                  R7      p\	        ^^ .^^..\        ^ ^.RR7      \        ^^.RR7      R7      p\        W4      p\        P                  ! WT4       \        W4      p\        P                  ! WT4       R# )r   rC   dtyper?   namer@   rC   rE   Nr      rP   )r:   r;   r<   )      rQ   rR   rQ   )r:   r;   r<   df)rQ   rR   rQ   )	r   r   arrayr+   r   r   r	   r'   r(   )r-   r:   r;   r<   r/   r.   s   &     r   test_crosstab_non_aligned&TestCrosstab.test_crosstab_non_alignedn   s    9O4?*CDHHYbhh/VaVAW-1a&w/
 !
f/!
f/r    c                   \         P                  P                  ^4      P                  ^ ^^dR7      p\         P                  P                  ^4      P                  ^ ^^dR7      p\         P                  P                  ^4      P                  ^ ^^dR7      p\	        RVRVRV/4      p\        WV.R.RRR7      pVP                  P                  R8X  g   Q hVP                  P                  RR.8X  g   Q hVR,          pVP                  R.4      P                  4       P                  R4      p\        \        V4      .\        R.RR	7      R
7      p\        P                   ! Wx.4      pRVn        \$        P&                  ! Wg4       VP(                  R,          p	VP                  RR.4      P                  4       P                  R4      p
\        P                   ! V
\        \        V4      .R.R
7      .4      p
RV
n        V
P+                  V	P                  4      p
V
P-                  ^ 4      P                  \         P.                  4      p
\$        P&                  ! W4       R# )r8   r9   r:   r;   r<   T)r=   r>   marginsAlli8rL   rI   NrA   r:   rZ    )r   r   r   rB   r   r	   rC   rD   rE   r$   r%   r*   r   lenr   r   r   rM   r'   assert_series_equallocreindexr)   r+   )r-   r:   r;   r<   r   r.   all_colsexp_cols
exp_marginall_rowsexp_rowss   &          r   test_crosstab_margins"TestCrosstab.test_crosstab_margins   s   II!!!$--a-=II!!!$--a-=II!!!$--a-=QQQ/0!VsejRVW||!!V+++~~##Sz111)$::se$))+2248SWIUE7-EF
99h34#
x2::e$::sCj)..077=99hBy(NOP##HNN3??1%,,RXX6
x2r    c                   \         P                  P                  ^4      P                  ^ ^^dR7      p\         P                  P                  ^4      P                  ^ ^^dR7      p\         P                  P                  ^4      P                  ^ ^^dR7      p\	        RVRVRV/4      p\        VW#.R.RRRR7      pVP                  P                  R8X  g   Q hVP                  P                  RR.8X  g   Q hVR,          pVP                  R.4      P                  4       P                  R4      p\        \        V4      .\        R.RR	7      R
7      p\        P                   ! Wx.4      pRVn        \$        P&                  ! Wg4       VP(                  R,          p	VP                  RR.4      P                  4       P                  R4      p
\        P                   ! V
\        \        V4      .R.R
7      .4      p
RV
n        V
P+                  V	P                  4      p
V
P-                  ^ 4      P                  \         P.                  4      p
\$        P&                  ! W4       RpRRRR.3 FC  p\0        P2                  ! \4        VR7      ;_uu_ 4        \        VW#.R.RRVR7       RRR4       KE  	  R#   + '       g   i     KZ  ; i)r8   r9   r:   r;   r<   TTOTAL)r=   r>   rY   margins_namer[   rL   rI   z&margins_name argument must be a stringi  NmatchrA   r\   )rk   r^   )r   r   r   rB   r   r	   rC   rD   rE   r$   r%   r*   r   r_   r   r   r   rM   r'   r`   ra   rb   r)   r+   pytestraises
ValueError)r-   r:   r;   r<   r   r.   rc   rd   re   rf   rg   msgrl   s   &            r   %test_crosstab_margins_set_margin_name2TestCrosstab.test_crosstab_margins_set_margin_name   sG   II!!!$--a-=II!!!$--a-=II!!!$--a-=QQQ/0FU 
 ||!!V+++~~##Sz111+&::se$))+2248SWIUG93-GH
99h34%
x2::g&::sCj)..077=99hBy(PQR##HNN3??1%,,RXX6
x26 $c
3Lz55F!U' !- 65 4555s   
J,,J=c           
     0   \         P                  P                  ^4      P                  ^ ^^dR7      p\         P                  P                  ^4      P                  ^ ^^dR7      p\         P                  P                  ^4      P                  ^ ^^dR7      p\         P                  P                  ^4      P	                  ^d4      p\        W.W4RRR.R.R7      p\        RVRVRVRV/4      pVP                  RRR.RRR7      p\        P                  ! WW4       R	# )
r8   r9   sumr   r   baz)aggfuncr=   r>   values)rC   rE   rx   N)
r   r   r   rB   r   r	   r   pivot_tabler'   r(   )r-   r:   r;   r<   ry   tabler   r/   s   &       r   test_crosstab_pass_values&TestCrosstab.test_crosstab_pass_values   s    II!!!$--a-=II!!!$--a-=II!!!$--a-=&&q)99#>FAuu~QVPW
 q%E1hGH>>UENE5 " 
 	e.r    c                \   \         P                  ! . R	O\        R7      p\         P                  ! . R
O\        R7      p\         P                  ! . RO\        R7      p\        WV.R.RR.RR7      p\        P
                  ! . RORR.R7      p\        P                  ! VP                  V4       R# )r   rJ   r:   r;   r<   F)r=   r>   dropnarD   Nr   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   ))r   r   )r   r   )r   r   )r   r   )	r   rU   objectr	   r   from_tuplesr'   assert_index_equalrE   )r-   r:   r;   r<   resms   &     r   test_crosstab_dropna!TestCrosstab.test_crosstab_dropna   s    HHFfUHHFfUHHFf
 qa&C5C:eT""R*
 	ckk1-r    c           	         \        . RO. ROR7      p\        . R	O. R	OR7      p\        W4      p\        \        . RRR7      \        . RRR7      R7      p\        P
                  ! W44       R# )
rP   rI   r+   r?   rK   rM   r@   rN   N)rP   r8   rQ   )rR         )r   r	   r   r   r'   r(   )r-   s1s2actualr/   s   &    r   test_crosstab_no_overlap%TestCrosstab.test_crosstab_no_overlap   sX     IY/IY/"!'8"G':

 	f/r    c           	     :   \        R ^^^^^\        P                  .R. RO/4      p\        VP                  VP
                  RRR7      p\        . RO. RO. R	O.4      p\        . R
OR R7      Vn        \        . RORR7      Vn        \        P                  ! W#4       R# )r:   r;   TrY   r   rL   NrQ   rQ   rR   rR   rR   rR   rP   r   rP   rP   rQ   rR   )r8   rQ   r         ?       @rZ   rQ   rR   rZ   r   r   nanr	   r:   r;   r   rC   rE   r'   r(   r-   r   r   r/   s   &   r   test_margin_dropnaTestCrosstab.test_margin_dropna   s~    
 aAq!RVV4c;MNO"$$d4@iI>?0s; S9
f/r    c                   \        R ^\        P                  \        P                  \        P                  ^\        P                  .R^\        P                  ^^^^./4      p\        VP                  VP
                  RRR7      p\        . RO. RO. RO.4      p\        . R	OR R7      Vn        \        . R
ORR7      Vn        \        P                  ! W#4       R# )r:   r;   Tr   rL   Nr   rO   rP   rP   r8   r   )      @      @rZ   r   r   s   &   r   test_margin_dropna2 TestCrosstab.test_margin_dropna2	  s    1bffbffbffa8#2661aQRTU?VW
 "$$d4@iI>?0s; !2=
f/r    c           	        \        R ^\        P                  \        P                  \        P                  \        P                  ^.R. RO/4      p\        VP                  VP
                  RRR7      p\        . RO. RO. R	O.4      p\        . R
OR R7      Vn        \        . RORR7      Vn        \        P                  ! W#4       R# )r:   r;   Tr   rL   Nr   r   rO   r   r   r   r   r   s   &   r   test_margin_dropna3 TestCrosstab.test_margin_dropna3  s    1bffbffbffbffa8#?QR
 "$$d4@iI>?0s; S9
f/r    c           	     `   \        R ^^^^^\        P                  .R. R
O/4      p\        VP                  VP
                  RRR7      p\        . RO. RO. RO. RO.4      p\        RR\        P                  R.R R7      Vn        \        . RORR7      Vn        \        P                  ! W#4       R	# )r:   r;   TFr   r   r   rZ   rL   Nr   r   r   rO   )r8   rR   r   r   r   r   s   &   r   test_margin_dropna4 TestCrosstab.test_margin_dropna4  s    
 aAq!RVV4c;MNO"$$d5AiIyIJS"&&%8sC S9
f/r    c                   \        R ^\        P                  \        P                  \        P                  ^\        P                  .R^\        P                  ^^^^./4      p\        VP                  VP
                  RRR7      p\        . RO. RO. RO. RO.4      p\        RR\        P                  R.R R	7      Vn        \        R
R\        P                  R.RR	7      Vn        \        P                  ! W#RR7       R# )r:   r;   TFr   r   r   r   rZ   rL   r   )check_dtypeN)rP   r   r   r   )r   rP   r   r   )r   rQ   rP   r   )rP   rR   rP   g      @r   r   s   &   r   test_margin_dropna5 TestCrosstab.test_margin_dropna5)  s    1bffbffbffa8#2661aQRTU?VW
 "$$d5A^^^L
 S"&&%8sC #sBFFE!:E
fEBr    c           
     d   \         P                  ! . RO\        R7      p\         P                  ! RRRRR\         P                  R.\        R7      p\         P                  ! . RO\        R7      p\	        WV.R.RR.RRR	7      p\
        P                  ! RRRR\         P                  \         P                  R
.. RO.RR.R7      p\        . RO. RO. RO.VR7      p\        . RORR7      Vn	        \        P                  ! WF4       \	        W.VRR.R.RRR	7      p\
        P                  ! . RORR\         P                  RR\         P                  R..RR.R7      p\        . RO. RO^ ^ \         P                  .. RO. RO. RO. RO.VR7      p\        . RORR7      Vn        \        P                  ! WF4       \	        W.VRR.R.RRR	7      p\
        P                  ! . RO. R O.RR.R7      p\        . R!O. R!O. R"O. R#O. R$O.VR7      p\        . RORR7      Vn        \        P                  ! WF4       R# )%r   rJ   r   r   r:   r;   r<   TF)r=   r>   rY   r   rZ   r^   r   )rE   rL   rI   Nr   r   )r   r   r   r   r   r   r^   )rP   r   rP   r   r   r   r8   )r8   r   rP   rP   r   rP   r   )rQ   r   r8   rP   r   rP      r   r   rZ   )r   r   r   r   r   r   rZ   )rP   r   r   )r8   r   r   )rP   rP   r   )r   rP   r   )r   r8   g      @)r   r   rZ   )r   r   r   r   rZ   )r   r   r   r   r^   r   )r8   r   r8   r   )r   rP   r   )r   rU   r   r   r	   r   from_arraysr   r   rC   r'   r(   rE   )r-   r:   r;   r<   r   r   r/   s   &      r   test_margin_dropna6 TestCrosstab.test_margin_dropna66  s   HHFfUHHeUE5%GvVHHFf
 1vc
DQV
 ""ueRVVRVVUCG *
 "$9;PQ
 43?
f/FAc
cUDQV
 ""ArvvueRVVR@ *
 Arvv 
 !!9D
f/FAc
cUDQU
 ""02RS*
 	9iC1
 !!9D
f/r    c                   \        R . ROR. ROR^^\        P                  ^^./4      p\        ^^.R R7      p\        ^^.RR7      p\        R^ .RR..W#R7      p\        R^ .RR	..W#R7      p\        R
^ .R
R..W#R7      p\        P
                  ! \        VP                  VP                  RR7      V4       \        P
                  ! \        VP                  VP                  RR7      V4       \        P
                  ! \        VP                  VP                  RR7      V4       \        P
                  ! \        VP                  VP                  RR7      V4       \        P
                  ! \        VP                  VP                  ^R7      \        VP                  VP                  RR7      4       \        P
                  ! \        VP                  VP                  ^ R7      \        VP                  VP                  RR7      4       \        R^ .RR	.RR..\        . ROR RR7      \        ^^.RRR7      R7      p\        . RO. RO.\        ^^.R RR7      \        . RORRR7      R7      p\        . RO. RO. RO.\        . ROR RR7      \        . RORRR7      R7      p	\        P
                  ! \        VP                  VP                  RRR7      V4       \        P
                  ! \        VP                  VP                  RRR7      V4       \        P
                  ! \        VP                  VP                  RRR7      V	4       R# )r:   r;   r<   rL   皙?333333?rN   r         ?      ?      ?all	normalizeTrC   rE   皙?r   rM   rK   r   rY   NrP   r8   r8   r8   r8   rQ   rQ   rR   rR   rR   rP   r8   rZ   )r   r   r   )r   r   皙?r   )r   r   r   )r   r   r   r   r   rP   )	r   r   r   r   r'   r(   r	   r:   r;   )
r-   r   rindexcindexfull_normal
row_normal
col_normalrow_normal_marginscol_normal_marginsall_normal_marginss
   &         r   test_crosstab_normalize$TestCrosstab.test_crosstab_normalizeu  s   /3q!RVVQPQ>RS
 1vC(1vC(#qC: 6fUa4,7vV
a3*5VT
 	hrttRTTUC[Q
hrttRTTTBKP
hrttRTTWEzR
hrttRTTYGT
RTT2441-RTT24495	
 	RTT2441-xbddg/V	
 '1Xd|c3Z0Cx@1a&s(;

 'O,AS9-cB
 'O];Cx@-cB

 	RTT2447DACU	
 	RTT2449dCEW	
 	RTT2444>@R	
r    c                @   \        R . ROR. ROR^^\        P                  ^^./4      p\        \        P                  ! . RO4      \        P                  ! . RO4      .\        P                  ! . RO4      4       \        . RO. RO. RO.\        . ROR RR7      \        . RORR7      R7      p\        VP                  VP                  VP                  RRR	R
7      p\        P                  ! W24       \        R . ROR. ROR^ ^\        P                  ^^./4      p\        . RO. RO. RO.\        . ROR RR7      \        . RORRR7      R7      p\        VP                  VP                  VP                  \        P                  RR	R
7      p\        P                  ! W44       R# )r:   r;   r<   r   r   rL   rN   countr   T)rx   r   rY   Nr   r   )rP   rP   r8   r8   )rP   r8   rP   r8   )r   r   r   )r   r   r   )r   r   rP   r   r   )r   r           r   )r   r   r   r	   rU   r   r:   r;   r<   r'   r(   rv   )r-   r   norm_counts	test_casenorm_sums   &    r   test_crosstab_normalize_arrays+TestCrosstab.test_crosstab_normalize_arrays  sN   /3q!RVVQPQ>RS

 	XXl#RXXl%;<bhh|>T	

  /?Cx@-c2

 DD"$$g
	 	i5/3q!RVVQPQ>RS
 -7Cx@-cB

 DD"$$bfft
	 	i2r    c                   \        R . ROR. ROR\        P                  \        P                  \        P                  \        P                  \        P                  ./4      p\        RR.RR..\        ^^.R RR7      \        ^^.RR7      R7      pR FG  p\	        VP
                  VP                  VP                  RVR	7      p\        P                  ! W$4       KI  	  \        R\        P                  .RR..\        ^^.R RR7      \        ^^.RR7      R7      p\	        VP
                  VP                  VP                  RR
R	7      p\        P                  ! WT4       R# )r:   r;   r<   r   r+   r   rL   rN   r   )ry   rx   r   FNr   r   )TrC   rE   )
r   r   r   r   r	   r:   r;   r<   r'   r(   )r-   r   emptyi
calculatednanss   &     r   test_crosstab_with_empties'TestCrosstab.test_crosstab_with_empties  s   __bffbffbffbffbff=
 3Z#s$AS81a&s+
 ,A!"$$RTT7VWXJ!!%4 , 266]S#J'AS81a&s+
 bddBDDwRWX

d/r    c                r   \        R . ROR. ROR^^\        P                  ^^./4      pRp\        P                  ! \
        VR7      ;_uu_ 4        \        VP                  VP                  VP                  R7       RRR4       Rp\        P                  ! \
        VR7      ;_uu_ 4        \        VP                  VP                  \        P                  R7       RRR4       R	p\        P                  ! \
        VR7      ;_uu_ 4        \        VP                  VP                  R
R7       RRR4       \        P                  ! \
        VR7      ;_uu_ 4        \        VP                  VP                  ^*R7       RRR4       Rp\        P                  ! \
        VR7      ;_uu_ 4        \        VP                  VP                  R^*R7       RRR4       R#   + '       g   i     ELd; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r:   r;   r<   z)values cannot be used without an aggfunc.rm   )ry   Nz%aggfunc cannot be used without values)rx   zNot a valid normalize argument42r   zNot a valid margins argumentr   r   r   r   )r   r   r   ro   rp   rq   r	   r:   r;   r<   mean)r-   r   errors   &  r   test_crosstab_errors!TestCrosstab.test_crosstab_errors  sa    /3q!RVVQPQ>RS
 <]]:U33RTT244- 4 8]]:U33RTT2441 4 1]]:U33RTT24440 4 ]]:U33RTT2442. 4 /]]:U33RTT2445"= 43 433 433 43 43 433s<   -G*1G+	#G?#H)$H%G(	+G<	?H	H"	%H6	c                f   \        R . ROR. R	O/4      p. R
OpVR,          P                  R4      P                  P                  V4      VR&   \	        VR ,          VR,          4      p\        . ROR R7      p\        W"RRR7      p. RO. RO. RO.p\        WdVR7      p\        P                  ! W74       R# )MAKEMODELcategoryrL   F)
categoriesorderedrM   rN   N)HondaAcuraTeslar   r   r   )Sedanr   ElectricPickupr   r   )r   r   r   )r   r   r   )r8   r   r   )r8   r   rP   r   rP   r   )	r   r*   catset_categoriesr	   r   r   r'   r(   )r-   r   r   r.   expected_indexexpected_columnsexpected_datar/   s   &       r   %test_crosstab_with_categorial_columns2TestCrosstab.test_crosstab_with_categorial_columns  s    NS
 5
k((488GG
S7"V*bk2:H+u7
 #Iy99I
 	f/r    c                ~   \        R . RO^,          R. RO^,          R. RO^,          R\        P                  P                  ^4      P	                  ^4      R\        P                  P                  ^4      P	                  ^4      /4      p\        VR ,          VR,          .VR,          .R\        P                  VR,          R7      p\        . RO. RO.. RO. RO.R R.R7      p\        . RORR	7      p\        P                  ! . RO. RO. ROR
\        P                  R
.\        P                  R
R
.R
\        P                  R
.\        P                  R
R
.R
\        P                  R
.\        P                  R
R
.. RO.
4      p\        WSVR7      pVR,          P                  R4      VR&   \        P                  ! W&4       R# )r   r   r   r   r   T)rC   rE   rY   rx   ry   rZ   levelscodesrD   rL   r   rN   r+   Nr   r   r   threer3   r   r   r   r   r   r   )rZ   r   r   r   )r^   r   r   r   )
rP   rP   rP   r8   r8   r8   rQ   rQ   rQ   r   )
rP   r8   rQ   rP   r8   rQ   rP   r8   rQ   r   r   )r   r   r   )      (@r  g      8@)r   r   r   r   r   r	   r%   r   r   rU   r   r*   r'   r(   )r-   r   r.   r   expected_columnr   r/   s   &      r   test_crosstab_with_numpy_size*TestCrosstab.test_crosstab_with_numpy_size  s   3a7_q(?!CRYY**1-==bARYY**1-==bA
 c7BsG$WIGGc7
 $24GH13QR*

   5C@bffc"c"bffc"c"bffc"c""
 
 #5/009
f/r    c                @   \        \        ^4      RR7      p\        \        ^^4      RR7      p\        \        ^^4      RR7      p\        \        ^4      RR7      pRR/p\        W4      p\        W4      P                  V^R7      p\        P
                  ! Wg4       \        W.V4      p\        W.V4      P                  V^ R7      p\        P
                  ! Wg4       \        WAV.4      p\        WAV.4      P                  V^R7      p\        P
                  ! Wg4       R# )rQ   r   rL   r   waldo)rE   axis)rC   r  N)r   ranger	   rename_axisr'   r(   )r-   r   s2_foos2_bars3mapperr.   r/   s   &       r   test_crosstab_duplicate_names*TestCrosstab.test_crosstab_duplicate_namesF  s     E!H5)a%0a%0E!H7+  "%B'33F3K
f/ 2,+RL"-99Q9O
f/ "6l+BV-99&q9Q
f/r    rD   r:   r<   c                T   \        \        ^4      V^ ,          R7      p\        \        ^^4      V^,          R7      p\        P                  ! \        ^4      \        ^^4      .VR7      p\        ^VR7      P	                  ^^ R7      p\        W#4      p\        P                  ! We4       R# )rQ   rL   r   rI   )
fill_valueN)r   r	  r   r   r&   r	   r'   r(   )r-   rD   r   r   mir/   r.   s   &&     r   test_crosstab_tuple_name%TestCrosstab.test_crosstab_tuple_nameb  s    E!H58,E!QKeAh/##U1XuQ{$;5I!2&..qQ.?"!
f/r    c           	     8   \        \        ^4      RR7      p\        \        ^4      RR7      p\        \        P                  ! ^RR7      \        \        ^4      RR7      \        \        ^4      RR7      R7      p\        W4      p\        P                  ! WC4       R# )rQ   rL   r+   rJ   rN   Nr:   r;   )r<   rS   )	r   r	  r   r   eyer   r	   r'   r(   )r-   r   r   r/   r.   s   &    r   test_crosstab_both_tuple_names+TestCrosstab.test_crosstab_both_tuple_namesm  sp    E!H:.E!H:.FF1G$az2%(4

 "!
f/r    c                :   \        R . ROR. R	O/. R
OR7      p\        VP                  VP                  VP                  .4      p\        . RORR7      p\        P                  ! . ROR R.R7      p\        . RO. RO. RO.W4R7      p\        P                  ! W%4       R# )r;   r:   rI   r?   rL   r   rN   N)rQ   rP   r8   )r   rR   r   r   r   r   r3   ))rP   rR   )r8   r   )rQ   r   )rP   r   r   r   )r   r   rP   )
r   r	   rC   r;   r:   r   r   r   r'   r(   )r-   r   r.   e_idx	e_columnsr/   s   &     r   test_crosstab_unsorted_order)TestCrosstab.test_crosstab_unsorted_orderz  s}    YY7O"((RTT244L1oG4**+CCQT:V		9-U
 	f/r    c                "   \        R . RO^,          R. RO^,          R. RO^,          R^ .^,          R^ .^,          /4      p\        VP                  VP                  .VP                  VP
                  \        P                  RRR7      p\        \        P                  ! ^ .^,          ^.,           \        R7      P                  ^
^4      \        . RORR7      \        P                  ! . ROR R.R	7      R
7      p\        P                  ! W#4       R# )r   r   r   r   r   T)ry   rx   r   rY   rJ   rL   r   )rE   rC   Nr   r3   r  r   )
)r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   r]   )r   r	   r   r   r   r   r   rv   rU   floatreshaper   r   r   r'   r(   r,   s   &   r   (test_crosstab_normalize_multiple_columns5TestCrosstab.test_crosstab_normalize_multiple_columns  s    3a7_q(?!CaS2XaS2X
 TT244LDD44FF
 HHaS2X^5199"a@/c:(( Cj
& 	f/r    c                   \        R . ROR. ROR. ROR	. ROR
. RO/4      p\        VP                  VP                  .VP                  RR^ R7      p\        RR.RR.RR.^ ^.RR..4      p\        . RO. RO.. RO. RO.R R.R7      Vn        \        RR.RR7      Vn        \        P                  ! W#4       \        VP                  VP                  .VP                  RR^R7      p\        . RO. RO. R O. R!O.4      p\        . R"ORR7      Vn        \        RR.RR... R#O. R$O.R R.R7      Vn        \        P                  ! W#4       \        VP                  VP                  .VP                  RRRR7      p\        . R%O. R%O. R&O. R'O. R(O.4      p\        . R"ORR7      Vn        \        . RO. RO.. RO. RO.R R.R7      Vn        \        P                  ! W#4       R# ))r   r   r   r   r   r   r   smalllarger   r   T	Sub-Total)rY   rl   r   r   g]QJVU?F]kSU?9?q?'c`?r   rL   N	r   r   r   r   r   r   r   r   r   	r   r   r   r   r   r   r   r   r   	r'  r(  r(  r'  r'  r(  r'  r'  r(  	rP   r8   r8   rQ   rQ   rR   r   r   r   	r8   rR   r   r   r   r      	   r3  )r)  r   r   r^   r   r   )rP   rP   r8   r8   r   rP   r8   rP   r8   r   )r   r   9?q?)r   r   r*  )r   r   r6  )r(  r'  r)  )r   r   rP   rP   r   rP   r   rP   )9?q?r8  r6  )r6  r8  r*  )r   r6  r6  )r+  g#G?rP   )r   r	   r   r   r   r   rC   r   rE   r'   r(   r,   s   &   r   test_margin_normalize"TestCrosstab.test_margin_normalize  s   TT 
 00
( TT244L"$$;RS
 3Z#sh%9Aq6HhCWX
 $/1CD"O4*

 !'7!3#>
f/ TT244L"$$;RS
 %%$"	
 !!@sK#ENUEN3.*

 	f/ TT244L"$$;RV
 ....'
 !!@sK#/1CD"O4*

 	f/r    c                d   \        R . ROR. ROR. ROR. ROR. RO/4      p\        VP                  VP                  VP                  .RRRR7      p\        . RO. RO. RO.. ROR7      p\        . RO. RO.. RO. RO.R R.R	7      Vn        RVP                  n        \        P                  ! W#4       R
# )r   r   r   r   r   Tmargin)rC   rE   rY   rl   r   rI   r   Nr-  r.  r/  r0  r1  )r8  r8  r6  r   r+  )r8  r8  r8  r6  r,  )r6  r6  r*  r6  r   )r(  r'  r<  )r   r   r<  r4  )r   r   rP   rP   r8   r5  )r   r	   r   r   r   r   rE   rC   rM   r'   r(   r,   s   &   r   &test_margin_normalize_multiple_columns3TestCrosstab.test_margin_normalize_multiple_columns  s     TT 
 00
& $$TT244L!
 BB=
 /
 &,.@A"O4*

 "
f/r    c           
     V   \        R . ROR. ROR. RO/RR7      p\        VR ,          VR,          VR,          RRR	7      p\        R\        P                  RR
.RR\        P                  R.. RO.\	        . RORR R7      \	        . RORRR7      RR7      p\
        P                  ! W#4       R# )r   r   r   r         $@Float64rJ   rv   T)ry   rx   rY         "@g      &@r   r   )rC   rE   rK   N)rP   r8   r8   rP   )rQ   rQ   rR   r         )rC  r@  r   r@  )rB  r   r@  g      4@r   )r   r   g      @rZ   )r   r	   r   NAr   r'   r(   r,   s   &   r   test_margin_support_Float&TestCrosstab.test_margin_support_Float'  s     ,\38OP
 sGsGc7
 ruudC(sBEE4(&
 )D0sK	
 	f/r    c                   \        R . ROR. R	O/4      pVR ,          P                  \        RR7      4      VR &   . R
OpVR ,          P                  P	                  V4      VR &   \        VR ,          VR,          RR7      p\        . ROR R7      p\        . RORR7      p. RO. RO. RO. RO.p\        WdVR7      p\        P                  ! W74       R# )FirstSecondT)r   )rY   rL   rN   N)r   r   r   r   r   r   )r   r   r   r   r   r   r  )r   r   r   rZ   )r   r   r   rZ   )rP   rP   r   r8   r7  )r   rP   r8   rQ   )rP   rQ   r8   r   )	r   r*   r   r   reorder_categoriesr	   r   r'   r(   )r-   r   customized_categories_orderr.   r   r   r   r/   s   &       r   +test_margin_with_ordered_categorical_column8TestCrosstab.test_margin_with_ordered_categorical_columnA  s    78
 k(()9$)GH7&5#koo889TU7"W+r(|TB5GD !7hG%|\<P9I
 	f/r     NrA   r  )+__name__
__module____qualname____firstlineno__r0   r4   ro   markparametrizer   rU   listtuplerF   rV   rh   rs   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r$  r9  r=  rE  rL  __static_attributes____classdictcell__)__classdict__s   @r   r"   r"   E   s    K
	0 [[URXXtU$;<0 =0.0$3<0d/".0
000
0C=0~1
f"3H0:>40,+0Z08 [[WZ'8:s:K&LM0 N000'0RK0Z+0Z040 0r    r"   a_dtyper   r+   b_dtypec                 T   \         P                  P                  ^4      p\        VP	                  ^ ^^dR7      4      P                  V 4      p\        VP	                  ^ ^^dR7      4      P                  V4      p\        W4RRR7      p\        . RORRR7      p\        . RORR	R7      p. RO. RO. RO. RO.p\        WV4      p	\        P                  ! WY4       ^VP                  V^8H  &   \        VP                  \        4      p
V
'       d)   VP                  4       P                  ^,          ^ 8X  g   Q h\        W4RRR7      p. RO. RO. RO. RO.p\        WV4      p	V
'       g1   V	P                  . RO,          p	V	R,          P                  R
4      V	R&   \        P                  ! WY4       R# )r8   r9   TFr   rZ   r   r@   r   r?   r+   N)r   rP   rZ   )r   rP   r8   rZ   )
         )      '   )   ra  !   )2   re  d   )r   r   r   )(       H   )r   r8   rZ   )r   r   r   r   rB   r*   r	   r   r   r'   r(   ra   
isinstancerK   r   value_counts)rZ  r[  gr:   r;   r.   rE   rC   ry   r/   a_is_cats   &&         r   test_categoricalsrn  W  sX    			a Aqzz!QSz)*11':Aqzz!QSz)*11':AaD7FM@G"(AEL,FF0H&+ AEE!q&M!''#34H1>>+//2a777aD7FI|]CF0H<<."5/009&+r    )numpyr   ro   pandasr   r   r   r   r   r   r   r	   pandas._testing_testingr'   fixturer   r"   rS  rT  rn  rN  r    r   <module>rt     s          02 02fO0 O0d Z$9:Z$9:, ; ;,r    