Ë
    ¤ehB  ã                   ó  — d dl Zd dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZ 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)é    N)ÚCategoricalDtypeÚCategoricalIndexÚ	DataFrameÚIndexÚ
MultiIndexÚSeriesÚcrosstabc            
      ól  — t        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)r   ÚnpÚrandomÚdefault_rngÚstandard_normalÚpdÚconcat)Údfs    ú`/var/www/skyplay_api_hub/venv/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        |d   |d   «      }|j                  ddg«      j                  «       j                  «       }t	        j
                  ||j                  d«      j                  t        j                  «      «       y )Nr   r   r   )
r	   ÚgroupbyÚsizeÚunstackÚtmÚassert_frame_equalÚfillnaÚastyper   Úint64©Úselfr    ÚresultÚexpecteds       r!   Útest_crosstab_singlez!TestCrosstab.test_crosstab_singleF   sb   € Ü˜"˜S™' 2 c¡7Ó+ˆØ—:‘:˜s C˜jÓ)×.Ñ.Ó0×8Ñ8Ó:ˆÜ
×Ñ˜f h§o¡o°aÓ&8×&?Ñ&?ÄÇÁÓ&IÕJr"   c                 óN  — t        |d   |d   |d   g«      }|j                  g d¢«      j                  «       }|j                  d«      j                  d«      j	                  d«      j                  t        j                  «      }t        j                  ||«       t        |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.   s       r!   Útest_crosstab_multiplez#TestCrosstab.test_crosstab_multipleK   sé   € Ü˜"˜S™' B s¡G¨R°©WÐ#5Ó6ˆØ—:‘:šoÓ.×3Ñ3Ó5ˆØ×#Ñ# CÓ(×0Ñ0°Ó5×<Ñ<¸QÓ?×FÑFÄrÇxÁxÓPˆÜ
×Ñ˜f hÔ/ä˜2˜c™7 B s¡GÐ,¨b°©gÓ6ˆØ—:‘:š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	        |||dœ«      }t        |||gd	gd
¬«      }t        |d	   |d   |d   g«      }t        j                  ||«       t        ||g|d	gd
¬«      }t        |d   |d   g|d	   «      }t        j                  ||«       t        ||«      }t        |d	   |d   «      }dg|j                  _	        dg|j                  _	        t        j                  ||«       y )Nr   r   é   éd   ©r'   é   é
   ©ÚaÚbÚcr>   ©r?   r@   )ÚrownamesÚcolnamesr?   r@   )rC   rB   Úrow_0Úcol_0)r   r   r   Úintegersr   r	   r)   r*   ÚindexÚnamesÚcolumns)r/   r6   r>   r?   r@   r    r0   r1   s           r!   Útest_crosstab_ndarrayz"TestCrosstab.test_crosstab_ndarrayV   sk  € ñ ”—	‘	×%Ñ% aÓ(×1Ñ1°!°Q¸SÐ1ÓAÓBˆÙ”—	‘	×%Ñ% aÓ(×1Ñ1°!°Q¸SÐ1ÓAÓBˆÙ”—	‘	×%Ñ% aÓ(×1Ñ1°!°R¸cÐ1ÓBÓCˆä˜Q Q¨QÑ/Ó0ˆä˜!˜a ˜V¨s¨e¸jÔIˆÜ˜B˜s™G b¨¡g¨r°#©wÐ%7Ó8ˆÜ
×Ñ˜f hÔ/ä˜1˜a˜& !¨s¨e¸jÔIˆÜ˜R ™W b¨¡gÐ.°°3±Ó8ˆÜ
×Ñ˜f hÔ/ô ˜!˜Q“ˆÜ˜B˜s™G R¨¡WÓ-ˆØ '˜yˆ�‰ÔØ") ˆ×ÑÔÜ
×Ñ˜f hÕ/r"   c                 óz  — t        g d¢g d¢¬«      }t        g d¢g d¢¬«      }t        j                  g d¢t        j                  ¬«      }t	        dd	gddggt        d	dgd
¬«      t        ddgd¬«      ¬«      }t        ||«      }t        j                  ||«       t        ||«      }t        j                  ||«       y )N©r   é   rM   r=   ©rG   )r;   é   r;   rO   r;   )r>   r?   r@   ÚdÚf)r;   rO   r;   ©ÚdtyperM   r   rD   ©Únamer;   rO   rE   ©rG   rI   )	r   r   Úarrayr-   r   r   r	   r)   r*   )r/   r>   r?   r@   r1   r0   s         r!   Útest_crosstab_non_alignedz&TestCrosstab.test_crosstab_non_alignedn   s�   € ä’9¢OÔ4ˆÜ’?Ò*CÔDˆÜ�H‰H’Y¤b§h¡hÔ/ˆäØ�ˆV�a˜�VÐÜ˜˜A˜ WÔ-Ü˜1˜a˜& wÔ/ô
ˆô ˜!˜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	        |||dœ«      }t        |||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        t        |«      gt        dgd	¬«      ¬«      }t        j                   ||g«      }d|_        t%        j&                  ||«       |j(                  d   }	|j                  ddg«      j                  «       j                  d«      }
t        j                   |
t        t        |«      gdg¬«      g«      }
d|
_        |
j+                  |	j                  «      }
|
j-                  d«      j                  t         j.                  «      }
t%        j&                  |	|
«       y )Nr   r   é   r9   r:   r;   r8   r=   r>   rA   T)rB   rC   Úmargins©r>   r?   r@   ©ÚAllÚ Úi8r^   rT   rN   )r   r   r   rF   r   r	   rG   rH   rI   r&   r'   r,   r   Úlenr   r   r   rU   r)   Úassert_series_equalÚlocÚreindexr+   r-   )r/   r>   r?   r@   r    r0   Úall_colsÚexp_colsÚ
exp_marginÚall_rowsÚexp_rowss              r!   Útest_crosstab_marginsz"TestCrosstab.test_crosstab_margins€   sã  € Ü�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆä˜Q Q¨QÑ/Ó0ˆä˜!˜a ˜V¨s¨e¸jÐRVÔWˆà�|‰|×!Ñ! VÒ+Ð+Ð+Ø�~‰~×#Ñ#¨¨S zÒ1Ð1Ð1à˜)Ñ$ˆØ—:‘:˜s˜eÓ$×)Ñ)Ó+×2Ñ2°4Ó8ˆäœS ›W˜I¬U°E°7ÀÔ-EÔFˆ
Ü—9‘9˜h¨
Ð3Ó4ˆØ#ˆŒä
×Ñ˜x¨Ô2à—:‘:˜eÑ$ˆØ—:‘:˜s C˜jÓ)×.Ñ.Ó0×7Ñ7¸Ó=ˆÜ—9‘9˜h¬´°B³¨yÀÀÔ(NÐOÓPˆØˆŒà×#Ñ# 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	        |||dœ«      }t        |||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        t        |«      gt        dgd	¬«      ¬«      }t        j                   ||g«      }d|_        t%        j&                  ||«       |j(                  d   }	|j                  ddg«      j                  «       j                  d«      }
t        j                   |
t        t        |«      gdg¬«      g«      }
d|
_        |
j+                  |	j                  «      }
|
j-                  d«      j                  t         j.                  «      }
t%        j&                  |	|
«       d}dd d	dgfD ]:  }t1        j2                  t4        |¬«      5  t        |||gd	gd
d|¬«       d d d «       Œ< y # 1 sw Y   ŒGxY w)Nr   r   rZ   r9   r:   r;   r8   r=   r>   rA   TÚTOTAL)rB   rC   r[   Úmargins_namer\   r?   r@   )rl   r_   r`   rT   rN   z&margins_name argument must be a stringiš  ©Úmatch)r   r   r   rF   r   r	   rG   rH   rI   r&   r'   r,   r   ra   r   r   r   rU   r)   rb   rc   rd   r+   r-   ÚpytestÚraisesÚ
ValueError)r/   r>   r?   r@   r    r0   re   rf   rg   rh   ri   Úmsgrm   s                r!   Ú%test_crosstab_margins_set_margin_namez2TestCrosstab.test_crosstab_margins_set_margin_namež   sU  € ä�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°¸Ð-Ó=ˆä˜Q Q¨QÑ/Ó0ˆäØØ�ˆFØ�UØØØ ô
ˆð �|‰|×!Ñ! VÒ+Ð+Ð+Ø�~‰~×#Ñ#¨¨S zÒ1Ð1Ð1à˜+Ñ&ˆØ—:‘:˜s˜eÓ$×)Ñ)Ó+×2Ñ2°4Ó8ˆäœS ›W˜I¬U°G°9À3Ô-GÔHˆ
Ü—9‘9˜h¨
Ð3Ó4ˆØ%ˆŒä
×Ñ˜x¨Ô2à—:‘:˜gÑ&ˆØ—:‘:˜s C˜jÓ)×.Ñ.Ó0×7Ñ7¸Ó=ˆÜ—9‘9˜h¬´°B³¨yÀÀÔ(PÐQÓRˆØˆŒà×#Ñ# H§N¡NÓ3ˆØ—?‘? 1Ó%×,Ñ,¬R¯X©XÓ6ˆÜ
×Ñ˜x¨Ô2à6ˆØ  $¨¨c¨
Ð3ò 		ˆLÜ—‘œz°Ô5ñ ÜØØ˜�FØ!˜UØ'Ø Ø!-õ÷ð ñ		÷ð ús   É3JÊJ	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                  j                  d«      j	                  d«      }t        ||g||dd	d
gdg¬«      }t        ||||dœ«      }|j                  dd	d
gdd¬«      }t        j                  ||«       y )Nr   r   rZ   r9   r:   r;   r8   Úsumr   r   Úbaz)ÚaggfuncrB   rC   )r   r   rw   Úvaluesry   )rG   rI   rx   )
r   r   r   rF   r   r	   r   Úpivot_tabler)   r*   )r/   r>   r?   r@   ry   Útabler    r1   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ô
ˆô ˜q¨°1ÀÑGÓHˆà—>‘>Ø˜U E˜N°EÀ5ð "ó 
ˆô 	×Ñ˜e XÕ.r"   c                 óR  — t        j                  g d¢t        ¬«      }t        j                  g d¢t        ¬«      }t        j                  g d¢t        ¬«      }t        |||gdgddgd¬	«      }t	        j
                  g d
¢ddg¬«      }t        j                  |j                  |«       y )N©r   r   r   r   r   r   r   rR   )r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r>   r?   r@   F)rB   rC   Údropna))r   r   )r   r   )r   r   )r   r   ©rH   )	r   rW   Úobjectr	   r   Úfrom_tuplesr)   Úassert_index_equalrI   )r/   r>   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ô
ˆô �q˜1˜a˜&¨C¨5¸CÀ¸:ÈeÔTˆÜ×"Ñ"ÚRØ˜�*ô
ˆô 	×Ñ˜cŸk™k¨1Õ-r"   c                 óÖ   — t        g d¢g d¢¬«      }t        g d¢g d¢¬«      }t        ||«      }t        t        g dd¬«      t        g dd¬«      ¬«      }t	        j
                  ||«       y )	N)rM   r   r;   rN   )rO   r8   é   r-   rD   ©rS   rU   rE   rV   )r   r	   r   r   r)   r*   )r/   Ús1Ús2Úactualr1   s        r!   Útest_crosstab_no_overlapz%TestCrosstab.test_crosstab_no_overlapï   s\   € ô ’I¢YÔ/ˆÜ’I¢YÔ/ˆä˜"˜bÓ!ˆÜÜ˜ '°Ô8Ü˜" G°'Ô:ô
ˆô
 	×Ñ˜f hÕ/r"   c                 ó6  — t        dddddt        j                  gg d¢dœ«      }t        |j                  |j
                  dd¬«      }t        g d¢g d¢g d	¢g«      }t        g d
¢d¬«      |_        t        g d¢d¬«      |_        t        j                  ||«       y )NrM   r   ©r;   r;   rO   rO   rO   rO   ©r>   r?   T©r[   r€   ©rM   r   rM   )rM   r;   rO   )r   r;   r8   ©ç      ð?ç       @r^   r>   rT   ©r;   rO   r^   r?   ©r   r   Únanr	   r>   r?   r   rG   rI   r)   r*   ©r/   r    r�   r1   s       r!   Útest_margin_dropnazTestCrosstab.test_margin_dropnaý   s|   € ô
 ˜a  A q¨!¬R¯V©VÐ4Ò;MÑNÓOˆÜ˜"Ÿ$™$ §¡¨d¸4Ô@ˆÜšiª²IÐ>Ó?ˆÜÒ0°sÔ;ˆŒÜ ¢°SÔ9ˆÔÜ
×Ñ˜f hÕ/r"   c           	      ó®  — t        dt        j                  t        j                  t        j                  dt        j                  gdt        j                  ddddgdœ«      }t        |j                  |j
                  dd¬«      }t        g d¢g d	¢g d
¢g«      }t        g d¢d¬«      |_        t        g d¢d¬«      |_        t        j                  ||«       y )NrM   r   r;   rO   r‘   Tr’   r“   rL   ©rM   rM   r   r”   r>   rT   )ç      @ç      @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ó
ˆô ˜"Ÿ$™$ §¡¨d¸4Ô@ˆÜšiª²IÐ>Ó?ˆÜÒ0°sÔ;ˆŒÜ Ò!2¸Ô=ˆÔÜ
×Ñ˜f hÕ/r"   c                 óŠ  — t        dt        j                  t        j                  t        j                  t        j                  dgg d¢dœ«      }t        |j                  |j
                  dd¬«      }t        g d¢g d¢g d	¢g«      }t        g d
¢d¬«      |_        t        g d¢d¬«      |_        t        j                  ||«       y )NrM   r   r�   r‘   Tr’   r“   rL   r�   r”   r>   rT   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ó
ˆô ˜"Ÿ$™$ §¡¨d¸4Ô@ˆÜšiª²IÐ>Ó?ˆÜÒ0°sÔ;ˆŒÜ ¢°SÔ9ˆÔÜ
×Ñ˜f hÕ/r"   c                 óz  — t        dddddt        j                  gg d¢dœ«      }t        |j                  |j
                  dd¬«      }t        g d¢g d	¢d
dt        j                  gg d¢g«      }t        ddt        j                  dgd¬«      |_        t        g d¢d¬«      |_        t        j                  ||«       y )NrM   r   r�   r‘   TFr’   ©rM   r   r•   )rM   r;   rŸ   r   )r   rO   ç      @r•   r–   r^   r>   rT   r—   r?   r˜   rš   s       r!   Útest_margin_dropna4z TestCrosstab.test_margin_dropna4  s”   € ô
 ˜a  A q¨!¬R¯V©VÐ4Ò;MÑNÓOˆÜ˜"Ÿ$™$ §¡¨d¸5ÔAˆÜškª;¸¸A¼r¿v¹v¸ÊÐTÓUˆÜ  S¬"¯&©&°%Ð8¸sÔCˆŒÜ ¢°SÔ9ˆÔÜ
×Ñ˜f hÕ/r"   c           	      ó  — t        dt        j                  t        j                  t        j                  dt        j                  gdt        j                  ddddgdœ«      }t        |j                  |j
                  dd¬«      }t        g d	¢g d
¢dddt        j                  gg d¢g«      }t        ddt        j                  dgd¬«      |_        t        ddt        j                  dgd¬«      |_        t        j                  ||«       y )NrM   r   r;   rO   r‘   TFr’   )rM   r   r   r•   )r   rM   r   r•   r   )rM   rO   r   r¥   r•   r–   r^   r>   rT   rž   rŸ   r?   r˜   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ó
ˆô ˜"Ÿ$™$ §¡¨d¸5ÔAˆÜÚš^¨a°°A´r·v±vÐ->ÂÐOó
ˆô   S¬"¯&©&°%Ð8¸sÔCˆŒÜ  # s¬B¯F©F°EÐ!:ÀÔEˆÔÜ
×Ñ˜f hÕ/r"   c           
      óz  — t        j                  g d¢t        ¬«      }t        j                  dddddt         j                  dgt        ¬«      }t        j                  g d¢t        ¬«      }t	        |||gdgddgd	d
¬«      }t        j                  ddddt         j                  t         j                  dgg d¢gddg¬«      }t        g d¢g d¢g d¢g|¬«      }t        g d¢d¬«      |_	        t        j                  ||«       t	        ||g|ddgdgd	d
¬«      }t        j                  g d¢ddt         j                  ddt         j                  dggddg¬«      }t        g d¢g d¢ddt         j                  gg d¢g d¢ddt         j                  gg d¢g|¬«      }t        g d¢d¬«      |_        t        j                  ||«       t	        ||g|ddgdgd	d	¬«      }t        j                  g d¢g d ¢gddg¬«      }t        g d!¢g d!¢g d"¢g d#¢g d$¢g|¬«      }t        g d¢d¬«      |_        t        j                  ||«       y )%Nr~   rR   r   r   r   r>   r?   r@   TF)rB   rC   r[   r€   r^   )r   r   r   r   r   r   r_   r�   )rM   r   rM   r   r   r   r   )r   r   rM   rM   r   rM   r8   )r;   r   r   rM   r   r   rZ   )rI   ©r   r   r^   rT   )r   r   r   r   r   r   r^   r_   r¤   r   )r   r   r–   )rM   rM   r–   rM   )r8   r   g      @rN   )r   r   r^   )r   r   r   r   r^   )r   r   r   r   r_   r“   )r   r   r   r�   )r8   rM   r‰   )r   rW   r‚   r™   r	   r   Úfrom_arraysr   r   rG   r)   r*   rI   )r/   r>   r?   r@   r�   r†   r1   s          r!   Útest_margin_dropna6z TestCrosstab.test_margin_dropna66  s(  € ä�H‰HÒFÌfÔUˆÜ�H‰H�e˜U E¨5°%¼¿¹ÀÐGÌvÔVˆÜ�H‰HÚFÌfô
ˆô Ø��1ˆv  °°c°
ÀDÐQVô
ˆô ×"Ñ"à˜˜u e¬R¯V©V´R·V±V¸UÐCÚGðð ˜�*ô
ˆô Ú"Ò$9Ò;PÐQØô
ˆô Ò4¸3Ô?ˆŒÜ
×Ñ˜f hÔ/äØ�ˆF�A  c 
°c°UÀDÐQVô
ˆô ×"Ñ"âAØ˜œrŸv™v u¨e´R·V±V¸RÐ@ðð ˜�*ô
ˆô âÚØ�A”r—v‘v�ÚÚØ�A”r—v‘v�Úðð ô
ˆô !Ò!9ÀÔDˆÔÜ
×Ñ˜f hÔ/äØ�ˆF�A  c 
°c°UÀDÐQUô
ˆô ×"Ñ"Ú0Ò2RÐSØ˜�*ô
ˆô Úš	¢9ªiºÐCÈ1ô
ˆô !Ò!9ÀÔDˆÔÜ
×Ñ˜f hÕ/r"   c           	      ó‚  — t        g d¢g d¢ddt        j                  ddgdœ«      }t        ddgd¬«      }t        dd	gd
¬«      }t        ddgddgg||¬«      }t        ddgddgg||¬«      }t        ddgddgg||¬«      }t	        j
                  t        |j                  |j                  d¬«      |«       t	        j
                  t        |j                  |j                  d¬«      |«       t	        j
                  t        |j                  |j                  d¬«      |«       t	        j
                  t        |j                  |j                  d¬«      |«       t	        j
                  t        |j                  |j                  d¬«      t        |j                  |j                  d¬«      «       t	        j
                  t        |j                  |j                  d¬«      t        |j                  |j                  d¬«      «       t        ddgddgddggt        g d¢dd¬«      t        dd	gd
d¬«      ¬«      }t        g d¢g d¢gt        ddgdd¬«      t        g d¢d
d¬«      ¬«      }t        g d¢g d ¢g d!¢gt        g d¢dd¬«      t        g d¢d
d¬«      ¬«      }	t	        j
                  t        |j                  |j                  dd¬"«      |«       t	        j
                  t        |j                  |j                  dd¬"«      |«       t	        j
                  t        |j                  |j                  dd¬"«      |	«       y )#N©rM   r   r   r   r   ©r;   r;   rO   rO   rO   rM   r=   r   r>   rT   r;   rO   r?   çš™™™™™É?r   ç333333ã?rV   r•   ç      Ð?ç      è?ç      à?Úall©Ú	normalizeTrG   rI   çš™™™™™Ù?©rM   r   r^   r‚   ©rU   rS   )r´   r   r°   )r´   r•   çš™™™™™é?r—   )r°   r   r°   )r°   r±   r»   ©r¸   r±   rM   ©r·   r[   )	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_normalizez$TestCrosstab.test_crosstab_normalizeu  s¦  € äÚ!ª¸qÀ!ÄRÇVÁVÈQÐPQÐ>RÑSó
ˆô ˜˜1�v CÔ(ˆÜ˜˜1�v CÔ(ˆÜ # q ¨C°¨:Ð 6¸fÈfÔUˆÜ  a ¨4°¨,Ð7¸vÈvÔVˆ
Ü  a ¨3°¨*Ð5¸VÈVÔTˆ
ô 	×Ñœh r§t¡t¨R¯T©T¸UÔCÀ[ÔQÜ
×Ñœh r§t¡t¨R¯T©T¸TÔBÀKÔPÜ
×Ñœh r§t¡t¨R¯T©T¸WÔEÀzÔRÜ
×Ñœh r§t¡t¨R¯T©T¸YÔGÈÔTÜ
×ÑÜ�R—T‘T˜2Ÿ4™4¨1Ô-Ü�R—T‘T˜2Ÿ4™4¨9Ô5ô	
ô 	×ÑÜ�R—T‘T˜2Ÿ4™4¨1Ô-¬x¸¿¹¸b¿d¹dÈgÔ/Vô	
ô 'Ø�1ˆX˜˜d�| c¨3 ZÐ0Üš¨C°xÔ@Ü˜1˜a˜& s°(Ô;ô
Ðô
 'ÚšOÐ,Ü˜˜A˜ S°Ô9Üš-¨c¸ÔBô
Ðô 'ÚšOª]Ð;Üš¨C°xÔ@Üš-¨c¸ÔBô
Ðô
 	×ÑÜ�R—T‘T˜2Ÿ4™4¨7¸DÔAÐCUô	
ô 	×ÑÜ�R—T‘T˜2Ÿ4™4¨9¸dÔCÐEWô	
ô 	×ÑÜ�R—T‘T˜2Ÿ4™4¨4¸Ô>Ð@Rõ	
r"   c           	      ó”  — t        g d¢g d¢ddt        j                  ddgdœ«      }t        t        j                  g d¢«      t        j                  g d¢«      gt        j                  g d¢«      «       t        g d¢g d¢g d	¢gt        g d
¢dd¬«      t        g d¢d¬«      ¬«      }t        |j                  |j                  |j                  ddd¬«      }t        j                  ||«       t        g d¢g d¢ddt        j                  ddgdœ«      }t        g d¢g d¢g d¢gt        g d
¢dd¬«      t        g d¢dd¬«      ¬«      }d}t        j                  t        |¬«      5  t        |j                  |j                  |j                  t        j                  dd¬«      }d d d «       t        j                  ||«       y # 1 sw Y   Œ xY w)Nr®   r¯   rM   r=   )rM   rM   r   r   )rM   r   rM   r   )r²   r   r²   )r²   r´   r³   )r´   r´   rM   r¹   r>   r‚   rº   r—   r?   rT   rV   Úcountrµ   T)rx   r·   r[   r   rO   r;   )r   r   ç        r¼   úusing DataFrameGroupBy.sumrn   )r   r   r™   r	   rW   r   r>   r?   r@   r)   r*   Úassert_produces_warningÚFutureWarningrv   )r/   r    Únorm_countsÚ	test_caseÚnorm_sumrs   s         r!   Útest_crosstab_normalize_arraysz+TestCrosstab.test_crosstab_normalize_arrays¨  sp  € äÚ!ª¸qÀ!ÄRÇVÁVÈQÐPQÐ>RÑSó
ˆô
 	Ü�X‰X’lÓ#¤R§X¡XªlÓ%;Ð<¼b¿h¹hÂ|Ó>Tô	
ô
  ÚÒ/²Ð?Üš¨C°xÔ@Üš-¨cÔ2ô
ˆô
 Ø�D‰D�"—$‘$˜Ÿ™ g¸Èô
ˆ	ô 	×Ñ˜i¨Ô5äÚ!ª¸qÀ!ÄRÇVÁVÈQÐPQÐ>RÑSó
ˆô Úš-ªÐ7Üš¨C°xÔ@Üš-¨c¸ÔBô
ˆð
 +ˆÜ×'Ñ'¬¸SÔAñ 	Ü Ø—‘�b—d‘d˜BŸD™D¬"¯&©&¸EÈ4ôˆI÷	ô 	×Ñ˜i¨Õ2÷		ð 	ús   Å!>F>Æ>Gc           	      óè  — t        g d¢g d¢t        j                  t        j                  t        j                  t        j                  t        j                  gdœ«      }t        ddgddggt        ddgdd¬	«      t        d
dgd¬«      ¬«      }dD ]F  }t	        |j
                  |j                  |j                  d|¬«      }t        j                  ||«       ŒH t        dt        j                  gddggt        ddgdd¬	«      t        d
dgd¬«      ¬«      }|r|d
   j                  d«      |d
<   t	        |j
                  |j                  |j                  dd¬«      }t        j                  ||«       y )Nr®   r¯   r=   rÉ   rM   r   r>   r-   rº   r;   rO   r?   rT   rV   )TrG   rI   rÈ   )ry   rx   r·   F)r   r   r™   r   r	   r>   r?   r@   r)   r*   r,   )r/   Úusing_array_managerr    ÚemptyÚiÚ
calculatedÚnanss          r!   Útest_crosstab_with_emptiesz'TestCrosstab.test_crosstab_with_emptiesÎ  s;  € äâ$Ú$Ü—f‘fœbŸf™f¤b§f¡f¬b¯f©f´b·f±fÐ=ñó
ˆô Ø�3ˆZ˜#˜s˜Ð$Ü˜˜A˜ S°Ô8Ü˜1˜a˜& sÔ+ô
ˆð ,ò 	5ˆAÜ! "§$¡$¨¯©°R·T±TÀ7ÐVWÔXˆJÜ×!Ñ! %¨Õ4ð	5ô Ø”2—6‘6ˆ]˜S #˜JÐ'Ü˜˜A˜ S°Ô8Ü˜1˜a˜& sÔ+ô
ˆñ
 à˜1‘g—n‘n WÓ-ˆD�‰Gä˜bŸd™d B§D¡D°·±¸wÐRWÔXˆ
Ü
×Ñ˜d JÕ/r"   c           	      óÈ  — t        g d¢g d¢ddt        j                  ddgdœ«      }d}t        j                  t
        |¬«      5  t        |j                  |j                  |j                  ¬«       d d d «       d}t        j                  t
        |¬«      5  t        |j                  |j                  t        j                  ¬	«       d d d «       d
}t        j                  t
        |¬«      5  t        |j                  |j                  d¬«       d d d «       t        j                  t
        |¬«      5  t        |j                  |j                  d¬«       d d d «       d}t        j                  t
        |¬«      5  t        |j                  |j                  dd¬«       d d d «       y # 1 sw Y   �Œ8xY w# 1 sw Y   ŒîxY w# 1 sw Y   Œ²xY w# 1 sw Y   ŒxxY w# 1 sw Y   y xY w)Nr®   r¯   rM   r=   z)values cannot be used without an aggfunc.rn   )ry   z%aggfunc cannot be used without values)rx   zNot a valid normalize argumentÚ42r¶   é*   zNot a valid margins argumentrµ   r½   )r   r   r™   rp   rq   rr   r	   r>   r?   r@   Úmean)r/   r    Úerrors      r!   Útest_crosstab_errorsz!TestCrosstab.test_crosstab_errorsî  sh  € ô Ú!ª¸qÀ!ÄRÇVÁVÈQÐPQÐ>RÑSó
ˆð <ˆÜ�]‰]œ:¨UÔ3ñ 	.Ü�R—T‘T˜2Ÿ4™4¨¯©Õ-÷	.ð 8ˆÜ�]‰]œ:¨UÔ3ñ 	2Ü�R—T‘T˜2Ÿ4™4¬¯©Õ1÷	2ð 1ˆÜ�]‰]œ:¨UÔ3ñ 	1Ü�R—T‘T˜2Ÿ4™4¨4Õ0÷	1ô �]‰]œ:¨UÔ3ñ 	/Ü�R—T‘T˜2Ÿ4™4¨2Õ.÷	/ð /ˆÜ�]‰]œ:¨UÔ3ñ 	>Ü�R—T‘T˜2Ÿ4™4¨5¸"Õ=÷	>ð 	>÷	.ñ 	.ú÷	2ð 	2ú÷	1ð 	1ú÷	/ð 	/ú÷	>ð 	>ús<   Á-F'Â1F4Ã,#G Ä2#GÅ:$GÆ'F1Æ4F=Ç G	ÇGÇG!c                 óN  — t        g d¢g d¢dœ«      }g d¢}|d   j                  d«      j                  j                  |«      |d<   t	        |d   |d   «      }t        g d¢d¬	«      }t        ||d
d¬«      }g d¢g d¢g d¢g}t        |||¬«      }t        j                  ||«       y )N)ÚHondaÚAcuraÚTeslarß   rß   rà   )ÚSedanrâ   ÚElectricÚPickuprâ   râ   )ÚMAKEÚMODEL)râ   rã   rä   ræ   Úcategoryrå   )rà   rß   rá   rT   F)Ú
categoriesÚorderedrU   )r   r   r   )r   r   rM   ©r   rM   r   rV   )	r   r,   ÚcatÚset_categoriesr	   r   r   r)   r*   )r/   r    rè   r0   Úexpected_indexÚexpected_columnsÚexpected_datar1   s           r!   Ú%test_crosstab_with_categorial_columnsz2TestCrosstab.test_crosstab_with_categorial_columns  s®   € äâNÚSñó
ˆò 5ˆ
Ø˜‘k×(Ñ(¨Ó4×8Ñ8×GÑGÈ
ÓSˆˆ7‰Ü˜"˜V™* b¨¡kÓ2ˆäÒ:ÀÔHˆÜ+Ø :°uÀ7ô
Ðò #¢IªyÐ9ˆÜØ Ð9Iô
ˆô 	×Ñ˜f hÕ/r"   c                 ó4  — t        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        |d
   |d   g|d   gdt        j                  |d   ¬«      }t        g d¢g d¢gg d¢g d¢gd
dg¬«      }t        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        |||¬«      }|d   j                  d«      |d<   t        j                  ||«       y )N©r   r   r   Úthreer‰   r4   é   ©r   r   r   r   r   r   rO   r   é   ©r   r   r   r   r   r   r   r   Tr   )rG   rI   r[   rx   ry   )r^   r   ró   r   )r_   r   r   r   )
rM   rM   rM   r   r   r   r;   r;   r;   r   )
rM   r   r;   rM   r   r;   rM   r   r;   r   ©ÚlevelsÚcodesrH   rª   rT   )r–   r–   rŸ   r–   )ç      (@rû   g      8@rV   r^   r-   )r   r   r   r   r   r	   r'   r   r   rW   r™   r,   r)   r*   )r/   r    r0   rí   Úexpected_columnrï   r1   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Ø˜�*ô
ˆô
  Ò 5¸CÔ@ˆÜŸ™âÚÚØ”b—f‘f˜cÐ"Ü—‘˜˜cÐ"Ø”b—f‘f˜cÐ"Ü—‘˜˜cÐ"Ø”b—f‘f˜cÐ"Ü—‘˜˜cÐ"Ú"ðó
ˆô Ø ¸ô
ˆð # 5™/×0Ñ0°Ó9ˆ�‰Ü
×Ñ˜f hÕ/r"   c                 óJ  — t        t        d«      d¬«      }t        t        dd«      d¬«      }t        t        dd«      d¬«      }t        t        d«      d¬«      }ddi}t        ||«      }t        ||«      j                  |d¬«      }t	        j
                  ||«       t        ||g|«      }t        ||g|«      j                  |d	¬
«      }t	        j
                  ||«       t        |||g«      }t        |||g«      j                  |d¬«      }t	        j
                  ||«       y )Nr;   r   rT   rM   rO   r   Úwaldo)rI   Úaxisr   )rG   r   )r   Úranger	   Úrename_axisr)   r*   )r/   r‹   Ús2_fooÚs2_barÚs3Úmapperr0   r1   s           r!   Útest_crosstab_duplicate_namesz*TestCrosstab.test_crosstab_duplicate_namesK  s  € ô ”E˜!“H 5Ô)ˆÜœ˜a ›¨%Ô0ˆÜœ˜a ›¨%Ô0ˆÜ”E˜!“H 7Ô+ˆð ˜�ˆô ˜"˜fÓ%ˆÜ˜B Ó'×3Ñ3¸FÈÐ3ÓKˆÜ
×Ñ˜f hÔ/ô ˜2˜v˜,¨Ó+ˆÜ˜R ˜L¨"Ó-×9Ñ9ÀÈQÐ9ÓOˆÜ
×Ñ˜f hÔ/ô ˜"˜r 6˜lÓ+ˆÜ˜B  V Ó-×9Ñ9À&ÈqÐ9ÓQˆä
×Ñ˜f hÕ/r"   rH   r>   rA   r‘   r@   c                 óB  — t        t        d«      |d   ¬«      }t        t        dd«      |d   ¬«      }t        j                  t        d«      t        dd«      g|¬«      }t        d|¬«      j	                  dd¬«      }t        ||«      }t        j                  ||«       y )	Nr;   r   rT   rM   rO   r�   rN   )Ú
fill_value)r   r  r   r«   r(   r	   r)   r*   )r/   rH   r‹   rŒ   Úmir1   r0   s          r!   Útest_crosstab_tuple_namez%TestCrosstab.test_crosstab_tuple_nameg  s…   € ä”E˜!“H 5¨¡8Ô,ˆÜ”E˜!˜Q“K e¨A¡hÔ/ˆä×#Ñ#¤U¨1£X¬u°Q¸«{Ð$;À5ÔIˆÜ˜! 2Ô&×.Ñ.¨q¸QÐ.Ó?ˆä˜"˜bÓ!ˆÜ
×Ñ˜f hÕ/r"   c           	      ó6  — t        t        d«      d¬«      }t        t        d«      d¬«      }t        t        j                  dd¬«      t        t        d«      d¬«      t        t        d«      d¬«      ¬«      }t        ||«      }t        j                  ||«       y )Nr;   r‘   rT   )r@   rP   r-   rR   rV   )	r   r  r   r   Úeyer   r	   r)   r*   )r/   r‹   rŒ   r1   r0   s        r!   Útest_crosstab_both_tuple_namesz+TestCrosstab.test_crosstab_both_tuple_namesr  st   € ä”E˜!“H :Ô.ˆÜ”E˜!“H :Ô.ˆäÜ�F‰F�1˜GÔ$Üœ˜a› zÔ2Üœ% ›(¨Ô4ô
ˆô
 ˜"˜bÓ!ˆÜ
×Ñ˜f hÕ/r"   c                 ó6  — t        g d¢g d¢dœg d¢¬«      }t        |j                  |j                  |j                  g«      }t        g d¢d¬«      }t        j                  g d	¢d
dg¬«      }t        g d¢g d¢g d¢g||¬«      }t        j                  ||«       y )N)r;   rM   r   )r8   rO   r‰   )r?   r>   ©r   r   r   rN   r4   rD   rT   ))rM   rO   )r   r‰   )r;   r8   r?   r>   r�   )rM   r   r   rê   )r   r   rM   rV   )
r   r	   rG   r?   r>   r   r   rƒ   r)   r*   )r/   r    r0   Úe_idxÚ	e_columnsr1   s         r!   Útest_crosstab_unsorted_orderz)TestCrosstab.test_crosstab_unsorted_order  s}   € ÜšYªYÑ7ºÔOˆÜ˜"Ÿ(™( R§T¡T¨2¯4©4 LÓ1ˆÜ’o¨GÔ4ˆÜ×*Ñ*Ò+CÈCÐQTÈ:ÔVˆ	ÜÚš	¢9Ð-°UÀIô
ˆô 	×Ñ˜f hÕ/r"   c           	      ó@  — t        g d¢dz  g d¢dz  g d¢dz  dgdz  dgdz  d	œ«      }d
}t        j                  t        |¬«      5  t	        |j
                  |j                  g|j                  |j                  t        j                  dd¬«      }d d d «       t        t        j                  dgdz  dgz   t        ¬«      j                  dd«      t        g d¢d¬«      t        j                   g d¢ddg¬«      ¬«      }t        j"                  |«       y # 1 sw Y   Œ…xY w)Nrò   r‰   r4   rô   rõ   rO   r   rö   r÷   rÊ   rn   T)ry   rx   r·   r[   é   rM   rR   r<   r;   rª   r   rT   )
)r   r   )r   r   )r   r   )ró   r   )ró   r   )ró   r   )r   r   )r   r   )r   r   r]   r   r   r�   )rI   rG   )r   r)   rË   rÌ   r	   r   r   r   r   r   rv   rW   ÚfloatÚreshaper   r   rƒ   r*   )r/   r    rs   r0   r1   s        r!   Ú(test_crosstab_normalize_multiple_columnsz5TestCrosstab.test_crosstab_normalize_multiple_columns‰  s  € äâ3°aÑ7Ú$ qÑ(Ú?À!ÑCØ�S˜2‘XØ�S˜2‘Xñó
ˆð +ˆÜ×'Ñ'¬¸SÔAñ 	ÜØ—‘�r—t‘t�Ø—‘Ø—t‘tÜŸ™ØØôˆF÷	ô Ü�H‰H�a�S˜2‘X  ‘^¬5Ô1×9Ñ9¸"¸aÓ@ÜÒ/°cÔ:Ü×(Ñ(òð ˜C�jôô
ˆô& 	×Ñ˜f hÕ/÷9	ð 	ús   ÁA
DÄDc                 ó²  — t        g d¢g d¢g d¢g d¢g d¢dœ«      }t        |j                  |j                  g|j                  ddd	¬
«      }t        ddgddgddgd	dgddgg«      }t        g d¢g d¢gg d¢g d¢gddg¬«      |_        t        ddgd¬«      |_        t        j                  ||«       t        |j                  |j                  g|j                  ddd¬
«      }t        g d¢g d¢g d¢g d¢g«      }t        g d¢d¬«      |_        t        d d!gd"d#ggg d$¢g d%¢gddg¬«      |_        t        j                  ||«       t        |j                  |j                  g|j                  ddd¬
«      }t        g d&¢g d&¢g d'¢g d(¢g d)¢g«      }t        g d¢d¬«      |_        t        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  ©	rM   r   r   r;   r;   rO   r8   r‰   rZ   ©	r   rO   r8   r8   r‰   r‰   rô   é	   r!  r÷   Tú	Sub-Totalr   )r[   rm   r·   r´   g]QJVUå?çF]kïSUÕ?rM   ç³Ñ9?ÅqÜ?ç'c`Çá?)r"  r   r   ©r_   r   r   )rM   rM   r   r   r   ©rM   r   rM   r   r   r   r   rø   r  r  r   rT   )r²   r°   ç³Ñ9?ÅqÌ?)r´   r°   r#  )r   r¸   r(  )r  r  r"  r   r   r   r   )r   r   rM   rM   ©r   rM   r   rM   )ç³Ñ9?Åq¼?r*  r(  )r(  r*  r#  )rÉ   r(  r(  )r$  g#„GÇá?rM   )r   r	   r   r   r   r   rG   r   rI   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Ø˜�*ô
ˆŒô
 ! '¨7Ð!3¸#Ô>ˆÔÜ
×Ñ˜f hÔ/ô Ø�T‰T�2—4‘4ˆL˜"Ÿ$™$¨¸;ÐRSô
ˆô â%Ú%Ú$Ú"ð	ó
ˆô !Ò!@ÀsÔKˆÔÜ#Ø˜E�N U¨E NÐ3Ú¢Ð.Ø˜�*ô
ˆŒô
 	×Ñ˜f hÔ/ô Ø�T‰T�2—4‘4ˆL˜"Ÿ$™$¨¸;ÐRVô
ˆô â.Ú.Ú.Ú.Ú'ðó
ˆô !Ò!@ÀsÔKˆÔÜ#Ú/Ò1CÐDÚ"¢OÐ4Ø˜�*ô
ˆŒô
 	×Ñ˜f hÕ/r"   c                 óZ  — t        g d¢g d¢g d¢g d¢g d¢dœ«      }t        |j                  |j                  |j                  gddd¬	«      }t        g d
¢g d¢g d¢gg d¢¬«      }t        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)rG   rI   r[   rm   r·   )r*  r*  r(  rÉ   r$  )r*  r*  r*  r(  r%  )r(  r(  r#  r(  r•   )r  r  r-  rN   )r   r   r-  r&  )r   r   rM   rM   r   r'  r   r   rø   r   )r   r	   r   r   r   r   rI   rG   rU   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           	      ó8  — t        g d¢g d¢g d¢dœd¬«      }t        |d   |d   |d	   d
d¬«      }t        dt        j                  ddgddt        j                  dgg d¢gt	        g d¢dd¬«      t	        g d¢dd¬«      d¬«      }t        j                  ||«       y )N)rM   r   r   rM   )r;   r;   rO   r8   )ç      ð¿ç      $@r•   r1  r4   ÚFloat64rR   r   r   r   rv   T)ry   rx   r[   r0  r1  ç      "@r•   g      &@)r3  r•   r1  g      4@r”   r‚   rŠ   )rž   rŸ   g      @r^   )rG   rI   rS   )r   r	   r   ÚNAr   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Ð(Ú&ðô
 Ò)°ÀÔDÜÒ0¸ÀsÔKØô	
ˆô 	×Ñ˜f hÕ/r"   c                 ó|  — t        g d¢g d¢dœ«      }|d   j                  t        d¬«      «      |d<   g d¢}|d   j                  j	                  |«      |d<   t        |d   |d   d¬	«      }t        g d
¢d¬«      }t        g d¢d¬«      }g d¢g d¢g d¢g d¢g}t        |||¬«      }t        j                  ||«       y )N)r   r   r   r   r   r   )r   r   r   r   r   r   )ÚFirstÚSecondr7  T)ré   r  r8  )r[   )r   r   r   r^   rT   )r   r   r   r^   )rM   rM   r   r   r)  )r   rM   r   r;   )rM   r;   r   r‰   rV   )	r   r,   r   rë   Úreorder_categoriesr	   r   r)   r*   )r/   r    Úcustomized_categories_orderr0   rí   rî   rï   r1   s           r!   Ú+test_margin_with_ordered_categorical_columnz8TestCrosstab.test_margin_with_ordered_categorical_columnH  s½   € äâ7Ú8ñó
ˆð ˜‘k×(Ñ(Ô)9À$Ô)GÓHˆˆ7‰Ú&5Ð#Ø˜‘k—o‘o×8Ñ8Ð9TÓUˆˆ7‰Ü˜"˜W™+ r¨(¡|¸TÔBˆäÒ5¸GÔDˆÜ Ò!7¸hÔGÐÚ%¢|²\Â<ÐPˆÜØ Ð9Iô
ˆô 	×Ñ˜f hÕ/r"   N)(Ú__name__Ú
__module__Ú__qualname__r2   r5   rp   ÚmarkÚparametrizer   rW   ÚlistÚtuplerJ   rX   rj   rt   r|   r‡   rŽ   r›   r    r¢   r¦   r¨   r¬   rÆ   rÐ   r×   rÝ   rð   rý   r  r  r  r  r  r+  r.  r5  r;  © r"   r!   r$   r$   E   sþ   „ òKò
	0ð ‡[�[×Ñ˜U R§X¡X¨t°UÐ$;Ó<ñ0ó =ð0ò.0ò$3ò<0òd/ò".ò0ò
0ò0ò0ò
0ò0ò=0ò~1
òf$3òL0ò@>ò40ò,+0òZ0ð8 ‡[�[×Ñ˜W¨¨ZÐ'8¸:ÀsÐ:KÐ&LÓMñ0ó Nð0ò0ò0ò)0òVK0òZ+0òZ0ó40r"   r$   Úa_dtyperç   r-   Úb_dtypec                 ó&  — t         j                  j                  d«      }t        |j	                  ddd¬«      «      j                  | «      }t        |j	                  ddd¬«      «      j                  |«      }t        ||dd¬«      }t        g d	¢d
d¬«      }t        g d¢d
d¬«      }g d¢g d¢g d¢g d¢g}t        |||«      }	t        j                  ||	«       d|j                  |dk(  <   t        |j                  t        «      }
|
r"|j                  «       j                  d   dk(  sJ ‚t        ||dd¬«      }g d¢g d¢g d¢g d¢g}t        |||«      }	|
s(|	j                  g d¢   }	|	d   j                  d«      |	d<   t        j                  ||	«       y )Nr   r   r;   r9   r:   TFr’   )r   rM   r^   r‚   rE   rŠ   )r   rM   r   r^   rD   )r<   é   é   )é   é   é'   )é   rJ  é!   )é2   rN  r9   rM   )r   r   r   )é(   é    éH   )r   r   r^   r^   r-   )r   r   r   r   rF   r,   r	   r   r   r)   r*   rc   Ú
isinstancerS   r   Úvalue_counts)rD  rE  Úgr>   r?   r0   rI   rG   ry   r1   Úa_is_cats              r!   Útest_categoricalsrV  ^  sd  € ô 	�	‰	×Ñ˜aÓ €AÜˆq�z‰z˜!˜Q SˆzÓ)Ó*×1Ñ1°'Ó:€AÜˆq�z‰z˜!˜Q SˆzÓ)Ó*×1Ñ1°'Ó:€AÜ�a˜ D°Ô7€FÜ’M¨¸Ô@€GÜÒ"¨(¸ÔA€EÚšLª,ºÐF€FÜ˜ ¨Ó0€HÜ×Ñ˜& (Ô+ð €A‡E�Eˆ!ˆq‰&�MÜ˜!Ÿ'™'Ô#3Ó4€HÙ˜1Ÿ>™>Ó+×/Ñ/°Ñ2°aÒ7Ð7Ð7Ü�a˜ D°Ô7€FÚšI¢|²]ÐC€FÜ˜ ¨Ó0€HÙØ—<‘<¢Ñ.ˆØ" 5™/×0Ñ0°Ó9ˆ�‰Ü×Ñ˜& (Õ+r"   )Únumpyr   rp   Úpandasr   r   r   r   r   r   r   r	   Úpandas._testingÚ_testingr)   Úfixturer    r$   r?  r@  rV  rC  r"   r!   ú<module>r\     s�   ðÛ Û ã ÷÷ ñ õ ð ‡�ñ02ó ð02÷fV0ñ V0ðr ‡�×Ñ˜ Z°Ð$9Ó:Ø‡�×Ñ˜ Z°Ð$9Ó:ñ,ó ;ó ;ñ,r"   