Ë
    u™ãj€  ã                   óê   — d dl Zd dlZd dlZd dlmZ ej                  d„ «       Z	 G d„ d«      Z
ej                  j                  dddg«      ej                  j                  dddg«      d	„ «       «       Zy)
é    Nc            
      ó€  — t        j                  g d¢g d¢g d¢t        j                  j	                  d«      j                  d«      t        j                  j	                  d«      j                  d«      t        j                  j	                  d«      j                  d«      dœ«      } t        j                  | | gd¬«      S )	N)Ú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	   é   é   )ÚAÚBÚCÚDÚEÚFT)Úignore_index)ÚpdÚ	DataFrameÚnpÚrandomÚdefault_rngÚstandard_normalÚconcat)Údfs    úm/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/reshape/test_crosstab.pyr   r      s–   € ä	�‰òòòô —‘×&Ñ& qÓ)×9Ñ9¸"Ó=Ü—‘×&Ñ& qÓ)×9Ñ9¸"Ó=Ü—‘×&Ñ& qÓ)×9Ñ9¸"Ó=ñU+	
ó-
€Bô^ �9‰9�b˜"�X¨DÔ1Ð1ó    c                   ób  — e Zd Zd„ Zd„ Zej                  j                  dej                  e
e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d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                  j                  dddgddgg«      d„ «       Z d„ Z!d„ Z"d „ Z#d!„ Z$d"„ Z%d#„ Z&d$„ Z'y%)&ÚTestCrosstabc                 ó  — t        j                  |d   |d   «      }|j                  ddg«      j                  «       j	                  «       }t        j                  ||j                  d«      j                  t        j                  «      «       y )Nr   r   r   )r   ÚcrosstabÚgroupbyÚsizeÚunstackÚtmÚassert_frame_equalÚfillnaÚastyper   Úint64©Úselfr   ÚresultÚexpecteds       r   Útest_crosstab_singlez!TestCrosstab.test_crosstab_single=   sf   € Ü—‘˜R ™W b¨¡gÓ.ˆØ—:‘:˜s C˜jÓ)×.Ñ.Ó0×8Ñ8Ó:ˆÜ
×Ñ˜f h§o¡o°aÓ&8×&?Ñ&?ÄÇÁÓ&IÕJr   c                 óv  — t        j                  |d   |d   |d   g«      }|j                  g d¢«      j                  «       }|j	                  d«      j	                  d«      j                  d«      j                  t        j                  «      }t        j                  ||«       t        j                  |d   |d   g|d   «      }|j                  g d¢«      j                  «       }|j	                  d«      j                  d«      j                  t        j                  «      }t        j                  ||«       y )Nr   r   r   ©r   r   r   r   )r   r   r   )r   r    r!   r"   r#   r&   r'   r   r(   r$   r%   r)   s       r   Útest_crosstab_multiplez#TestCrosstab.test_crosstab_multipleB   sñ   € Ü—‘˜R ™W r¨#¡w°°3±Ð&8Ó9ˆØ—:‘:šoÓ.×3Ñ3Ó5ˆØ×#Ñ# CÓ(×0Ñ0°Ó5×<Ñ<¸QÓ?×FÑFÄrÇxÁxÓPˆÜ
×Ñ˜f hÔ/ä—‘˜b ™g r¨#¡wÐ/°°C±Ó9ˆØ—:‘:šoÓ.×3Ñ3Ó5ˆØ×#Ñ# CÓ(×/Ñ/°Ó2×9Ñ9¼"¿(¹(ÓCˆÜ
×Ñ˜f hÕ/r   Úboxc                 ó¤  —  |t         j                  j                  d«      j                  ddd¬«      «      } |t         j                  j                  d«      j                  ddd¬«      «      } |t         j                  j                  d«      j                  ddd¬«      «      }t	        j
                  |||dœ«      }t	        j                  |||gd	gd
¬«      }t	        j                  |d	   |d   |d   g«      }t        j                  ||«       t	        j                  ||g|d	gd
¬«      }t	        j                  |d   |d   g|d	   «      }t        j                  ||«       t	        j                  ||«      }t	        j                  |d	   |d   «      }dg|j                  _
        dg|j                  _
        t        j                  ||«       y )Nr
   r   é   éd   ©r"   é   é
   ©ÚaÚbÚcr9   ©r:   r;   )ÚrownamesÚcolnamesr:   r;   )r>   r=   Úrow_0Úcol_0)r   r   r   Úintegersr   r   r    r$   r%   ÚindexÚnamesÚcolumns)r*   r1   r9   r:   r;   r   r+   r,   s           r   Útest_crosstab_ndarrayz"TestCrosstab.test_crosstab_ndarrayM   sˆ  € ñ ”—	‘	×%Ñ% aÓ(×1Ñ1°!°Q¸SÐ1ÓAÓBˆÙ”—	‘	×%Ñ% aÓ(×1Ñ1°!°Q¸SÐ1ÓAÓBˆÙ”—	‘	×%Ñ% aÓ(×1Ñ1°!°R¸cÐ1ÓBÓCˆä�\‰\ ¨°Ñ2Ó3ˆä—‘˜Q  A °#°ÀÔLˆÜ—;‘;˜r #™w¨¨C©°"°S±'Ð(:Ó;ˆÜ
×Ñ˜f hÔ/ä—‘˜a ˜V Q°#°ÀÔLˆÜ—;‘;  3¡¨¨C©Ð1°2°c±7Ó;ˆÜ
×Ñ˜f hÔ/ô —‘˜Q Ó"ˆÜ—;‘;˜r #™w¨¨3©Ó0ˆØ '˜yˆ�‰ÔØ") ˆ×ÑÔÜ
×Ñ˜f hÕ/r   c                 ó  — t        j                  g d¢g d¢¬«      }t        j                  g d¢g d¢¬«      }t        j                  g d¢t        j                  ¬«      }t        j
                  dd	gddggt        j                  d	dgd
¬«      t        j                  ddgd¬«      ¬«      }t        j                  ||«      }t        j                  ||«       t        j                  ||«      }t        j                  ||«       y )N©r   é   rH   r8   ©rB   )r6   é   r6   rJ   r6   )r9   r:   r;   ÚdÚf)r6   rJ   r6   ©ÚdtyperH   r   r?   ©Únamer6   rJ   r@   ©rB   rD   )
r   ÚSeriesr   Úarrayr(   r   ÚIndexr    r$   r%   )r*   r9   r:   r;   r,   r+   s         r   Útest_crosstab_non_alignedz&TestCrosstab.test_crosstab_non_alignede   s»   € ä�I‰I’i¢Ô7ˆÜ�I‰I’oÒ-FÔGˆÜ�H‰H’Y¤b§h¡hÔ/ˆä—<‘<Ø�ˆV�a˜�VÐÜ—(‘(˜A˜q˜6¨Ô0Ü—H‘H˜a ˜V¨'Ô2ô
ˆô —‘˜Q Ó"ˆÜ
×Ñ˜f hÔ/ä—‘˜Q Ó"ˆÜ
×Ñ˜f hÕ/r   c                 óü  — t         j                  j                  d«      j                  ddd¬«      }t         j                  j                  d«      j                  ddd¬«      }t         j                  j                  d«      j                  ddd¬«      }t	        j
                  |||dœ«      }t	        j                  |||gd	gd
d¬«      }|j                  j                  dk(  sJ ‚|j                  j                  ddgk(  sJ ‚|d   }|j                  d	g«      j                  «       j                  d«      }t	        j                  t        |«      gt	        j                  dgd	¬«      ¬«      }t	        j                   ||g«      }d|_        t%        j&                  ||«       |j(                  d   }	|j                  ddg«      j                  «       j                  d«      }
t	        j                   |
t	        j                  t        |«      gdg¬«      g«      }
d|
_        |
j+                  |	j                  «      }
|
j-                  d«      j                  t         j.                  «      }
t%        j&                  |	|
«       y )Nr
   r   é   r4   r5   r6   r3   r8   r9   r<   T)r=   r>   Úmargins©r9   r:   r;   ©ÚAllÚ Úi8r[   rO   rI   )r   r   r   rA   r   r   r    rB   rC   rD   r!   r"   r'   rR   ÚlenrT   r   rP   r$   Úassert_series_equalÚlocÚreindexr&   r(   )r*   r9   r:   r;   r   r+   Úall_colsÚexp_colsÚ
exp_marginÚall_rowsÚexp_rowss              r   Útest_crosstab_marginsz"TestCrosstab.test_crosstab_marginsw   sû  € Ü�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆä�\‰\ ¨°Ñ2Ó3ˆä—‘Ø��1ˆv  °
ÀDô
ˆð �|‰|×!Ñ! VÒ+Ð+Ð+Ø�~‰~×#Ñ#¨¨S zÒ1Ð1Ð1à˜)Ñ$ˆØ—:‘:˜s˜eÓ$×)Ñ)Ó+×2Ñ2°4Ó8ˆä—Y‘Y¤ B£˜y´·±¸%¸ÀsÔ0KÔLˆ
Ü—9‘9˜h¨
Ð3Ó4ˆØ#ˆŒä
×Ñ˜x¨Ô2à—:‘:˜eÑ$ˆØ—:‘:˜s C˜jÓ)×.Ñ.Ó0×7Ñ7¸Ó=ˆÜ—9‘9˜h¬¯	©	´3°r³7°)ÀKÀ=Ô(QÐRÓSˆØˆŒà×#Ñ# H§N¡NÓ3ˆØ—?‘? 1Ó%×,Ñ,¬R¯X©XÓ6ˆÜ
×Ñ˜x¨Õ2r   c           
      ó¶  — t         j                  j                  d«      j                  ddd¬«      }t         j                  j                  d«      j                  ddd¬«      }t         j                  j                  d«      j                  ddd¬«      }t	        j
                  |||dœ«      }t	        j                  |||gd	gd
dd¬«      }|j                  j                  dk(  sJ ‚|j                  j                  ddgk(  sJ ‚|d   }|j                  d	g«      j                  «       j                  d«      }t	        j                  t        |«      gt	        j                  dgd	¬«      ¬«      }t	        j                   ||g«      }d|_        t%        j&                  ||«       |j(                  d   }	|j                  ddg«      j                  «       j                  d«      }
t	        j                   |
t	        j                  t        |«      gdg¬«      g«      }
d|
_        |
j+                  |	j                  «      }
|
j-                  d«      j                  t         j.                  «      }
t%        j&                  |	|
«       d}dd d	dgfD ]D  }t1        j2                  t4        |¬«      5  t	        j                  |||gd	gd
d|¬«       d d d «       ŒF y # 1 sw Y   ŒQxY w)Nr
   r   rW   r4   r5   r6   r3   r8   r9   r<   TÚTOTAL)r=   r>   rX   Úmargins_namerY   r:   r;   )ri   r\   r]   rO   rI   z&margins_name argument must be a stringiš  ©Úmatch)r   r   r   rA   r   r   r    rB   rC   rD   r!   r"   r'   rR   r^   rT   r   rP   r$   r_   r`   ra   r&   r(   ÚpytestÚraisesÚ
ValueError)r*   r9   r:   r;   r   r+   rb   rc   rd   re   rf   Úmsgrj   s                r   Ú%test_crosstab_margins_set_margin_namez2TestCrosstab.test_crosstab_margins_set_margin_name—   sm  € ä�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆä�\‰\ ¨°Ñ2Ó3ˆä—‘ØØ�ˆFØ�UØØØ ô
ˆð �|‰|×!Ñ! VÒ+Ð+Ð+Ø�~‰~×#Ñ#¨¨S zÒ1Ð1Ð1à˜+Ñ&ˆØ—:‘:˜s˜eÓ$×)Ñ)Ó+×2Ñ2°4Ó8ˆä—Y‘Y¤ B£˜y´·±¸'¸ÈÔ0MÔNˆ
Ü—9‘9˜h¨
Ð3Ó4ˆØ%ˆŒä
×Ñ˜x¨Ô2à—:‘:˜gÑ&ˆØ—:‘:˜s C˜jÓ)×.Ñ.Ó0×7Ñ7¸Ó=ˆÜ—9‘9˜h¬¯	©	´3°r³7°)ÀMÀ?Ô(SÐTÓUˆØˆŒà×#Ñ# H§N¡NÓ3ˆØ—?‘? 1Ó%×,Ñ,¬R¯X©XÓ6ˆÜ
×Ñ˜x¨Ô2à6ˆØ  $¨¨c¨
Ð3ò 		ˆLÜ—‘œz°Ô5ñ Ü—‘ØØ˜�FØ!˜UØ'Ø Ø!-õ÷ð ñ		÷ð ús   Ê%KËK	c                 óT  — t         j                  j                  d«      j                  ddd¬«      }t         j                  j                  d«      j                  ddd¬«      }t         j                  j                  d«      j                  ddd¬«      }t         j                  j                  d«      j	                  d«      }t        j                  ||g||dd	d
gdg¬«      }t        j                  ||||dœ«      }|j                  dd	d
gdd¬«      }t        j                  ||«       y )Nr
   r   rW   r4   r5   r6   r3   Úsumr   r   Úbaz)Úaggfuncr=   r>   )r   r   rt   Úvaluesrv   )rB   rD   ru   )r   r   r   rA   r   r   r    r   Úpivot_tabler$   r%   )r*   r9   r:   r;   rv   Útabler   r,   s           r   Útest_crosstab_pass_valuesz&TestCrosstab.test_crosstab_pass_valuesÉ   s  € Ü�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆÜ—‘×&Ñ& qÓ)×9Ñ9¸#Ó>ˆä—‘Ø�ˆF�A�v u¸¸u°~ÐQVÐPWô
ˆô �\‰\ !¨A°aÀ6ÑJÓKˆà—>‘>Ø˜U E˜N°EÀ5ð "ó 
ˆô 	×Ñ˜e XÕ.r   c                 óz  — t        j                  g d¢t        ¬«      }t        j                  g d¢t        ¬«      }t        j                  g d¢t        ¬«      }t        j                  |||gdgddgd¬	«      }t        j
                  j                  g d
¢ddg¬«      }t        j                  |j                  |«       y )N©r   r   r   r   r   r   r   rM   )r   r   r   r   r   r   r   ©r   r   r   r   r   r	   r	   r9   r:   r;   F)r=   r>   Údropna))r   r   )r   r	   )r   r   )r   r	   ©rC   )
r   rS   Úobjectr   r    Ú
MultiIndexÚfrom_tuplesr$   Úassert_index_equalrD   )r*   r9   r:   r;   ÚresÚms         r   Útest_crosstab_dropnaz!TestCrosstab.test_crosstab_dropnaÚ   s“   € ä�H‰HÒFÌfÔUˆÜ�H‰HÒFÌfÔUˆÜ�H‰HÚFÌfô
ˆô �k‰k˜!˜a ˜V¨s¨e¸sÀC¸jÐQVÔWˆÜ�M‰M×%Ñ%ÚRØ˜�*ð &ó 
ˆô 	×Ñ˜cŸk™k¨1Õ-r   c                 óN  — t        j                  g d¢g d¢¬«      }t        j                  g d¢g d¢¬«      }t        j                  ||«      }t        j                  t        j                  g dd¬«      t        j                  g dd¬«      ¬«      }t        j                  ||«       y )	N)rH   r
   r6   rI   )rJ   r3   é   r(   r?   ©rN   rP   r@   rQ   )r   rR   r    r   rT   r$   r%   )r*   Ús1Ús2Úactualr,   s        r   Útest_crosstab_no_overlapz%TestCrosstab.test_crosstab_no_overlapè   st   € ô �Y‰Y’yª	Ô2ˆÜ�Y‰Y’yª	Ô2ˆä—‘˜R Ó$ˆÜ—<‘<Ü—(‘(˜2 W°7Ô;Ü—H‘H˜R w°WÔ=ô
ˆô
 	×Ñ˜f hÕ/r   c                 óš  — t        j                  dddddt        j                  gg d¢dœ«      }t        j                  |j
                  |j                  dd¬«      }t        j                  g d¢g d¢g d	¢g«      }t        j                  g d
¢d¬«      |_        t        j                  g d¢d¬«      |_	        t        j                  ||«       y )NrH   r
   ©r6   r6   rJ   rJ   rJ   rJ   ©r9   r:   T©rX   r}   ©rH   r   rH   ©rH   r6   rJ   )r
   r6   r3   ©ç      ð?ç       @r[   r9   rO   ©r6   rJ   r[   r:   ©r   r   r   Únanr    r9   r:   rT   rB   rD   r$   r%   ©r*   r   r‹   r,   s       r   Útest_margin_dropnazTestCrosstab.test_margin_dropnaö   s�   € ô
 �\‰\  A q¨!¨Q´·±Ð 7Ò>PÑQÓRˆÜ—‘˜RŸT™T 2§4¡4°¸dÔCˆÜ—<‘<¢ªI²yÐ AÓBˆÜŸ™Ò"3¸#Ô>ˆŒÜŸ8™8¢M¸Ô<ˆÔÜ
×Ñ˜f hÕ/r   c           	      ó  — t        j                  dt        j                  t        j                  t        j                  dt        j                  gdt        j                  ddddgdœ«      }t        j                  |j
                  |j                  dd¬«      }t        j                  g d¢g d	¢g d
¢g«      }t        j                  g d¢d¬«      |_        t        j                  g d¢d¬«      |_	        t        j                  ||«       y )NrH   r
   r6   rJ   r�   Tr�   r‘   rG   ©rH   rH   r
   r“   r9   rO   )ç      @ç      @r[   r:   r—   r™   s       r   Útest_margin_dropna2z TestCrosstab.test_margin_dropna2  s²   € Ü�\‰\Ø”b—f‘fœbŸf™f¤b§f¡f¨a´·±Ð8ÀÄ2Ç6Á6È1ÈaÐQRÐTUÐ?VÑWó
ˆô —‘˜RŸT™T 2§4¡4°¸dÔCˆÜ—<‘<¢ªI²yÐ AÓBˆÜŸ™Ò"3¸#Ô>ˆŒÜŸ8™8Ò$5¸CÔ@ˆÔÜ
×Ñ˜f hÕ/r   c                 óî  — t        j                  dt        j                  t        j                  t        j                  t        j                  dgg d¢dœ«      }t        j                  |j
                  |j                  dd¬«      }t        j                  g d¢g d¢g d	¢g«      }t        j                  g d
¢d¬«      |_        t        j                  g d¢d¬«      |_	        t        j                  ||«       y )NrH   r
   rŽ   r�   Tr�   r‘   rG   rœ   r“   r9   rO   r–   r:   r—   r™   s       r   Útest_margin_dropna3z TestCrosstab.test_margin_dropna3  sŸ   € Ü�\‰\Ø”b—f‘fœbŸf™f¤b§f¡f¬b¯f©f°aÐ8Ò?QÑRó
ˆô —‘˜RŸT™T 2§4¡4°¸dÔCˆÜ—<‘<¢ªI²yÐ AÓBˆÜŸ™Ò"3¸#Ô>ˆŒÜŸ8™8¢M¸Ô<ˆÔÜ
×Ñ˜f hÕ/r   c                 óÀ  — t        j                  dddddt        j                  gg d¢dœ«      }t        j                  |j
                  |j                  dd¬«      }t        j                  g d¢g d	¢g d
¢g d¢g«      }t        j                  ddt        j                  dgd¬«      |_        t        j                  g d¢d¬«      |_	        t        j                  ||«       y )NrH   r
   rŽ   r�   TFr�   r‘   r’   rG   )r
   rJ   r‡   r”   r•   r[   r9   rO   r–   r:   r—   r™   s       r   Útest_margin_dropna4z TestCrosstab.test_margin_dropna4  sž   € ô
 �\‰\  A q¨!¨Q´·±Ð 7Ò>PÑQÓRˆÜ—‘˜RŸT™T 2§4¡4°¸eÔDˆÜ—<‘<¢ªI²yÂ)Ð LÓMˆÜŸ™ 3¨¬R¯V©V°UÐ";À#ÔFˆŒÜŸ8™8¢M¸Ô<ˆÔÜ
×Ñ˜f hÕ/r   c           	      ó\  — t        j                  dt        j                  t        j                  t        j                  dt        j                  gdt        j                  ddddgdœ«      }t        j                  |j
                  |j                  dd¬«      }t        j                  g d	¢g d
¢g d¢g d¢g«      }t        j                  ddt        j                  dgd¬«      |_        t        j                  ddt        j                  dgd¬«      |_	        t        j                  ||d¬«       y )NrH   r
   r6   rJ   r�   TFr�   )rH   r   r   r”   )r   rH   r   r”   )r   r6   rH   rž   )rH   rJ   rH   g      @r”   r•   r[   r9   rO   r�   rž   r:   )Úcheck_dtyper—   r™   s       r   Útest_margin_dropna5z TestCrosstab.test_margin_dropna5"  sÓ   € ä�\‰\Ø”b—f‘fœbŸf™f¤b§f¡f¨a´·±Ð8ÀÄ2Ç6Á6È1ÈaÐQRÐTUÐ?VÑWó
ˆô —‘˜RŸT™T 2§4¡4°¸eÔDˆÜ—<‘<Úš^ª^º^ÐLó
ˆô Ÿ™ 3¨¬R¯V©V°UÐ";À#ÔFˆŒÜŸ8™8 S¨#¬r¯v©v°uÐ$=ÀCÔHˆÔÜ
×Ñ˜f h¸EÖBr   c           
      óL  — t        j                  g d¢t        ¬«      }t        j                  dddddt         j                  dgt        ¬«      }t        j                  g d¢t        ¬«      }t	        j
                  |||gdgddgd	d
¬«      }t        j                  j                  ddddt         j                  t         j                  dgg d¢gddg¬«      }t	        j                  g d¢g d¢g d¢g|¬«      }t	        j                  g d¢d¬«      |_
        t        j                  ||«       t	        j
                  ||g|ddgdgd	d
¬«      }t        j                  j                  g d¢ddt         j                  ddt         j                  dggddg¬«      }t	        j                  g d¢g d¢ddt         j                  gg d¢g d¢g d¢g d¢g|¬«      }t	        j                  g d¢d¬«      |_        t        j                  ||«       t	        j
                  ||g|ddgdgd	d	¬«      }t        j                  j                  g d¢g d ¢gddg¬«      }t	        j                  g d!¢g d!¢g d"¢g d#¢g d$¢g|¬«      }t	        j                  g d¢d¬«      |_        t        j                  ||«       y )%Nr{   rM   r   r   r|   r9   r:   r;   TF)r=   r>   rX   r}   r[   )r   r	   r   r	   r   r	   r\   r~   )rH   r   rH   r   r   r   r
   )r
   r   rH   rH   r   rH   r3   )r6   r   r
   rH   r   rH   rW   )rD   ©r   r   r[   rO   )r   r   r   r   r   r   r[   r\   )rH   r   r”   r   )r
   r   r•   )rH   rH   r•   )r   rH   r”   )r3   r
   g      @rI   )r   r	   r[   )r   r   r   r   r[   )r   r   r   r   r\   r‘   )r
   r   r
   rœ   )r3   rH   r‡   )r   rS   r   r˜   r   r    r€   Úfrom_arraysr   rT   rB   r$   r%   rD   )r*   r9   r:   r;   r‹   r„   r,   s          r   Útest_margin_dropna6z TestCrosstab.test_margin_dropna6/  s]  € ä�H‰HÒFÌfÔUˆÜ�H‰H�e˜U E¨5°%¼¿¹ÀÐGÌvÔVˆÜ�H‰HÚFÌfô
ˆô —‘Ø��1ˆv  °°c°
ÀDÐQVô
ˆô �M‰M×%Ñ%à˜˜u e¬R¯V©V´R·V±V¸UÐCÚGðð ˜�*ð &ó 
ˆô —<‘<Ú"Ò$9Ò;PÐQØô
ˆô Ÿ™Ò"7¸cÔBˆŒÜ
×Ñ˜f hÔ/ä—‘Ø�ˆF�A  c 
°c°UÀDÐQVô
ˆô �M‰M×%Ñ%âAØ˜œrŸv™v u¨e´R·V±V¸RÐ@ðð ˜�*ð &ó 
ˆô —<‘<âÚØ�A”r—v‘v�ÚÚÚÚðð ô
ˆô Ÿ8™8Ò$<À3ÔGˆÔÜ
×Ñ˜f hÔ/ä—‘Ø�ˆF�A  c 
°c°UÀDÐQUô
ˆô �M‰M×%Ñ%Ú0Ò2RÐSØ˜�*ð &ó 
ˆô —<‘<Úš	¢9ªiºÐCÈ1ô
ˆô Ÿ8™8Ò$<À3ÔGˆÔÜ
×Ñ˜f hÕ/r   c           	      óŠ  — t        j                  g d¢g d¢ddt        j                  ddgdœ«      }t        j                  ddgd¬«      }t        j                  dd	gd
¬«      }t        j                  ddgddgg||¬«      }t        j                  ddgddgg||¬«      }t        j                  ddgddgg||¬«      }t        j                  t        j                  |j                  |j                  d¬«      |«       t        j                  t        j                  |j                  |j                  d¬«      |«       t        j                  t        j                  |j                  |j                  d¬«      |«       t        j                  t        j                  |j                  |j                  d¬«      |«       t        j                  t        j                  |j                  |j                  d¬«      t        j                  |j                  |j                  d¬«      «       t        j                  t        j                  |j                  |j                  d¬«      t        j                  |j                  |j                  d¬«      «       t        j                  ddgddgddggt        j                  g d¢dd¬«      t        j                  dd	gd
d¬«      ¬«      }t        j                  g d¢g d¢gt        j                  ddgdd¬«      t        j                  g d¢d
d¬«      ¬«      }t        j                  g d¢g d ¢g d!¢gt        j                  g d¢dd¬«      t        j                  g d¢d
d¬«      ¬«      }	t        j                  t        j                  |j                  |j                  dd¬"«      |«       t        j                  t        j                  |j                  |j                  dd¬"«      |«       t        j                  t        j                  |j                  |j                  dd¬"«      |	«       y )#N©rH   r
   r
   r
   r
   ©r6   r6   rJ   rJ   rJ   rH   r8   r
   r9   rO   r6   rJ   r:   çš™™™™™É?r   ç333333ã?rQ   r”   ç      Ð?ç      è?ç      à?Úall©Ú	normalizeTrB   rD   çš™™™™™Ù?©rH   r
   r[   r   ©rP   rN   )r²   r   r®   )r²   r”   çš™™™™™é?r–   )r®   r   r®   )r®   r¯   r¹   ©r¶   r¯   rH   ©rµ   rX   )
r   r   r   r˜   rT   r$   r%   r    r9   r:   )
r*   r   ÚrindexÚcindexÚfull_normalÚ
row_normalÚ
col_normalÚrow_normal_marginsÚcol_normal_marginsÚall_normal_marginss
             r   Útest_crosstab_normalizez$TestCrosstab.test_crosstab_normalizen  s  € ä�\‰\Ú!ª¸qÀ!ÄRÇVÁVÈQÐPQÐ>RÑSó
ˆô —‘˜1˜a˜& sÔ+ˆÜ—‘˜1˜a˜& sÔ+ˆÜ—l‘l S¨! H¨s°C¨jÐ#9ÀÐQWÔXˆÜ—\‘\Ø�1ˆX˜˜d�|Ð$¨F¸Fô
ˆ
ô —\‘\ C¨ 8¨c°3¨ZÐ"8ÀÐPVÔWˆ
ô 	×ÑœbŸk™k¨"¯$©$°·±ÀÔFÈÔTÜ
×ÑœbŸk™k¨"¯$©$°·±ÀÔEÀ{ÔSÜ
×ÑœbŸk™k¨"¯$©$°·±ÀÔHÈ*ÔUÜ
×ÑœbŸk™k¨"¯$©$°·±À	ÔJÈJÔWÜ
×ÑÜ�K‰K˜Ÿ™˜bŸd™d¨aÔ0Ü�K‰K˜Ÿ™˜bŸd™d¨iÔ8ô	
ô 	×ÑÜ�K‰K˜Ÿ™˜bŸd™d¨aÔ0Ü�K‰K˜Ÿ™˜bŸd™d¨gÔ6ô	
ô
  Ÿ\™\Ø�1ˆX˜˜d�| c¨3 ZÐ0Ü—(‘(š=¨s¸(ÔCÜ—H‘H˜a ˜V¨#°XÔ>ô
Ðô
  Ÿ\™\ÚšOÐ,Ü—(‘(˜A˜q˜6¨°8Ô<Ü—H‘Hš]°¸HÔEô
Ðô  Ÿ\™\ÚšOª]Ð;Ü—(‘(š=¨s¸(ÔCÜ—H‘Hš]°¸HÔEô
Ðô
 	×ÑÜ�K‰K˜Ÿ™˜bŸd™d¨g¸tÔDÐFXô	
ô 	×ÑÜ�K‰K˜Ÿ™˜bŸd™d¨iÀÔFØô	
ô 	×ÑÜ�K‰K˜Ÿ™˜bŸd™d¨d¸DÔAÐCUõ	
r   c           	      ó  — t        j                  g d¢g d¢ddt        j                  ddgdœ«      }t        j                  t        j
                  g d¢«      t        j
                  g d¢«      gt        j
                  g d¢«      «       t        j                  g d¢g d¢g d	¢gt        j                  g d
¢dd¬«      t        j                  g d¢d¬«      ¬«      }t        j                  |j                  |j                  |j                  ddd¬«      }t        j                  ||«       t        j                  g d¢g d¢ddt        j                  ddgdœ«      }t        j                  g d¢g d¢g d¢gt        j                  g d
¢dd¬«      t        j                  g d¢dd¬«      ¬«      }t        j                  |j                  |j                  |j                  t        j                  dd¬«      }t        j                  ||«       y )Nr¬   r­   rH   r8   )rH   rH   r
   r
   )rH   r
   rH   r
   )r°   r   r°   )r°   r²   r±   )r²   r²   rH   r·   r9   r   r¸   r–   r:   rO   rQ   Úcountr³   T)ru   rµ   rX   r   rJ   r6   )r   r   ç        rº   )r   r   r   r˜   r    rS   rT   r9   r:   r;   r$   r%   rs   )r*   r   Únorm_countsÚ	test_caseÚnorm_sums        r   Útest_crosstab_normalize_arraysz+TestCrosstab.test_crosstab_normalize_arrays¥  sr  € ä�\‰\Ú!ª¸qÀ!ÄRÇVÁVÈQÐPQÐ>RÑSó
ˆô
 	�‰Ü�X‰X’lÓ#¤R§X¡XªlÓ%;Ð<¼b¿h¹hÂ|Ó>Tô	
ô
 —l‘lÚÒ/²Ð?Ü—(‘(š=¨s¸(ÔCÜ—H‘Hš]°Ô5ô
ˆô
 —K‘KØ�D‰D�"—$‘$˜Ÿ™ g¸Èô
ˆ	ô 	×Ñ˜i¨Ô5ä�\‰\Ú!ª¸qÀ!ÄRÇVÁVÈQÐPQÐ>RÑSó
ˆô —<‘<Úš-ªÐ7Ü—(‘(š=¨s¸(ÔCÜ—H‘Hš]°¸HÔEô
ˆô
 —K‘KØ�D‰D�"—$‘$˜Ÿ™¤b§f¡f¸Àtô
ˆ	ô 	×Ñ˜i¨Õ2r   c           	      ój  — t        j                  g d¢g d¢t        j                  t        j                  t        j                  t        j                  t        j                  gdœ«      }t        j                  ddgddggt        j                  ddgdd¬	«      t        j                  d
dgd¬«      ¬«      }dD ]P  }t        j
                  |j                  |j                  |j                  d|¬«      }t        j                  ||«       ŒR t        j                  dt        j                  gddggt        j                  ddgdd¬	«      t        j                  d
dgd¬«      ¬«      }t        j
                  |j                  |j                  |j                  dd¬«      }t        j                  ||«       y )Nr¬   r­   r8   rÇ   rH   r
   r9   r(   r¸   r6   rJ   r:   rO   rQ   )TrB   rD   rÆ   )rv   ru   rµ   F)r   r   r   r˜   rT   r    r9   r:   r;   r$   r%   )r*   r   ÚemptyÚiÚ
calculatedÚnanss         r   Útest_crosstab_with_emptiesz'TestCrosstab.test_crosstab_with_emptiesÉ  sN  € ä�\‰\â$Ú$Ü—f‘fœbŸf™f¤b§f¡f¬b¯f©f´b·f±fÐ=ñó
ˆô —‘Ø�3ˆZ˜#˜s˜Ð$Ü—(‘(˜A˜q˜6¨°7Ô;Ü—H‘H˜a ˜V¨#Ô.ô
ˆð ,ò 	5ˆAÜŸ™Ø—‘�b—d‘d 2§4¡4°ÀAôˆJô ×!Ñ! %¨Õ4ð		5ô �|‰|Ø”2—6‘6ˆ]˜S #˜JÐ'Ü—(‘(˜A˜q˜6¨°7Ô;Ü—H‘H˜a ˜V¨#Ô.ô
ˆô —[‘[Ø�D‰D�"—$‘$˜rŸt™t¨WÀô
ˆ
ô 	×Ñ˜d JÕ/r   c           	      óB  — t        j                  g d¢g d¢ddt        j                  ddgdœ«      }d}t	        j
                  t        |¬«      5  t        j                  |j                  |j                  |j                  ¬«       d d d «       d}t	        j
                  t        |¬«      5  t        j                  |j                  |j                  t        j                  ¬	«       d d d «       d
}t	        j
                  t        |¬«      5  t        j                  |j                  |j                  d¬«       d d d «       t	        j
                  t        |¬«      5  t        j                  |j                  |j                  d¬«       d d d «       d}t	        j
                  t        |¬«      5  t        j                  |j                  |j                  dd¬«       d d d «       y # 1 sw Y   �Œ`xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒÇxY w# 1 sw Y   ŒƒxY w# 1 sw Y   y xY w)Nr¬   r­   rH   r8   z)values cannot be used without an aggfunc.rk   )rv   z%aggfunc cannot be used without values)ru   zNot a valid normalize argumentÚ42r´   é*   zNot a valid margins argumentr³   r»   )r   r   r   r˜   rm   rn   ro   r    r9   r:   r;   Úmean)r*   r   Úerrors      r   Útest_crosstab_errorsz!TestCrosstab.test_crosstab_errorsê  s…  € ô �\‰\Ú!ª¸qÀ!ÄRÇVÁVÈQÐPQÐ>RÑSó
ˆð <ˆÜ�]‰]œ:¨UÔ3ñ 	1Ü�K‰K˜Ÿ™˜bŸd™d¨2¯4©4Õ0÷	1ð 8ˆÜ�]‰]œ:¨UÔ3ñ 	5Ü�K‰K˜Ÿ™˜bŸd™d¬B¯G©GÕ4÷	5ð 1ˆÜ�]‰]œ:¨UÔ3ñ 	4Ü�K‰K˜Ÿ™˜bŸd™d¨dÕ3÷	4ô �]‰]œ:¨UÔ3ñ 	2Ü�K‰K˜Ÿ™˜bŸd™d¨bÕ1÷	2ð /ˆÜ�]‰]œ:¨UÔ3ñ 	AÜ�K‰K˜Ÿ™˜bŸd™d¨e¸RÕ@÷	Að 	A÷	1ñ 	1ú÷	5ñ 	5ú÷	4ð 	4ú÷	2ð 	2ú÷	Að 	Aús<   Á7G#Â*;G0Ä
-G=Å-H	Æ,.HÇ#G-Ç0G:Ç=HÈ	HÈHc                 ó²  — t        j                  g d¢g d¢dœ«      }g d¢}|d   j                  d«      j                  j	                  |«      |d<   t        j
                  |d   |d   «      }t        j                  g d¢d¬	«      }t        j                  ||d
d¬«      }g d¢g d¢g d¢g}t        j                  |||¬«      }t        j                  ||«       y )N)ÚHondaÚAcuraÚTeslarÙ   rÙ   rÚ   )ÚSedanrÜ   ÚElectricÚPickuprÜ   rÜ   )ÚMAKEÚMODEL)rÜ   rÝ   rÞ   rà   Úcategoryrß   )rÚ   rÙ   rÛ   rO   F)Ú
categoriesÚorderedrP   )r
   r   r   )r
   r   rH   ©r   rH   r   rQ   )
r   r   r'   ÚcatÚset_categoriesr    rT   ÚCategoricalIndexr$   r%   )r*   r   râ   r+   Úexpected_indexÚexpected_columnsÚexpected_datar,   s           r   Ú&test_crosstab_with_categorical_columnsz3TestCrosstab.test_crosstab_with_categorical_columns  sÄ   € ä�\‰\âNÚSñó
ˆò 5ˆ
Ø˜‘k×(Ñ(¨Ó4×8Ñ8×GÑGÈ
ÓSˆˆ7‰Ü—‘˜R ™Z¨¨G©Ó5ˆäŸ™Ò"=ÀFÔKˆÜ×.Ñ.Ø :°uÀ7ô
Ðò #¢IªyÐ9ˆÜ—<‘<Ø Ð9Iô
ˆô 	×Ñ˜f hÕ/r   c                 ó˜  — t        j                  g d¢dz  g d¢dz  g d¢dz  t        j                  j	                  d«      j                  d«      t        j                  j	                  d«      j                  d«      d	œ«      }t        j                  |d
   |d   g|d   gdt        j                  |d   ¬«      }t        j                  g d¢g d¢gg d¢g d¢gd
dg¬«      }t        j                  g d¢d¬«      }t        j                  g d¢g d¢g d¢dt        j                  dgt        j                  ddgdt        j                  dgt        j                  ddgdt        j                  dgt        j                  ddgg d¢g
«      }t        j                  |||¬«      }|d   j                  d«      |d<   t        j                  ||«       y )N©r   r   r   Úthreer‡   r/   é   ©r   r   r   r   r   r   rJ   r
   é   ©r   r   r   r   r   r   r   r   Tr   )rB   rD   rX   ru   rv   )r[   r   rî   r   )r\   r   r   r   )
rH   rH   rH   r
   r
   r
   r6   r6   r6   r   )
rH   r
   r6   rH   r
   r6   rH   r
   r6   r   ©ÚlevelsÚcodesrC   r¨   rO   )r•   r•   rž   r•   )ç      (@rö   g      8@rQ   r[   r(   )r   r   r   r   r   r   r    r"   r€   rT   rS   r˜   r'   r$   r%   )r*   r   r+   rè   Úexpected_columnrê   r,   s          r   Útest_crosstab_with_numpy_sizez*TestCrosstab.test_crosstab_with_numpy_size  s‘  € ä�\‰\â3°aÑ7Ú$ qÑ(Ú?À!ÑCÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸bÓAÜ—Y‘Y×*Ñ*¨1Ó-×=Ñ=¸bÓAñó
ˆô —‘Ø�c‘7˜B˜s™GÐ$Ø˜‘W�IØÜ—G‘GØ�c‘7ô
ˆô Ÿ™Ú2Ò4GÐHÚ1Ò3QÐRØ˜�*ô
ˆô
 Ÿ(™(Ò#8¸sÔCˆÜŸ™âÚÚØ”b—f‘f˜cÐ"Ü—‘˜˜cÐ"Ø”b—f‘f˜cÐ"Ü—‘˜˜cÐ"Ø”b—f‘f˜cÐ"Ü—‘˜˜cÐ"Ú"ðó
ˆô —<‘<Ø ¸ô
ˆð # 5™/×0Ñ0°Ó9ˆ�‰Ü
×Ñ˜f hÕ/r   c                 ó  — t        j                  t        d«      d¬«      }t        j                  t        dd«      d¬«      }t        j                  t        dd«      d¬«      }t        j                  t        d«      d¬«      }ddi}t        j                  ||«      }t        j                  ||«      j	                  |d¬«      }t        j                  ||«       t        j                  ||g|«      }t        j                  ||g|«      j	                  |d	¬
«      }t        j                  ||«       t        j                  |||g«      }t        j                  |||g«      j	                  |d¬«      }t        j                  ||«       y )Nr6   r   rO   rH   rJ   r   Úwaldo)rD   Úaxisr   )rB   rû   )r   rR   Úranger    Úrename_axisr$   r%   )r*   r‰   Ús2_fooÚs2_barÚs3Úmapperr+   r,   s           r   Útest_crosstab_duplicate_namesz*TestCrosstab.test_crosstab_duplicate_namesG  s;  € ô �Y‰Y”u˜Q“x eÔ,ˆÜ—‘œ5  A›;¨UÔ3ˆÜ—‘œ5  A›;¨UÔ3ˆÜ�Y‰Y”u˜Q“x gÔ.ˆð ˜�ˆô —‘˜R Ó(ˆÜ—;‘;˜r 6Ó*×6Ñ6¸vÈAÐ6ÓNˆÜ
×Ñ˜f hÔ/ô —‘˜b &˜\¨2Ó.ˆÜ—;‘;  F˜|¨RÓ0×<Ñ<À6ÐPQÐ<ÓRˆÜ
×Ñ˜f hÔ/ô —‘˜R " f Ó.ˆÜ—;‘;˜r B¨ <Ó0×<Ñ<ÀVÐRSÐ<ÓTˆä
×Ñ˜f hÕ/r   rC   r9   r<   r�   r;   c                 ó¦  — t        j                  t        d«      |d   ¬«      }t        j                  t        dd«      |d   ¬«      }t         j                  j	                  t        d«      t        dd«      g|¬«      }t        j                  d|¬«      j                  dd¬«      }t        j                  ||«      }t        j                  ||«       y )	Nr6   r   rO   rH   rJ   r~   rI   )Ú
fill_value)	r   rR   rü   r€   r©   r#   r    r$   r%   )r*   rC   r‰   rŠ   Úmir,   r+   s          r   Útest_crosstab_tuple_namez%TestCrosstab.test_crosstab_tuple_namec  sœ   € ä�Y‰Y”u˜Q“x e¨A¡hÔ/ˆÜ�Y‰Y”u˜Q “{¨¨q©Ô2ˆä�]‰]×&Ñ&¬¨a«´%¸¸1³+Ð'>ÀeÐ&ÓLˆÜ—9‘9˜Q bÔ)×1Ñ1°!ÀÐ1ÓBˆä—‘˜R Ó$ˆÜ
×Ñ˜f hÕ/r   c           	      ó®  — t        j                  t        d«      d¬«      }t        j                  t        d«      d¬«      }t        j                  t	        j
                  dd¬«      t        j                  t        d«      d¬«      t        j                  t        d«      d¬«      ¬«      }t        j                  ||«      }t        j                  ||«       y )Nr6   r�   rO   )r;   rK   r(   rM   rQ   )
r   rR   rü   r   r   ÚeyerT   r    r$   r%   )r*   r‰   rŠ   r,   r+   s        r   Útest_crosstab_both_tuple_namesz+TestCrosstab.test_crosstab_both_tuple_namesn  sŒ   € ä�Y‰Y”u˜Q“x jÔ1ˆÜ�Y‰Y”u˜Q“x jÔ1ˆä—<‘<Ü�F‰F�1˜GÔ$Ü—(‘(œ5 ›8¨*Ô5Ü—H‘HœU 1›X¨JÔ7ô
ˆô
 —‘˜R Ó$ˆÜ
×Ñ˜f hÕ/r   c                 óš  — t        j                  g d¢g d¢dœg d¢¬«      }t        j                  |j                  |j                  |j
                  g«      }t        j                  g d¢d¬«      }t         j                  j                  g d	¢d
dg¬«      }t        j                  g d¢g d¢g d¢g||¬«      }t        j                  ||«       y )N)r6   rH   r
   )r3   rJ   r‡   )r:   r9   ©r   r   r   rI   r/   r?   rO   ))rH   rJ   )r
   r‡   )r6   r3   r:   r9   r~   )rH   r   r   rä   )r   r   rH   rQ   )r   r   r    rB   r:   r9   rT   r€   r�   r$   r%   )r*   r   r+   Úe_idxÚ	e_columnsr,   s         r   Útest_crosstab_unsorted_orderz)TestCrosstab.test_crosstab_unsorted_order{  s™   € Ü�\‰\¢	²	Ñ:Â/ÔRˆÜ—‘˜RŸX™X¨¯©¨b¯d©d |Ó4ˆÜ—‘š¨wÔ7ˆÜ—M‘M×-Ñ-Ú$¨S°#¨Jð .ó 
ˆ	ô —<‘<Úš	¢9Ð-°UÀIô
ˆô 	×Ñ˜f hÕ/r   c           	      ó@  — t        j                  g d¢dz  g d¢dz  g d¢dz  dgdz  dgdz  d	œ«      }t        j                  |j                  |j                  g|j
                  |j                  t        j                  d
d
¬«      }t        j                  t        j                  dgdz  dgz   t        ¬«      j                  dd«      t        j                  g d¢d¬«      t         j                  j                  g d¢ddg¬«      ¬«      }t        j                   ||«       y )Nrí   r‡   r/   rï   rð   rJ   r   rñ   rò   T)rv   ru   rµ   rX   é   rH   rM   r7   r6   r¨   r   rO   )
)r   r   )r   r   )r   r   )rî   r   )rî   r   )rî   r   )r   r   )r   r   )r   r   rZ   r   r   r~   )rD   rB   )r   r   r    r   r   r   r   r   rs   rS   ÚfloatÚreshaperT   r€   r�   r$   r%   r)   s       r   Ú(test_crosstab_normalize_multiple_columnsz5TestCrosstab.test_crosstab_normalize_multiple_columns‡  sö   € ä�\‰\â3°aÑ7Ú$ qÑ(Ú?À!ÑCØ�S˜2‘XØ�S˜2‘Xñó
ˆô —‘Ø�T‰T�2—4‘4ˆLØ�D‰DØ—4‘4Ü—F‘FØØô
ˆô —<‘<Ü�H‰H�a�S˜2‘X  ‘^¬5Ô1×9Ñ9¸"¸aÓ@Ü—H‘HÒ2¸Ô=Ü—-‘-×+Ñ+òð ˜C�jð ,ó ô
ˆô& 	×Ñ˜f hÕ/r   c                 ó¶  — t        j                  g d¢g d¢g d¢g d¢g d¢dœ«      }t        j                  |j                  |j                  g|j
                  ddd	¬
«      }t        j                  ddgddgddgd	dgddgg«      }t        j                  g d¢g d¢gg d¢g d¢gddg¬«      |_        t        j                  ddgd¬«      |_	        t        j                  ||«       t        j                  |j                  |j                  g|j
                  ddd¬
«      }t        j                  g d¢g d¢g d¢g d¢g«      }t        j                  g d¢d¬«      |_	        t        j                  d d!gd"d#ggg d$¢g d%¢gddg¬«      |_        t        j                  ||«       t        j                  |j                  |j                  g|j
                  ddd¬
«      }t        j                  g d&¢g d&¢g d'¢g d(¢g d)¢g«      }t        j                  g d¢d¬«      |_	        t        j                  g d¢g d¢gg d¢g d¢gddg¬«      |_        t        j                  ||«       y )*N©	r   r   r   r   r   r   r   r   r   ©	r   r   r   r   r   r   r   r   r   ©	ÚsmallÚlarger  r  r  r  r  r  r  ©	rH   r
   r
   r6   r6   rJ   r3   r‡   rW   ©	r
   rJ   r3   r3   r‡   r‡   rï   é	   r  rò   Tú	Sub-Totalr   )rX   rj   rµ   r²   g]QJVUå?çF]kïSUÕ?rH   ç³Ñ9?ÅqÜ?ç'c`Çá?)r  r   r   ©r\   r   r   )rH   rH   r
   r
   r   ©rH   r
   rH   r
   r   r   r   ró   r  r  r   rO   )r°   r®   ç³Ñ9?ÅqÌ?)r²   r®   r  )r   r¶   r#  )r  r  r  r   r   r   r   )r   r   rH   rH   ©r   rH   r   rH   )ç³Ñ9?Åq¼?r%  r#  )r#  r%  r  )rÇ   r#  r#  )r  g#„GÇá?rH   )r   r   r    r   r   r   r€   rB   rT   rD   r$   r%   r)   s       r   Útest_margin_normalizez"TestCrosstab.test_margin_normalize°  s   € ä�\‰\âTÚTò
ò 1Ú0ñó
ˆô( —‘Ø�T‰T�2—4‘4ˆL˜"Ÿ$™$¨¸;ÐRSô
ˆô —<‘<Ø�3ˆZ˜#˜s˜ h°Ð%9¸A¸q¸6ÀHÈhÐCWÐXó
ˆô Ÿ™Ú/Ò1CÐDÚ"¢OÐ4Ø˜�*ô
ˆŒô
 Ÿ8™8 W¨gÐ$6¸SÔAˆÔÜ
×Ñ˜f hÔ/ô —‘Ø�T‰T�2—4‘4ˆL˜"Ÿ$™$¨¸;ÐRSô
ˆô —<‘<â%Ú%Ú$Ú"ð	ó
ˆô Ÿ8™8Ò$CÈ#ÔNˆÔÜŸ™Ø˜E�N U¨E NÐ3Ú¢Ð.Ø˜�*ô
ˆŒô
 	×Ñ˜f hÔ/ô —‘Ø�T‰T�2—4‘4ˆL˜"Ÿ$™$¨¸;ÐRVô
ˆô —<‘<â.Ú.Ú.Ú.Ú'ðó
ˆô Ÿ8™8Ò$CÈ#ÔNˆÔÜŸ™Ú/Ò1CÐDÚ"¢OÐ4Ø˜�*ô
ˆŒô
 	×Ñ˜f hÕ/r   c                 óª  — t        j                  g d¢g d¢g d¢g d¢g d¢dœ«      }t        j                  |j                  |j                  |j
                  gddd¬	«      }t        j                  g d
¢g d¢g d¢gg d¢¬«      }t        j                  g d¢g d¢gg d¢g d¢gddg¬«      |_        d|j                  _	        t        j                  ||«       y )Nr  r  r  r  r  rò   TÚmargin)rB   rD   rX   rj   rµ   )r%  r%  r#  rÇ   r  )r%  r%  r%  r#  r   )r#  r#  r  r#  r”   )r  r  r(  rI   )r   r   r(  r!  )r   r   rH   rH   r
   r"  r   r   ró   r   )r   r   r    r   r   r   r€   rD   rB   rP   r$   r%   r)   s       r   Ú&test_margin_normalize_multiple_columnsz3TestCrosstab.test_margin_normalize_multiple_columnsý  sÅ   € ô �\‰\âTÚTò
ò 1Ú0ñó
ˆô& —‘Ø—$‘$Ø—T‘T˜2Ÿ4™4�LØØ!Øô
ˆô —<‘<âBÚBÚ=ðò
 /ô
ˆô Ÿ=™=Ú,Ò.@ÐAÚ"¢OÐ4Ø˜�*ô
ˆÔð
 "ˆ�‰ÔÜ
×Ñ˜f hÕ/r   c           	      óœ  — t        j                  g d¢g d¢g d¢dœd¬«      }t        j                  |d   |d   |d	   d
d¬«      }t        j                  dt         j                  ddgddt         j                  dgg d¢gt        j                  g d¢dd¬«      t        j                  g d¢dd¬«      d¬«      }t        j                  ||«       y )N)rH   r
   r
   rH   )r6   r6   rJ   r3   )ç      ð¿ç      $@r”   r,  r/   ÚFloat64rM   r   r   r   rs   T)rv   ru   rX   r+  r,  ç      "@r”   g      &@)r.  r”   r,  g      4@r“   r   rˆ   )r�   rž   g      @r[   )rB   rD   rN   )r   r   r    ÚNArT   r$   r%   r)   s       r   Útest_margin_support_Floatz&TestCrosstab.test_margin_support_Float*  s¼   € ô �\‰\Ú¢\Ò8OÑPØô
ˆô —‘Øˆs‰GØˆs‰GØ�c‘7ØØô
ˆô —<‘<à”r—u‘u˜d CÐ(Ø�sœBŸE™E 4Ð(Ú&ðô
 —(‘(Ò,°HÀ3ÔGÜ—H‘HÒ3¸8È#ÔNØô	
ˆô 	×Ñ˜f hÕ/r   c                 óô  — t        j                  g d¢g d¢dœ«      }|d   j                  t        j                  d¬«      «      |d<   g d¢}|d   j                  j                  |«      |d<   t        j                  |d   |d   d¬	«      }t        j                  g d
¢d¬«      }t        j                  g d¢d¬«      }g d¢g d¢g d¢g d¢g}t        j                  |||¬«      }t        j                  ||«       y )N)r   r   r   r   r   r   )r   r   r   r   r   r   )ÚFirstÚSecondr2  T)rã   r  r3  )rX   )r   r   r   r[   rO   )r   r   r   r[   )rH   rH   r   r
   r$  )r   rH   r
   r6   )rH   r6   r
   r‡   rQ   )
r   r   r'   ÚCategoricalDtyperå   Úreorder_categoriesr    rT   r$   r%   )r*   r   Úcustomized_categories_orderr+   rè   ré   rê   r,   s           r   Ú+test_margin_with_ordered_categorical_columnz8TestCrosstab.test_margin_with_ordered_categorical_columnD  sÖ   € ä�\‰\â7Ú8ñó
ˆð ˜‘k×(Ñ(¬×)<Ñ)<ÀTÔ)JÓKˆˆ7‰Ú&5Ð#Ø˜‘k—o‘o×8Ñ8Ð9TÓUˆˆ7‰Ü—‘˜R ™[¨"¨X©,ÀÔEˆäŸ™Ò"8¸wÔGˆÜŸ8™8Ò$:ÀÔJÐÚ%¢|²\Â<ÐPˆÜ—<‘<Ø Ð9Iô
ˆô 	×Ñ˜f hÕ/r   N)(Ú__name__Ú
__module__Ú__qualname__r-   r0   rm   ÚmarkÚparametrizer   rS   ÚlistÚtuplerE   rU   rg   rq   ry   r…   rŒ   rš   rŸ   r¡   r£   r¦   rª   rÄ   rË   rÑ   r×   rë   rø   r  r  r	  r  r  r&  r)  r0  r7  © r   r   r   r   <   s  „ òKò
	0ð ‡[�[×Ñ˜U R§X¡X¨t°UÐ$;Ó<ñ0ó =ð0ò.0ò$3ò@0òd/ò".ò0ò
0ò0ò0ò
0òCò=0ò~5
òn"3òH0òBAò40ò,+0òZ0ð8 ‡[�[×Ñ˜W¨¨ZÐ'8¸:ÀsÐ:KÐ&LÓMñ0ó Nð0ò0ò
0ò'0òRK0òZ+0òZ0ó40r   r   Úa_dtyperá   r(   Úb_dtypec                 óÚ  — t         j                  j                  d«      }t        j                  |j                  ddd¬«      «      j                  | «      }t        j                  |j                  ddd¬«      «      j                  |«      }t        j                  ||dd¬«      }t        j                  g d	¢d
d¬«      }t        j                  g d¢d
d¬«      }g d¢g d¢g d¢g d¢g}t        j                  |||«      }	t        j                  ||	«       d|j                  |dk(  <   t        |j                  t        j                  «      }
|
r"|j!                  «       j                  d   dk(  sJ ‚t        j                  ||dd¬«      }g d¢g d¢g d¢g d¢g}t        j                  |||«      }	|
s(|	j                  g d¢   }	|	d   j                  d«      |	d<   t        j                  ||	«       y )Nr
   r   r6   r4   r5   TFr�   )r   rH   r[   r   r@   rˆ   )r   rH   r
   r[   r?   )r7   é   é   )é   é   é'   )é   rF  é!   )é2   rJ  r4   rH   )r   r   r   )é(   é    éH   )r   r
   r[   r[   r(   )r   r   r   r   rR   rA   r'   r    rT   r   r$   r%   r`   Ú
isinstancerN   r4  Úvalue_counts)r@  rA  Úgr9   r:   r+   rD   rB   rv   r,   Úa_is_cats              r   Útest_categoricalsrR  Z  s‰  € ô 	�	‰	×Ñ˜aÓ €AÜ
�	‰	�!—*‘*˜Q ¨�*Ó,Ó-×4Ñ4°WÓ=€AÜ
�	‰	�!—*‘*˜Q ¨�*Ó,Ó-×4Ñ4°WÓ=€AÜ�[‰[˜˜A t°EÔ:€FÜ�h‰h’}¨H¸7ÔC€GÜ�H‰HÒ%¨X¸GÔD€EÚšLª,ºÐF€FÜ�|‰|˜F E¨7Ó3€HÜ×Ñ˜& (Ô+ð €A‡E�Eˆ!ˆq‰&�MÜ˜!Ÿ'™'¤2×#6Ñ#6Ó7€HÙ˜1Ÿ>™>Ó+×/Ñ/°Ñ2°aÒ7Ð7Ð7Ü�[‰[˜˜A t°EÔ:€FÚšI¢|²]ÐC€FÜ�|‰|˜F E¨7Ó3€HÙØ—<‘<¢Ñ.ˆØ" 5™/×0Ñ0°Ó9ˆ�‰Ü×Ñ˜& (Õ+r   )Únumpyr   rm   Úpandasr   Úpandas._testingÚ_testingr$   Úfixturer   r   r;  r<  rR  r?  r   r   ú<module>rX     s   ðÛ Û ã Ý ð ‡�ñ02ó ð02÷f[0ñ [0ð| ‡�×Ñ˜ Z°Ð$9Ó:Ø‡�×Ñ˜ Z°Ð$9Ó:ñ,ó ;ó ;ñ,r   