§
    tŠtj�}  ã                   ó  — 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                             dddg¦  «        ej                             d	ddg¦  «        d
„ ¦   «         ¦   «         ZdS )é    N)ÚCategoricalDtypeÚCategoricalIndexÚ	DataFrameÚIndexÚ
MultiIndexÚSeriesÚcrosstabc            
      óŠ  — t          g d¢g d¢g d¢t          j                             d¦  «                             d¦  «        t          j                             d¦  «                             d¦  «        t          j                             d¦  «                             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/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/reshape/test_crosstab.pyr    r       sÊ   € å	ðð ð ðð ð ðð ð õ ”×&Ò& qÑ)Ô)×9Ò9¸"Ñ=Ô=Ý”×&Ò& qÑ)Ô)×9Ò9¸"Ñ=Ô=Ý”×&Ò& qÑ)Ô)×9Ò9¸"Ñ=Ô=ðU+	
ð +	
ñ-
ô -
€Bõ^ Œ9�b˜"�X¨DÐ1Ñ1Ô1Ð1ó    c                   ób  — e Zd Zd„ Zd„ Ze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                             dddgddgg¦  «        d„ ¦   «         Z d„ Z!d„ Z"d „ Z#d!„ Z$d"„ Z%d#„ Z&d$„ Z'd%S )&ÚTestCrosstabc                 ó>  — t          |d         |d         ¦  «        }|                     ddg¦  «                             ¦   «                              ¦   «         }t	          j        ||                     d¦  «                             t          j	        ¦  «        ¦  «         d S )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   s{   € Ý˜"˜Sœ' 2 c¤7Ñ+Ô+ˆØ—:’:˜s C˜jÑ)Ô)×.Ò.Ñ0Ô0×8Ò8Ñ:Ô:ˆÝ
Ô˜f h§o¢o°aÑ&8Ô&8×&?Ò&?ÅÄÑ&IÔ&IÑJÔJÐJÐJÐJr"   c                 óÈ  — t          |d         |d         |d         g¦  «        }|                     g d¢¦  «                             ¦   «         }|                     d¦  «                             d¦  «                             d¦  «                             t          j        ¦  «        }t          j	        ||¦  «         t          |d         |d         g|d         ¦  «        }|                     g d¢¦  «                             ¦   «         }|                     d¦  «                             d¦  «                             t          j        ¦  «        }t          j	        ||¦  «         d S )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Ô6ˆØ—:’:˜o˜o˜oÑ.Ô.×3Ò3Ñ5Ô5ˆØ×#Ò# CÑ(Ô(×0Ò0°Ñ5Ô5×<Ò<¸QÑ?Ô?×FÒFÅrÄxÑPÔPˆÝ
Ô˜f hÑ/Ô/Ð/å˜2˜cœ7 B s¤GÐ,¨b°¬gÑ6Ô6ˆØ—:’:˜o˜o˜oÑ.Ô.×3Ò3Ñ5Ô5ˆØ×#Ò# CÑ(Ô(×/Ò/°Ñ2Ô2×9Ò9½"¼(ÑCÔCˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   Úboxc                 ó’  —  |t           j                             d¦  «                             ddd¬¦  «        ¦  «        } |t           j                             d¦  «                             ddd¬¦  «        ¦  «        } |t           j                             d¦  «                             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        ||¦  «         d S )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   s­  € ð ˆC•”	×%Ò% aÑ(Ô(×1Ò1°!°Q¸SÐ1ÑAÔAÑBÔBˆØˆC•”	×%Ò% aÑ(Ô(×1Ò1°!°Q¸SÐ1ÑAÔAÑBÔBˆØˆC•”	×%Ò% aÑ(Ô(×1Ò1°!°R¸cÐ1ÑBÔBÑCÔCˆå˜Q Q¨QÐ/Ð/Ñ0Ô0ˆå˜!˜a ˜V¨s¨e¸jÐIÑIÔIˆÝ˜B˜sœG b¨¤g¨r°#¬wÐ%7Ñ8Ô8ˆÝ
Ô˜f hÑ/Ô/Ð/å˜1˜a˜& !¨s¨e¸jÐIÑIÔIˆÝ˜R œW b¨¤gÐ.°°3´Ñ8Ô8ˆÝ
Ô˜f hÑ/Ô/Ð/õ ˜!˜Q‘”ˆÝ˜B˜sœG R¨¤WÑ-Ô-ˆØ '˜yˆŒÔØ") ˆÔÔÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   c                 ó¦  — 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        ||¦  «         d S )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�9�9 O O OÐ4Ñ4Ô4ˆÝ�?�?�?Ð*CÐ*CÐ*CÐDÑDÔDˆÝŒH�Y�Y�Y¥b¤hÐ/Ñ/Ô/ˆåØ�ˆV�a˜�VÐÝ˜˜A˜ WÐ-Ñ-Ô-Ý˜1˜a˜& wÐ/Ñ/Ô/ð
ñ 
ô 
ˆõ ˜!˜Q‘”ˆÝ
Ô˜f hÑ/Ô/Ð/å˜!˜Q‘”ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   c                 óö  — t           j                             d¦  «                             ddd¬¦  «        }t           j                             d¦  «                             ddd¬¦  «        }t           j                             d¦  «                             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         }| 	                    d	g¦  «         
                    ¦   «                              d¦  «        }t          t          |¦  «        gt          dgd	¬¦  «        ¬¦  «        }t          j        ||g¦  «        }d|_        t%          j        ||¦  «         |j        d         }	| 	                    ddg¦  «         
                    ¦   «                              d¦  «        }
t          j        |
t          t          |¦  «        gdg¬¦  «        g¦  «        }
d|
_        |
                     |	j        ¦  «        }
|
                     d¦  «                             t           j        ¦  «        }
t%          j        |	|
¦  «         d S )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€   s0  € ÝŒI×!Ò! !Ñ$Ô$×-Ò-¨a°¸Ð-Ñ=Ô=ˆÝŒI×!Ò! !Ñ$Ô$×-Ò-¨a°¸Ð-Ñ=Ô=ˆÝŒI×!Ò! !Ñ$Ô$×-Ò-¨a°¸Ð-Ñ=Ô=ˆå˜Q Q¨QÐ/Ð/Ñ0Ô0ˆå˜!˜a ˜V¨s¨e¸jÐRVÐWÑWÔWˆàŒ|Ô! VÒ+Ð+Ð+Ð+ØŒ~Ô#¨¨S zÒ1Ð1Ð1Ð1à˜)Ô$ˆØ—:’:˜s˜eÑ$Ô$×)Ò)Ñ+Ô+×2Ò2°4Ñ8Ô8ˆå�S ™WœW˜I­U°E°7ÀÐ-EÑ-EÔ-EÐFÑFÔFˆ
Ý”9˜h¨
Ð3Ñ4Ô4ˆØ#ˆŒå
Ô˜x¨Ñ2Ô2Ð2à”:˜eÔ$ˆØ—:’:˜s C˜jÑ)Ô)×.Ò.Ñ0Ô0×7Ò7¸Ñ=Ô=ˆÝ”9˜h­µ°B±´¨yÀÀÐ(NÑ(NÔ(NÐOÑPÔPˆØˆŒà×#Ò# H¤NÑ3Ô3ˆØ—?’? 1Ñ%Ô%×,Ò,­R¬XÑ6Ô6ˆÝ
Ô˜x¨Ñ2Ô2Ð2Ð2Ð2r"   c           
      ó¦  — t           j                             d¦  «                             ddd¬¦  «        }t           j                             d¦  «                             ddd¬¦  «        }t           j                             d¦  «                             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         }| 	                    d	g¦  «         
                    ¦   «                              d¦  «        }t          t          |¦  «        gt          dgd	¬¦  «        ¬¦  «        }t          j        ||g¦  «        }d|_        t%          j        ||¦  «         |j        d         }	| 	                    ddg¦  «         
                    ¦   «                              d¦  «        }
t          j        |
t          t          |¦  «        gdg¬¦  «        g¦  «        }
d|
_        |
                     |	j        ¦  «        }
|
                     d¦  «                             t           j        ¦  «        }
t%          j        |	|
¦  «         d}dd d	dgfD ]M}t1          j        t4          |¬¦  «        5  t          |||gd	gd
d|¬¦  «         d d d ¦  «         n# 1 swxY w Y   ŒNd S )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ž   sü  € åŒI×!Ò! !Ñ$Ô$×-Ò-¨a°¸Ð-Ñ=Ô=ˆÝŒI×!Ò! !Ñ$Ô$×-Ò-¨a°¸Ð-Ñ=Ô=ˆÝŒI×!Ò! !Ñ$Ô$×-Ò-¨a°¸Ð-Ñ=Ô=ˆå˜Q Q¨QÐ/Ð/Ñ0Ô0ˆåØØ�ˆFØ�UØØØ ð
ñ 
ô 
ˆð Œ|Ô! VÒ+Ð+Ð+Ð+ØŒ~Ô#¨¨S zÒ1Ð1Ð1Ð1à˜+Ô&ˆØ—:’:˜s˜eÑ$Ô$×)Ò)Ñ+Ô+×2Ò2°4Ñ8Ô8ˆå�S ™WœW˜I­U°G°9À3Ð-GÑ-GÔ-GÐHÑHÔHˆ
Ý”9˜h¨
Ð3Ñ4Ô4ˆØ%ˆŒå
Ô˜x¨Ñ2Ô2Ð2à”:˜gÔ&ˆØ—:’:˜s C˜jÑ)Ô)×.Ò.Ñ0Ô0×7Ò7¸Ñ=Ô=ˆÝ”9˜h­µ°B±´¨yÀÀÐ(PÑ(PÔ(PÐQÑRÔRˆØˆŒà×#Ò# H¤NÑ3Ô3ˆØ—?’? 1Ñ%Ô%×,Ò,­R¬XÑ6Ô6ˆÝ
Ô˜x¨Ñ2Ô2Ð2à6ˆØ  $¨¨c¨
Ð3ð 		ð 		ˆLÝ”�z°Ð5Ñ5Ô5ð ð ÝØØ˜�FØ!˜UØ'Ø Ø!-ðñ ô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øð		ð 		s   Ê KËK		ËK		c                 ód  — t           j                             d¦  «                             ddd¬¦  «        }t           j                             d¦  «                             ddd¬¦  «        }t           j                             d¦  «                             ddd¬¦  «        }t           j                             d¦  «                             d¦  «        }t          ||g||dd	d
gdg¬¦  «        }t          ||||dœ¦  «        }|                     dd	d
gdd¬¦  «        }t          j	        ||¦  «         d S )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×!Ò! !Ñ$Ô$×-Ò-¨a°¸Ð-Ñ=Ô=ˆÝŒI×!Ò! !Ñ$Ô$×-Ò-¨a°¸Ð-Ñ=Ô=ˆÝŒI×!Ò! !Ñ$Ô$×-Ò-¨a°¸Ð-Ñ=Ô=ˆÝ”×&Ò& qÑ)Ô)×9Ò9¸#Ñ>Ô>ˆåØ�ˆF�A�v u¸¸u°~ÐQVÐPWð
ñ 
ô 
ˆõ ˜q¨°1ÀÐGÐGÑHÔHˆà—>’>Ø˜U E˜N°EÀ5ð "ñ 
ô 
ˆõ 	Ô˜e XÑ.Ô.Ð.Ð.Ð.r"   c                 óN  — 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        |¦  «         d S )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ÐFÐFÐFÍfÐUÑUÔUˆÝŒHÐFÐFÐFÍfÐUÑUÔUˆÝŒHØFÐFÐFÍfð
ñ 
ô 
ˆõ �q˜1˜a˜&¨C¨5¸CÀ¸:ÈeÐTÑTÔTˆÝÔ"ØRÐRÐRØ˜�*ð
ñ 
ô 
ˆõ 	Ô˜cœ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        ||¦  «         d S )	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�I�I Y Y YÐ/Ñ/Ô/ˆÝ�I�I�I Y Y YÐ/Ñ/Ô/ˆå˜"˜bÑ!Ô!ˆÝÝ˜ '°Ð8Ñ8Ô8Ý˜" G°'Ð:Ñ:Ô:ð
ñ 
ô 
ˆõ
 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   c                 óB  — 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
        ||¦  «         d S )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Ð4Ð;MÐ;MÐ;MÐNÐNÑOÔOˆÝ˜"œ$ ¤¨d¸4Ð@Ñ@Ô@ˆÝ˜i˜i˜i¨¨¨°I°I°IÐ>Ñ?Ô?ˆÝÐ0Ð0Ð0°sÐ;Ñ;Ô;ˆŒÝ    °SÐ9Ñ9Ô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
        ||¦  «         d S )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�bœf¥b¤f¨aµ´Ð8ÀÅ2Ä6È1ÈaÐQRÐTUÐ?VÐWÐWñ
ô 
ˆõ ˜"œ$ ¤¨d¸4Ð@Ñ@Ô@ˆÝ˜i˜i˜i¨¨¨°I°I°IÐ>Ñ?Ô?ˆÝÐ0Ð0Ð0°sÐ;Ñ;Ô;ˆŒÝ Ð!2Ð!2Ð!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
        ||¦  «         d S )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�bœf¥b¤f­b¬f°aÐ8Ð?QÐ?QÐ?QÐRÐRñ
ô 
ˆõ ˜"œ$ ¤¨d¸4Ð@Ñ@Ô@ˆÝ˜i˜i˜i¨¨¨°I°I°IÐ>Ñ?Ô?ˆÝÐ0Ð0Ð0°sÐ;Ñ;Ô;ˆŒÝ    °SÐ9Ñ9Ô9ˆÔÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   c                 ó`  — 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 d¢g¦  «        }t          ddt          j        dgd¬¦  «        |_        t          g d¢d¬¦  «        |_        t          j
        ||¦  «         d S )NrM   r   r�   r‘   TFr’   r“   r”   rL   )r   rO   r‰   r–   r—   r^   r>   rT   r˜   r?   r™   r›   s       r!   Útest_margin_dropna4z TestCrosstab.test_margin_dropna4  sÀ   € õ
 ˜a  A q¨!­R¬VÐ4Ð;MÐ;MÐ;MÐNÐNÑOÔOˆÝ˜"œ$ ¤¨d¸5ÐAÑAÔAˆÝ˜i˜i˜i¨¨¨°I°I°I¸y¸y¸yÐIÑJÔJˆÝ  S­"¬&°%Ð8¸sÐCÑCÔCˆŒÝ    °SÐ9Ñ9Ô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 d¢g¦  «        }t          ddt          j        dgd¬¦  «        |_        t          ddt          j        dgd¬¦  «        |_        t          j
        ||d¬¦  «         d S )NrM   r   r;   rO   r‘   TFr’   )rM   r   r   r–   )r   rM   r   r–   )r   r;   rM   r    )rM   rO   rM   g      @r–   r—   r^   r>   rT   rŸ   r    r?   )Úcheck_dtyper™   r›   s       r!   Útest_margin_dropna5z TestCrosstab.test_margin_dropna5)  sè   € åØ•b”f�bœf¥b¤f¨aµ´Ð8ÀÅ2Ä6È1ÈaÐQRÐTUÐ?VÐWÐWñ
ô 
ˆõ ˜"œ$ ¤¨d¸5ÐAÑAÔAˆÝØˆ^ˆ^˜^˜^˜^¨^¨^¨^¸^¸^¸^ÐLñ
ô 
ˆõ   S­"¬&°%Ð8¸sÐCÑCÔCˆŒÝ  # s­B¬F°EÐ!:ÀÐEÑEÔEˆÔÝ
Ô˜f h¸EÐBÑBÔBÐBÐBÐBr"   c           
      ój  — 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¢g d¢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        ||¦  «         d S )%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   rM   rZ   )rI   ©r   r   r^   rT   )r   r   r   r   r   r   r^   r_   )rM   r   r–   r   )r   r   r—   )rM   rM   r—   )r   rM   r–   )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ÐFÐFÐFÍfÐUÑUÔUˆÝŒH�e˜U E¨5°%½¼ÀÐGÍvÐVÑVÔVˆÝŒHØFÐFÐFÍfð
ñ 
ô 
ˆõ Ø��1ˆv  °°c°
ÀDÐQVð
ñ 
ô 
ˆõ Ô"à˜˜u e­R¬VµR´V¸UÐCØGÐGÐGðð ˜�*ð
ñ 
ô 
ˆõ Ø"Ð"Ð"Ð$9Ð$9Ð$9Ð;PÐ;PÐ;PÐQØð
ñ 
ô 
ˆõ Ð4Ð4Ð4¸3Ð?Ñ?Ô?ˆŒÝ
Ô˜f hÑ/Ô/Ð/åØ�ˆF�A  c 
°c°UÀDÐQVð
ñ 
ô 
ˆõ Ô"àAÐAÐAØ˜�rœv u¨eµR´V¸RÐ@ðð ˜�*ð
ñ 
ô 
ˆõ à��Ø��Ø�A•r”v�Ø��Ø��Ø��Ø��ðð ð
ñ 
ô 
ˆõ !Ð!9Ð!9Ð!9ÀÐDÑDÔDˆÔÝ
Ô˜f hÑ/Ô/Ð/åØ�ˆF�A  c 
°c°UÀDÐQUð
ñ 
ô 
ˆõ Ô"Ø0Ð0Ð0Ð2RÐ2RÐ2RÐSØ˜�*ð
ñ 
ô 
ˆõ ØˆYˆY˜	˜	˜	 9 9 9¨i¨i¨i¸¸¸ÐCÈ1ð
ñ 
ô 
ˆõ !Ð!9Ð!9Ð!9ÀÐDÑDÔ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¬"¦  «        |	¦  «         d S )#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ÈQÐPQÐ>RÐSÐSñ
ô 
ˆõ ˜˜1�v CÐ(Ñ(Ô(ˆÝ˜˜1�v CÐ(Ñ(Ô(ˆÝ # q ¨C°¨:Ð 6¸fÈfÐUÑUÔUˆÝ  a ¨4°¨,Ð7¸vÈvÐVÑVÔVˆ
Ý  a ¨3°¨*Ð5¸VÈVÐTÑTÔTˆ
õ 	Ô�h r¤t¨R¬T¸UÐCÑCÔCÀ[ÑQÔQÐQÝ
Ô�h r¤t¨R¬T¸TÐBÑBÔBÀKÑPÔPÐPÝ
Ô�h r¤t¨R¬T¸WÐEÑEÔEÀzÑRÔRÐRÝ
Ô�h r¤t¨R¬T¸YÐGÑGÔGÈÑTÔTÐTÝ
ÔÝ�R”T˜2œ4¨1Ð-Ñ-Ô-Ý�R”T˜2œ4¨9Ð5Ñ5Ô5ñ	
ô 	
ð 	
õ 	ÔÝ�R”T˜2œ4¨1Ð-Ñ-Ô-­x¸¼¸b¼dÈgÐ/VÑ/VÔ/Vñ	
ô 	
ð 	
õ 'Ø�1ˆX˜˜d�| c¨3 ZÐ0Ý˜˜˜¨C°xÐ@Ñ@Ô@Ý˜1˜a˜& s°(Ð;Ñ;Ô;ð
ñ 
ô 
Ðõ
 'Øˆ]ˆ]˜O˜O˜OÐ,Ý˜˜A˜ S°Ð9Ñ9Ô9Ý˜-˜-˜-¨c¸ÐBÑBÔBð
ñ 
ô 
Ðõ 'Øˆ]ˆ]˜O˜O˜O¨]¨]¨]Ð;Ý˜˜˜¨C°xÐ@Ñ@Ô@Ý˜-˜-˜-¨c¸ÐBÑBÔBð
ñ 
ô 
Ðõ
 	ÔÝ�R”T˜2œ4¨7¸DÐAÑAÔAÐCUñ	
ô 	
ð 	
õ 	ÔÝ�R”T˜2œ4¨9¸dÐCÑCÔCÐEWñ	
ô 	
ð 	
õ 	ÔÝ�R”T˜2œ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¬¦  «        ¬¦  «        }t          |j        |j        |j        t          j        dd¬¦  «        }t          j
        ||¦  «         d S )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¼   )r   r   rš   r	   rW   r   r>   r?   r@   r)   r*   rv   )r/   r    Únorm_countsÚ	test_caseÚnorm_sums        r!   Útest_crosstab_normalize_arraysz+TestCrosstab.test_crosstab_normalize_arrays¨  sã  € åØ!�/�/¨¨¨¸qÀ!ÅRÄVÈQÐPQÐ>RÐSÐSñ
ô 
ˆõ
 	ÝŒX�l�l�lÑ#Ô#¥R¤X¨l¨l¨lÑ%;Ô%;Ð<½b¼hÀ|À|À|Ñ>TÔ>Tñ	
ô 	
ð 	
õ
  Øˆ_ˆ_Ð/Ð/Ð/°°°Ð?Ý˜˜˜¨C°xÐ@Ñ@Ô@Ý˜-˜-˜-¨cÐ2Ñ2Ô2ð
ñ 
ô 
ˆõ
 ØŒD�"”$˜œ g¸Èð
ñ 
ô 
ˆ	õ 	Ô˜i¨Ñ5Ô5Ð5åØ!�/�/¨¨¨¸qÀ!ÅRÄVÈQÐPQÐ>RÐSÐSñ
ô 
ˆõ Øˆ[ˆ[˜-˜-˜-¨¨¨Ð7Ý˜˜˜¨C°xÐ@Ñ@Ô@Ý˜-˜-˜-¨c¸ÐBÑBÔBð
ñ 
ô 
ˆõ
 ØŒD�"”$˜œ¥b¤f¸Àtð
ñ 
ô 
ˆ	õ 	Ô˜i¨Ñ2Ô2Ð2Ð2Ð2r"   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 ]:}t	          |j        |j        |j        d|¬¦  «        }t          j	        ||¦  «         Œ;t          dt          j        gddggt          ddgdd¬	¦  «        t          d
dgd¬¦  «        ¬¦  «        }t	          |j        |j        |j        dd¬¦  «        }t          j	        ||¦  «         d S )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    ÚemptyÚiÚ
calculatedÚnanss         r!   Útest_crosstab_with_emptiesz'TestCrosstab.test_crosstab_with_emptiesÌ  sa  € åà$�_�_Ø$�_�_Ý”f�bœf¥b¤f­b¬fµb´fÐ=ðð ñ
ô 
ˆõ Ø�3ˆZ˜#˜s˜Ð$Ý˜˜A˜ S°Ð8Ñ8Ô8Ý˜1˜a˜& sÐ+Ñ+Ô+ð
ñ 
ô 
ˆð ,ð 	5ð 	5ˆAÝ! "¤$¨¬°R´TÀ7ÐVWÐXÑXÔXˆJÝÔ! %¨Ñ4Ô4Ð4Ð4åØ•2”6ˆ]˜S #˜JÐ'Ý˜˜A˜ S°Ð8Ñ8Ô8Ý˜1˜a˜& sÐ+Ñ+Ô+ð
ñ 
ô 
ˆõ ˜bœd B¤D°´¸wÐRWÐXÑXÔ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 ¦  «         n# 1 swxY w Y   d}t          j        t
          |¬¦  «        5  t          |j        |j        t          j
        ¬	¦  «         d d d ¦  «         n# 1 swxY w Y   d
}t          j        t
          |¬¦  «        5  t          |j        |j        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          |¬¦  «        5  t          |j        |j        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t
          |¬¦  «        5  t          |j        |j        dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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é  sø  € õ Ø!�/�/¨¨¨¸qÀ!ÅRÄVÈQÐPQÐ>RÐSÐSñ
ô 
ˆð <ˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	.ð 	.Ý�R”T˜2œ4¨¬Ð-Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 8ˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	2ð 	2Ý�R”T˜2œ4­¬Ð1Ñ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 1ˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	1ð 	1Ý�R”T˜2œ4¨4Ð0Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1õ Œ]�:¨UÐ3Ñ3Ô3ð 	/ð 	/Ý�R”T˜2œ4¨2Ð.Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð /ˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	>ð 	>Ý�R”T˜2œ4¨5¸"Ð=Ñ=Ô=Ð=ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>sZ   Á"A2Á2A6Á9A6Â'CÃCÃCÃ5DÄD"Ä%D"ÅE-Å-E1Å4E1ÆG Ç GÇGc                 óŽ  — t          g d¢g d¢dœ¦  «        }g d¢}|d                              d¦  «        j                             |¦  «        |d<   t	          |d         |d         ¦  «        }t          g d¢d¬	¦  «        }t          ||d
d¬¦  «        }g d¢g d¢g d¢g}t          |||¬¦  «        }t          j        ||¦  «         d S )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ÐNÐNØSÐSÐSðð ñ
ô 
ˆð 5Ð4Ð4ˆ
Ø˜”k×(Ò(¨Ñ4Ô4Ô8×GÒGÈ
ÑSÔSˆˆ7‰Ý˜"˜Vœ* b¨¤kÑ2Ô2ˆåÐ:Ð:Ð:ÀÐHÑHÔHˆÝ+Ø :°uÀ7ð
ñ 
ô 
Ðð #˜˜ I I I¨y¨y¨yÐ9ˆÝØ Ð9Ið
ñ 
ô 
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   c                 óX  — t          g d¢dz  g d¢dz  g d¢dz  t          j                             d¦  «                             d¦  «        t          j                             d¦  «                             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                              d¦  «        |d<   t          j        ||¦  «         d S )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Ð3Ð3°aÑ7Ø$�_�_ qÑ(Ø?Ð?Ð?À!ÑCÝ”Y×*Ò*¨1Ñ-Ô-×=Ò=¸bÑAÔAÝ”Y×*Ò*¨1Ñ-Ô-×=Ò=¸bÑAÔAðð ñ
ô 
ˆõ Ø�c”7˜B˜sœGÐ$Ø˜”W�IØÝ”GØ�c”7ð
ñ 
ô 
ˆõ $Ø2Ð2Ð2Ð4GÐ4GÐ4GÐHØ1Ð1Ð1Ð3QÐ3QÐ3QÐRØ˜�*ð
ñ 
ô 
ˆõ
  Ð 5Ð 5Ð 5¸CÐ@Ñ@Ô@ˆÝœà��Ø��Ø��Ø•b”f˜cÐ"Ý”˜˜cÐ"Ø•b”f˜cÐ"Ý”˜˜cÐ"Ø•b”f˜cÐ"Ý”˜˜cÐ"Ø"Ð"Ð"ðñ
ô 
ˆõ Ø ¸ð
ñ 
ô 
ˆð # 5œ/×0Ò0°Ñ9Ô9ˆ�‰Ý
Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   c                 óÎ  — t          t          d¦  «        d¬¦  «        }t          t          dd¦  «        d¬¦  «        }t          t          dd¦  «        d¬¦  «        }t          t          d¦  «        d¬¦  «        }ddi}t          ||¦  «        }t          ||¦  «                             |d¬¦  «        }t	          j        ||¦  «         t          ||g|¦  «        }t          ||g|¦  «                             |d	¬
¦  «        }t	          j        ||¦  «         t          |||g¦  «        }t          |||g¦  «                             |d¬¦  «        }t	          j        ||¦  «         d S )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_namesF  s[  € õ •E˜!‘H”H 5Ð)Ñ)Ô)ˆÝ�˜a ™œ¨%Ð0Ñ0Ô0ˆÝ�˜a ™œ¨%Ð0Ñ0Ô0ˆÝ•E˜!‘H”H 7Ð+Ñ+Ô+ˆð ˜�ˆõ ˜"˜fÑ%Ô%ˆÝ˜B Ñ'Ô'×3Ò3¸FÈÐ3ÑKÔKˆÝ
Ô˜f hÑ/Ô/Ð/õ ˜2˜v˜,¨Ñ+Ô+ˆÝ˜R ˜L¨"Ñ-Ô-×9Ò9ÀÈQÐ9ÑOÔOˆÝ
Ô˜f hÑ/Ô/Ð/õ ˜"˜r 6˜lÑ+Ô+ˆÝ˜B  V Ñ-Ô-×9Ò9À&ÈqÐ9ÑQÔQˆå
Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   rH   r>   rA   r‘   r@   c                 ó”  — t          t          d¦  «        |d         ¬¦  «        }t          t          dd¦  «        |d         ¬¦  «        }t          j        t          d¦  «        t          dd¦  «        g|¬¦  «        }t          d|¬¦  «                             dd¬¦  «        }t          ||¦  «        }t          j        ||¦  «         d S )	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_nameb  s±   € å•E˜!‘H”H 5¨¤8Ð,Ñ,Ô,ˆÝ•E˜!˜Q‘K”K e¨A¤hÐ/Ñ/Ô/ˆåÔ#¥U¨1¡X¤X­u°Q¸©{¬{Ð$;À5ÐIÑIÔIˆÝ˜! 2Ð&Ñ&Ô&×.Ò.¨q¸QÐ.Ñ?Ô?ˆå˜"˜bÑ!Ô!ˆÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   c           	      ó„  — t          t          d¦  «        d¬¦  «        }t          t          d¦  «        d¬¦  «        }t          t          j        dd¬¦  «        t          t          d¦  «        d¬¦  «        t          t          d¦  «        d¬¦  «        ¬¦  «        }t          ||¦  «        }t          j        ||¦  «         d S )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_namesm  s®   € å•E˜!‘H”H :Ð.Ñ.Ô.ˆÝ•E˜!‘H”H :Ð.Ñ.Ô.ˆåÝŒF�1˜GÐ$Ñ$Ô$Ý�˜a™œ zÐ2Ñ2Ô2Ý�% ™(œ(¨Ð4Ñ4Ô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	        ||¦  «         d S )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_orderz  sÁ   € Ý˜Y˜Y˜Y¨Y¨Y¨YÐ7Ð7¸¸¸ÐOÑOÔOˆÝ˜"œ( R¤T¨2¬4 LÑ1Ô1ˆÝ�o�o�o¨GÐ4Ñ4Ô4ˆÝÔ*Ð+CÐ+CÐ+CÈCÐQTÈ:ÐVÑVÔVˆ	ÝØˆYˆY˜	˜	˜	 9 9 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	œ¦  «        }t          |j        |j        g|j        |j        t          j        d
d
¬¦  «        }t          t          j        dgdz  dgz   t          ¬¦  «         
                    dd¦  «        t          g d¢d¬¦  «        t          j        g d¢ddg¬¦  «        ¬¦  «        }t          j        ||¦  «         d S )Nrî   r‰   r4   rð   rñ   rO   r   rò   ró   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   rv   rW   ÚfloatÚreshaper   r   rƒ   r)   r*   r.   s       r!   Ú(test_crosstab_normalize_multiple_columnsz5TestCrosstab.test_crosstab_normalize_multiple_columns„  s.  € åà3Ð3Ð3°aÑ7Ø$�_�_ qÑ(Ø?Ð?Ð?À!ÑCØ�S˜2‘XØ�S˜2‘Xðð ñ
ô 
ˆõ ØŒT�2”4ˆLØŒDØ”4Ý”FØØð
ñ 
ô 
ˆõ ÝŒH�a�S˜2‘X  ‘^­5Ð1Ñ1Ô1×9Ò9¸"¸aÑ@Ô@ÝÐ/Ð/Ð/°cÐ:Ñ:Ô:ÝÔ(ðð ð ð ˜C�jðñ ô ð
ñ 
ô 
ˆõ& 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   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
        ||¦  «         d S )*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ÐTØTÐTÐTð
ð 
ð 
ð 1Ð0Ð0Ø0Ð0Ð0ðð ñ
ô 
ˆõ( ØŒT�2”4ˆL˜"œ$¨¸;ÐRSð
ñ 
ô 
ˆõ Ø�3ˆZ˜#˜s˜ h°Ð%9¸A¸q¸6ÀHÈhÐCWÐXñ
ô 
ˆõ $Ø/Ð/Ð/Ð1CÐ1CÐ1CÐDØ"�?�? O O OÐ4Ø˜�*ð
ñ 
ô 
ˆŒõ
 ! '¨7Ð!3¸#Ð>Ñ>Ô>ˆÔÝ
Ô˜f hÑ/Ô/Ð/õ ØŒT�2”4ˆL˜"œ$¨¸;ÐRSð
ñ 
ô 
ˆõ à%Ð%Ð%Ø%Ð%Ð%Ø$Ð$Ð$Ø"Ð"Ð"ð	ñ
ô 
ˆõ !Ð!@Ð!@Ð!@ÀsÐKÑKÔKˆÔÝ#Ø˜E�N U¨E NÐ3Ø�<�<   Ð.Ø˜�*ð
ñ 
ô 
ˆŒõ
 	Ô˜f hÑ/Ô/Ð/õ ØŒT�2”4ˆL˜"œ$¨¸;ÐRVð
ñ 
ô 
ˆõ à.Ð.Ð.Ø.Ð.Ð.Ø.Ð.Ð.Ø.Ð.Ð.Ø'Ð'Ð'ðñ
ô 
ˆõ !Ð!@Ð!@Ð!@ÀsÐKÑKÔKˆÔÝ#Ø/Ð/Ð/Ð1CÐ1CÐ1CÐDØ"�?�? O O OÐ4Ø˜�*ð
ñ 
ô 
ˆŒõ
 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   c                 óR  — 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
        ||¦  «         d S )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ÐTØTÐTÐTð
ð 
ð 
ð 1Ð0Ð0Ø0Ð0Ð0ðð ñ
ô 
ˆõ& Ø”$Ø”T˜2œ4�LØØ!Øð
ñ 
ô 
ˆõ àBÐBÐBØBÐBÐBØ=Ð=Ð=ðð
 /Ð.Ð.ð
ñ 
ô 
ˆõ &Ø,Ð,Ð,Ð.@Ð.@Ð.@ÐAØ"�?�? O O OÐ4Ø˜�*ð
ñ 
ô 
ˆÔð
 "ˆŒÔÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   c           	      ób  — 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        ||¦  «         d S )N)rM   r   r   rM   )r;   r;   rO   r8   )ç      ð¿ç      $@r–   r-  r4   ÚFloat64rR   r   r   r   rv   T)ry   rx   r[   r,  r-  ç      "@r–   g      &@)r/  r–   r-  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Ð8OÐ8OÐPÐPØð
ñ 
ô 
ˆõ ØˆsŒGØˆsŒGØ�c”7ØØð
ñ 
ô 
ˆõ à•r”u˜d CÐ(Ø�s�BœE 4Ð(Ø&Ð&Ð&ðõ
 Ð)Ð)Ð)°ÀÐDÑDÔDÝÐ0Ð0Ð0¸ÀsÐKÑKÔKØð	
ñ 	
ô 	
ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/r"   c                 óÊ  — t          g d¢g d¢dœ¦  «        }|d                              t          d¬¦  «        ¦  «        |d<   g d¢}|d         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        ||¦  «         d S )N)r   r   r   r   r   r   )r   r   r   r   r   r   )ÚFirstÚSecondr3  T)rå   r  r4  )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_columnA  s"  € åà7Ð7Ð7Ø8Ð8Ð8ðð ñ
ô 
ˆð ˜”k×(Ò(Õ)9À$Ð)GÑ)GÔ)GÑHÔHˆˆ7‰Ø&5 o oÐ#Ø˜”k”o×8Ò8Ð9TÑUÔUˆˆ7‰Ý˜"˜Wœ+ r¨(¤|¸TÐBÑBÔBˆåÐ5Ð5Ð5¸GÐDÑDÔDˆÝ Ð!7Ð!7Ð!7¸hÐGÑGÔ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*  r1  r7  © r"   r!   r$   r$   E   s>  € € € € € ðKð Kð Kð
	0ð 	0ð 	0ð „[×Ò˜U R¤X¨t°UÐ$;Ñ<Ô<ð0ð 0ñ =Ô<ð0ð.0ð 0ð 0ð$3ð 3ð 3ð<0ð 0ð 0ðd/ð /ð /ð".ð .ð .ð0ð 0ð 0ð
0ð 
0ð 
0ð0ð 0ð 0ð0ð 0ð 0ð
0ð 
0ð 
0ðCð Cð Cð=0ð =0ð =0ð~1
ð 1
ð 1
ðf"3ð "3ð "3ðH0ð 0ð 0ð:>ð >ð >ð40ð 0ð 0ð,+0ð +0ð +0ðZ0ð 0ð 0ð8 „[×Ò˜W¨¨ZÐ'8¸:ÀsÐ:KÐ&LÑMÔMð0ð 0ñ NÔMð0ð0ð 0ð 0ð0ð 0ð 0ð'0ð '0ð '0ðRK0ð K0ð K0ðZ+0ð +0ð +0ðZ0ð 0ð 0ð40ð 0ð 0ð 0ð 0r"   r$   Úa_dtyperã   r-   Úb_dtypec                 óŒ  — t           j                             d¦  «        }t          |                     ddd¬¦  «        ¦  «                             | ¦  «        }t          |                     ddd¬¦  «        ¦  «                             |¦  «        }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        d         dk    sJ ‚t          ||dd¬¦  «        }g d¢g d¢g d¢g d¢g}t          |||¦  «        }	|
s-|	j        g d¢         }	|	d                              d¦  «        |	d<   t          j
        ||	¦  «         d S )Nr   r   r;   r9   r:   TFr’   )r   rM   r^   r‚   rE   rŠ   )r   rM   r   r^   rD   )r<   é   é   )é   é   é'   )é   rF  é!   )é2   rJ  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)r@  rA  Úgr>   r?   r0   rI   rG   ry   r1   Úa_is_cats              r!   Útest_categoricalsrR  W  sÚ  € õ 	Œ	×Ò˜aÑ Ô €AÝˆq�zŠz˜!˜Q SˆzÑ)Ô)Ñ*Ô*×1Ò1°'Ñ:Ô:€AÝˆq�zŠz˜!˜Q SˆzÑ)Ô)Ñ*Ô*×1Ò1°'Ñ:Ô:€AÝ�a˜ D°Ð7Ñ7Ô7€FÝ�M�M�M¨¸Ð@Ñ@Ô@€GÝÐ"Ð"Ð"¨(¸ÐAÑAÔA€EØˆlˆl˜L˜L˜L¨,¨,¨,¸¸¸ÐF€FÝ˜ ¨Ñ0Ô0€HÝÔ˜& (Ñ+Ô+Ð+ð €A„Eˆ!ˆqŠ&�MÝ˜!œ'Õ#3Ñ4Ô4€HØÐ7˜1Ÿ>š>Ñ+Ô+Ô/°Ô2°aÒ7Ð7Ð7Ð7Ý�a˜ D°Ð7Ñ7Ô7€FØˆlˆl˜I˜I˜I | | |°]°]°]ÐC€FÝ˜ ¨Ñ0Ô0€HØð :Ø”<   Ô.ˆØ" 5œ/×0Ò0°Ñ9Ô9ˆ�‰ÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+r"   )Únumpyr   rp   Úpandasr   r   r   r   r   r   r   r	   Úpandas._testingÚ_testingr)   Úfixturer    r$   r;  r<  rR  r?  r"   r!   ú<module>rX     sB  ðØ Ð Ð Ð Ø €€€à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ð „ð02ð 02ñ „ð02ðfO0ð O0ð O0ð O0ð O0ñ O0ô O0ð O0ðd „×Ò˜ Z°Ð$9Ñ:Ô:Ø„×Ò˜ Z°Ð$9Ñ:Ô:ð,ð ,ñ ;Ô:ñ ;Ô:ð,ð ,ð ,r"   