§
    µ³Ùg~I  ã                   ót   — d dl Zd dlmZ d dlZd dlmZ d dlmZm	Z	m
Z
 d dlmZ ddlmZ  G d„ d	¦  «        ZdS )
é    N)Úassert_allclose)Úraises)Úbinned_statisticÚbinned_statistic_2dÚbinned_statistic_dd)Úcheck_random_stateé   )Úcheck_named_resultsc                   ó  — e Zd Ze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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+d)„ Z,d*„ Z-d+„ Z.d,„ Z/e0j1         2                    d-e3j4        e3j5        g¦  «        e0j1         2                    d.e3j6        e3j7        e3j8        e3j9        e3j:        e3j;        d/d0„ d1„ g	¦  «        d2„ ¦   «         ¦   «         Z<d3S )4ÚTestBinnedStatisticc                 ón  — t          d¦  «        }|                     d¬¦  «        | _        |                     d¬¦  «        | _        |                     d¬¦  «        | _        |                     d¬¦  «        | _        |                     d¬¦  «        | _        |                     d¬¦  «        dz   | _        d S )Né‰&  éd   ©Úsize)r   é   g    €„.A)r   ÚuniformÚxÚyÚvÚXÚwÚu)ÚclsÚrngs     ú]/granary/edev/quantum/lib/python3.11/site-packages/scipy/stats/tests/test_binned_statistic.pyÚsetup_classzTestBinnedStatistic.setup_class   s–   € å  Ñ&Ô&ˆØ—’ �Ñ%Ô%ˆŒØ—’ �Ñ%Ô%ˆŒØ—’ �Ñ%Ô%ˆŒØ—’ �Ñ*Ô*ˆŒØ—’ �Ñ%Ô%ˆŒØ—’ �Ñ%Ô%¨Ñ+ˆŒˆˆó    c                 óÂ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          j        |d¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )NÚcounté
   ©Úbins©r   r   r   ÚnpÚ	histogramr   )Úselfr   r   Úcount1Úedges1ÚbcÚcount2Úedges2s           r   Útest_1d_countz!TestBinnedStatistic.test_1d_count   sk   € ØŒFˆØŒFˆå-¨a°°GÀ"ÐEÑEÔEÑˆ�˜Ýœ a¨bÐ1Ñ1Ô1‰ˆ�å˜ Ñ'Ô'Ð'Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 óZ   — | j         }| j        }g d¢}|D ]}t          |||d¬¦  «         Œd S )N)ÚmeanÚmedianr    Úsumr!   r"   )r   r   r   )r'   r   r   Ú
statisticsÚ	statistics        r   Útest_gh5927zTestBinnedStatistic.test_gh5927"   sP   € ð ŒFˆØŒFˆØ7Ð7Ð7ˆ
Ø#ð 	7ð 	7ˆIÝ˜Q  9°2Ð6Ñ6Ô6Ð6Ð6ð	7ð 	7r   c                 ó²   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         d S ©NÚstdr!   r"   )r   r   r   r%   r7   r   ©r'   r   r   Ústat1r)   r*   Ústat2r,   s           r   Útest_big_number_stdz'TestBinnedStatistic.test_big_number_std+   sd   € ð ŒFˆØŒFˆÝ,¨Q°°5¸rÐBÑBÔBÑˆˆv�rÝ,¨Q°µ2´6ÀÐCÑCÔCÑˆˆv�rå˜˜uÑ%Ô%Ð%Ð%Ð%r   c                 óò   — | j         }| j        }t          t          ||dd¬¦  «        ¦  «         t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         d S )Nr    iè  r"   r7   )r   r   Úprintr   r%   r7   r   r8   s           r   Útest_empty_bins_stdz'TestBinnedStatistic.test_empty_bins_std5   s‚   € àŒFˆØŒFˆÝÕ˜q ! W°4Ð8Ñ8Ô8Ñ9Ô9Ð9Ý,¨Q°°5¸tÐDÑDÔDÑˆˆv�rÝ,¨Q°µ2´6ÀÐEÑEÔEÑˆˆv�rå˜˜uÑ%Ô%Ð%Ð%Ð%r   c           
      óV  — | j         }| j        }|d         }t          j        |d<   t	          t
          t          ||dd¬¦  «         t	          t
          t          ||dt          j        d¦  «        ¬¦  «         t          j        |d<   t	          t
          t          ||dd¬¦  «         ||d<   d S )Nr   r7   r!   r"   r    )	r   r   r%   ÚinfÚassert_raisesÚ
ValueErrorr   Úint64Únan)r'   r   r   Úorigs       r   Ú#test_non_finite_inputs_and_int_binsz7TestBinnedStatistic.test_non_finite_inputs_and_int_bins?   s£   € ð ŒFˆØŒFˆØ�ŒtˆÝŒvˆˆ!‰Ý•jÕ"2°A°q¸%ÀbÐIÑIÔIÐIå•jÕ"2°A°q¸%Ýœ8 B™<œ<ð	)ñ 	)ô 	)ð 	)åŒvˆˆ!‰Ý•jÕ"2°A°q¸'ÈÐKÑKÔKÐKàˆˆ!‰ˆˆr   c                 ól   — | j         }| j        }t          ||dd¬¦  «        }d}t          ||¦  «         d S )Nr    r!   r"   ©r3   Ú	bin_edgesÚ	binnumber)r   r   r   r
   )r'   r   r   ÚresÚ
attributess        r   Útest_1d_result_attributesz-TestBinnedStatistic.test_1d_result_attributesO   sA   € ØŒFˆØŒFˆå˜q ! W°2Ð6Ñ6Ô6ˆØ<ˆ
Ý˜C Ñ,Ô,Ð,Ð,Ð,r   c                 óÄ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          j        |d|¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )Nr1   r!   r"   ©r#   Úweightsr$   )r'   r   r   Úsum1r)   r*   Úsum2r,   s           r   Útest_1d_sumzTestBinnedStatistic.test_1d_sumW   sm   € ØŒFˆØŒFˆå+¨A¨q°%¸bÐAÑAÔAÑˆˆf�bÝ”| A¨B¸Ð:Ñ:Ô:‰ˆˆfå˜˜dÑ#Ô#Ð#Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 óÒ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S )Nr/   r!   r"   )r   r   r   r%   r/   r   ©r'   r   r   r9   r)   r*   r:   r,   s           r   Útest_1d_meanz TestBinnedStatistic.test_1d_meana   sr   € ØŒFˆØŒFˆå,¨Q°°6ÀÐCÑCÔCÑˆˆv�rÝ,¨Q°µ2´7ÀÐDÑDÔDÑˆˆv�rå˜˜uÑ%Ô%Ð%Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 óÒ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S r6   )r   r   r   r%   r7   r   rU   s           r   Útest_1d_stdzTestBinnedStatistic.test_1d_stdk   ór   € ØŒFˆØŒFˆå,¨Q°°5¸rÐBÑBÔBÑˆˆv�rÝ,¨Q°µ2´6ÀÐCÑCÔCÑˆˆv�rå˜˜uÑ%Ô%Ð%Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 óÒ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S )NÚminr!   r"   )r   r   r   r%   r[   r   rU   s           r   Útest_1d_minzTestBinnedStatistic.test_1d_minu   rY   r   c                 óÒ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S )NÚmaxr!   r"   )r   r   r   r%   r^   r   rU   s           r   Útest_1d_maxzTestBinnedStatistic.test_1d_max   rY   r   c                 óÒ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S )Nr0   r!   r"   )r   r   r   r%   r0   r   rU   s           r   Útest_1d_medianz"TestBinnedStatistic.test_1d_median‰   sr   € ØŒFˆØŒFˆå,¨Q°°8À"ÐEÑEÔEÑˆˆv�rÝ,¨Q°µ2´9À2ÐFÑFÔFÑˆˆv�rå˜˜uÑ%Ô%Ð%Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 ó  ‡— | j         d d…         }| j        d d…         }t          ||dd¬¦  «        \  }}Št          j        g d¢¦  «        }ˆfd„t          j        ‰¦  «        D ¦   «         }t          ‰|¦  «         t          ||¦  «         d S )Né   r    r   r"   )r   é   r	   r   rd   r   r   r   r   r	   r	   r   r   r	   rd   r   r	   r	   rd   r	   c                 ó@   •— g | ]}‰|k                          ¦   «         ‘ŒS © ©r1   ©Ú.0Úir*   s     €r   ú
<listcomp>z7TestBinnedStatistic.test_1d_bincode.<locals>.<listcomp>›   ó%   ø€ Ð9Ð9Ð9 a�2˜’7—-’-‘/”/Ð9Ð9Ð9r   )r   r   r   r%   ÚarrayÚuniquer   )r'   r   r   r(   r)   Úbc2Úbcountr*   s          @r   Útest_1d_bincodez#TestBinnedStatistic.test_1d_bincode“   s§   ø€ ØŒF�3�B�3ŒKˆØŒF�3�B�3ŒKˆå-¨a°°GÀ!ÐDÑDÔDÑˆ�˜ÝŒhð !ð !ð !ñ "ô "ˆð :Ð9Ð9Ð9­2¬9°R©=¬=Ð9Ñ9Ô9ˆå˜˜CÑ Ô Ð Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 óÌ  — t           j                             d¦  «         t          j        d¦  «        }t           j                             d¦  «        }t	          |d d…         |d d…         ¦  «        \  }}}t	          ||dg¬¦  «        \  }}}t	          ||d¬¦  «        \  }}	}t          ||¦  «         t          ||¦  «         t          ||¦  «         t          ||	¦  «         d S )Nr   é   é   )r   é   ©Úrange)r%   ÚrandomÚseedÚaranger   r   )
r'   r   Údatar/   r#   Ú_Ú
mean_rangeÚ
bins_rangeÚmean_range2Úbins_range2s
             r   Útest_1d_range_keywordz)TestBinnedStatistic.test_1d_range_keyword    sÛ   € å
Œ	�Š�tÑÔÐÝŒI�b‰MŒMˆÝŒy×Ò Ñ#Ô#ˆå(¨¨3¨B¨3¬°°c°r°c´Ñ;Ô;‰ˆˆd�AÝ$4°Q¸ÀWÀIÐ$NÑ$NÔ$NÑ!ˆ
�J Ý&6°q¸$ÀgÐ&NÑ&NÔ&NÑ#ˆ�[ !å˜˜jÑ)Ô)Ð)Ý˜˜jÑ)Ô)Ð)Ý˜˜kÑ*Ô*Ð*Ý˜˜kÑ*Ô*Ð*Ð*Ð*r   c                 óV  — | j         }| j        }| j        }t          ||dd¬¦  «        \  }}}t          ||dd¬¦  «        \  }}}	t          |||gdd¬¦  «        \  }
}}t	          |
d         |¦  «         t	          |
d         |¦  «         t	          ||¦  «         t	          ||¦  «         d S )Nr/   r!   r"   r   r	   )r   r   r   r   r   )r'   r   r   r   Ústat1vÚedges1vÚbc1vÚstat1wÚedges1wÚbc1wr:   r,   ro   s                r   Útest_1d_multi_valuesz(TestBinnedStatistic.test_1d_multi_values¯   sÀ   € ØŒFˆØŒFˆØŒFˆå 0°°A°vÀBÐ GÑ GÔ GÑˆ�˜Ý 0°°A°vÀBÐ GÑ GÔ GÑˆ�˜Ý-¨a°!°Q°¸ÀbÐIÑIÔIÑˆˆv�så˜˜aœ &Ñ)Ô)Ð)Ý˜˜aœ &Ñ)Ô)Ð)Ý˜ Ñ(Ô(Ð(Ý˜˜cÑ"Ô"Ð"Ð"Ð"r   c                 óø   — | j         }| j        }| j        }t          |||dd¬¦  «        \  }}}}t	          j        ||d¬¦  «        \  }}	}
t          ||¦  «         t          ||	¦  «         t          ||
¦  «         d S )Nr    é   r"   ©r   r   r   r   r%   Úhistogram2dr   )r'   r   r   r   r(   Úbinx1Úbiny1r*   r+   Úbinx2Úbiny2s              r   Útest_2d_countz!TestBinnedStatistic.test_2d_count½   s’   € ØŒFˆØŒFˆØŒFˆå#6Øˆq�!�W 1ð$&ñ $&ô $&Ñ ˆ��u˜bå!œ~¨a°¸Ð;Ñ;Ô;Ñˆ��uå˜ Ñ'Ô'Ð'Ý˜˜uÑ%Ô%Ð%Ý˜˜uÑ%Ô%Ð%Ð%Ð%r   c                 ó|   — | j         }| j        }| j        }t          |||dd¬¦  «        }d}t	          ||¦  «         d S )Nr    r‹   r"   )r3   Úx_edgeÚy_edgerJ   )r   r   r   r   r
   )r'   r   r   r   rK   rL   s         r   Útest_2d_result_attributesz-TestBinnedStatistic.test_2d_result_attributesÊ   sJ   € ØŒFˆØŒFˆØŒFˆå! ! Q¨¨7¸Ð;Ñ;Ô;ˆØCˆ
Ý˜C Ñ,Ô,Ð,Ð,Ð,r   c                 óú   — | j         }| j        }| j        }t          |||dd¬¦  «        \  }}}}t	          j        ||d|¬¦  «        \  }}	}
t          ||¦  «         t          ||	¦  «         t          ||
¦  «         d S )Nr1   r‹   r"   rO   rŒ   )r'   r   r   r   rQ   rŽ   r�   r*   rR   r�   r‘   s              r   Útest_2d_sumzTestBinnedStatistic.test_2d_sumÓ   s�   € ØŒFˆØŒFˆØŒFˆå!4°Q¸¸1¸eÈ!Ð!LÑ!LÔ!LÑˆˆe�U˜BÝœ^¨A¨q°qÀ!ÐDÑDÔDÑˆˆe�Uå˜˜dÑ#Ô#Ð#Ý˜˜uÑ%Ô%Ð%Ý˜˜uÑ%Ô%Ð%Ð%Ð%r   c                 ó  — | j         }| j        }| j        }t          |||dd¬¦  «        \  }}}}t          |||t          j        d¬¦  «        \  }}	}
}t          ||¦  «         t          ||	¦  «         t          ||
¦  «         d S ©Nr/   r‹   r"   ©r   r   r   r   r%   r/   r   ©r'   r   r   r   r9   rŽ   r�   r*   r:   r�   r‘   s              r   Útest_2d_meanz TestBinnedStatistic.test_2d_meanß   s‘   € ØŒFˆØŒFˆØŒFˆå"5°a¸¸A¸vÈAÐ"NÑ"NÔ"NÑˆˆu�e˜RÝ"5°a¸¸A½r¼wÈQÐ"OÑ"OÔ"OÑˆˆu�e˜Rå˜˜uÑ%Ô%Ð%Ý˜˜uÑ%Ô%Ð%Ý˜˜uÑ%Ô%Ð%Ð%Ð%r   c                 ó  — | j         }| j        }| j        }t          |||dd¬¦  «        \  }}}}t          |||t          j        d¬¦  «        \  }}	}
}t          ||¦  «         t          ||	¦  «         t          ||
¦  «         d S rš   r›   rœ   s              r   Útest_2d_mean_unicodez(TestBinnedStatistic.test_2d_mean_unicodeë   s˜   € ØŒFˆØŒFˆØŒFˆÝ"5Øˆq�!�V !ð#%ñ #%ô #%Ñˆˆu�e˜Rå"5°a¸¸A½r¼wÈQÐ"OÑ"OÔ"OÑˆˆu�e˜RÝ˜˜uÑ%Ô%Ð%Ý˜˜uÑ%Ô%Ð%Ý˜˜uÑ%Ô%Ð%Ð%Ð%r   c                 ó  — | j         }| j        }| j        }t          |||dd¬¦  «        \  }}}}t          |||t          j        d¬¦  «        \  }}	}
}t          ||¦  «         t          ||	¦  «         t          ||
¦  «         d S )Nr7   r‹   r"   )r   r   r   r   r%   r7   r   rœ   s              r   Útest_2d_stdzTestBinnedStatistic.test_2d_stdö   ó‘   € ØŒFˆØŒFˆØŒFˆå"5°a¸¸A¸uÈ1Ð"MÑ"MÔ"MÑˆˆu�e˜RÝ"5°a¸¸A½r¼vÈAÐ"NÑ"NÔ"NÑˆˆu�e˜Rå˜˜uÑ%Ô%Ð%Ý˜˜uÑ%Ô%Ð%Ý˜˜uÑ%Ô%Ð%Ð%Ð%r   c                 ó  — | j         }| j        }| j        }t          |||dd¬¦  «        \  }}}}t          |||t          j        d¬¦  «        \  }}	}
}t          ||¦  «         t          ||	¦  «         t          ||
¦  «         d S )Nr[   r‹   r"   )r   r   r   r   r%   r[   r   rœ   s              r   Útest_2d_minzTestBinnedStatistic.test_2d_min  r¢   r   c                 ó  — | j         }| j        }| j        }t          |||dd¬¦  «        \  }}}}t          |||t          j        d¬¦  «        \  }}	}
}t          ||¦  «         t          ||	¦  «         t          ||
¦  «         d S )Nr^   r‹   r"   )r   r   r   r   r%   r^   r   rœ   s              r   Útest_2d_maxzTestBinnedStatistic.test_2d_max  r¢   r   c                 ó  — | j         }| j        }| j        }t          |||dd¬¦  «        \  }}}}t          |||t          j        d¬¦  «        \  }}	}
}t          ||¦  «         t          ||	¦  «         t          ||
¦  «         d S )Nr0   r‹   r"   )r   r   r   r   r%   r0   r   rœ   s              r   Útest_2d_medianz"TestBinnedStatistic.test_2d_median  s¡   € ØŒFˆØŒFˆØŒFˆå"5Øˆq�!�X Að#'ñ #'ô #'Ñˆˆu�e˜Rå"5Øˆq�!•R”Y Qð#(ñ #(ô #(Ñˆˆu�e˜Rõ 	˜˜uÑ%Ô%Ð%Ý˜˜uÑ%Ô%Ð%Ý˜˜uÑ%Ô%Ð%Ð%Ð%r   c                 ót  ‡
— | j         d d…         }| j        d d…         }| j        d d…         }t          |||dd¬¦  «        \  }}}Š
t	          j        g d¢¦  «        }ˆ
fd„t	          j        ‰
¦  «        D ¦   «         }t          ‰
|¦  «         ||                     ¦   «                  }	t          ||	¦  «         d S )Nrc   r    r   r"   )é   é   é   é   r«   rª   é   rª   rª   é   r¬   r®   r­   r¬   r«   r­   r¬   r¬   r«   é   c                 ó@   •— g | ]}‰|k                          ¦   «         ‘ŒS rf   rg   rh   s     €r   rk   z7TestBinnedStatistic.test_2d_bincode.<locals>.<listcomp>2  rl   r   )	r   r   r   r   r%   rm   rn   r   Únonzero)r'   r   r   r   r(   rŽ   r�   ro   rp   Ú	count1adjr*   s             @r   Útest_2d_bincodez#TestBinnedStatistic.test_2d_bincode(  sÕ   ø€ ØŒF�3�B�3ŒKˆØŒF�3�B�3ŒKˆØŒF�3�B�3ŒKˆå#6Øˆq�!�W 1ð$&ñ $&ô $&Ñ ˆ��u˜båŒhð 0ð 0ð 0ñ 1ô 1ˆð :Ð9Ð9Ð9­2¬9°R©=¬=Ð9Ñ9Ô9ˆå˜˜CÑ Ô Ð Ø˜6Ÿ>š>Ñ+Ô+Ô,ˆ	Ý˜ 	Ñ*Ô*Ð*Ð*Ð*r   c                 ó�  — | j         }| j        }| j        }| j        }t	          |||dd¬¦  «        \  }}}}t	          |||dd¬¦  «        \  }	}
}}t	          ||||gdd¬¦  «        \  }}}}t          |d         |¦  «         t          |d         |	¦  «         t          ||¦  «         t          ||¦  «         t          ||¦  «         d S )Nr/   r°   r"   r   r	   )r   r   r   r   r   r   )r'   r   r   r   r   rƒ   Úbinx1vÚbiny1vr…   r†   Úbinx1wÚbiny1wrˆ   r:   r�   r‘   ro   s                    r   Útest_2d_multi_valuesz(TestBinnedStatistic.test_2d_multi_values8  sú   € ØŒFˆØŒFˆØŒFˆØŒFˆå':Øˆq�!�V !ð(%ñ (%ô (%Ñ$ˆ�˜ å':Øˆq�!�V !ð(%ñ (%ô (%Ñ$ˆ�˜ å#6Øˆq�1�a�&˜& qð$*ñ $*ô $*Ñ ˆˆu�e˜Sõ 	˜˜aœ &Ñ)Ô)Ð)Ý˜˜aœ &Ñ)Ô)Ð)Ý˜ Ñ&Ô&Ð&Ý˜ Ñ&Ô&Ð&Ý˜˜cÑ"Ô"Ð"Ð"Ð"r   c                 ód  — | j         }| j        }| j        }t          ||dd¬¦  «        \  }}}t          ||dd¬¦  «        \  }}}t	          |||ddd¬¦  «        \  }	}
}}t          j        ||d¬	¦  «        }t          j        ||d¬	¦  «        }|||                     ¦   «         k    xx         d
z  cc<   |||                     ¦   «         k    xx         d
z  cc<   t          ||d         ¦  «         t          ||d
         ¦  «         t          ||d         ¦  «         t          ||d
         ¦  «         d S )Nr/   rc   r"   r!   )rc   r!   T©r#   Úexpand_binnumbersÚright)Úsider	   r   )	r   r   r   r   r   r%   Úsearchsortedr^   r   )r'   r   r   r   ÚstatÚedgesxÚbcxÚedgesyÚbcyr:   Úedgesx2Úedgesy2ro   Úbcx3Úbcy3s                  r   Útest_2d_binnumbers_unraveledz0TestBinnedStatistic.test_2d_binnumbers_unraveledK  sT  € ØŒFˆØŒFˆØŒFˆå,¨Q°°6ÀÐCÑCÔCÑˆˆf�cÝ,¨Q°°6ÀÐCÑCÔCÑˆˆf�cå':Øˆq�!�V (¸dð(Dñ (Dô (DÑ$ˆˆw˜ õ Œ˜v q¨wÐ7Ñ7Ô7ˆÝŒ˜v q¨wÐ7Ñ7Ô7ˆð 	ˆQ�!—%’%‘'”'Š\ÐÐÔ˜aÑÐÐÑØˆQ�!—%’%‘'”'Š\ÐÐÔ˜aÑÐÐÑå˜˜S œVÑ$Ô$Ð$Ý˜˜S œVÑ$Ô$Ð$Ý˜˜c !œfÑ%Ô%Ð%Ý˜˜c !œfÑ%Ô%Ð%Ð%Ð%r   c                 óÂ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          j        |d¬¦  «        \  }}t          ||¦  «         t          ||¦  «         d S )Nr    r   r"   )r   r   r   r%   Úhistogramddr   )r'   r   r   r(   r)   r*   r+   r,   s           r   Útest_dd_countz!TestBinnedStatistic.test_dd_countb  sk   € ØŒFˆØŒFˆå0°°A°wÀQÐGÑGÔGÑˆ�˜Ýœ¨°Ð2Ñ2Ô2‰ˆ�å˜ Ñ'Ô'Ð'Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 ól   — | j         }| j        }t          ||dd¬¦  «        }d}t          ||¦  «         d S )Nr    r   r"   rH   )r   r   r   r
   )r'   r   r   rK   rL   s        r   Útest_dd_result_attributesz-TestBinnedStatistic.test_dd_result_attributesl  sA   € ØŒFˆØŒFˆå! ! Q¨°aÐ8Ñ8Ô8ˆØ<ˆ
Ý˜C Ñ,Ô,Ð,Ð,Ð,r   c                 óF  — | j         }| j        }t          ||dd¬¦  «        \  }}}t          j        |d|¬¦  «        \  }}t          ||t          j        d¬¦  «        \  }}	}t          ||¦  «         t          ||¦  «         t          ||¦  «         t          ||	¦  «         d S )Nr1   r   r"   rO   )r   r   r   r%   rÌ   r1   r   )
r'   r   r   rQ   r)   r*   rR   r,   Úsum3Úedges3s
             r   Útest_dd_sumzTestBinnedStatistic.test_dd_sumt  s¬   € ØŒFˆØŒFˆå.¨q°!°UÀÐCÑCÔCÑˆˆf�bÝ”~ a¨a¸Ð;Ñ;Ô;‰ˆˆfÝ.¨q°!µR´VÀ!ÐDÑDÔDÑˆˆf�bå˜˜dÑ#Ô#Ð#Ý˜ Ñ'Ô'Ð'Ý˜˜dÑ#Ô#Ð#Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 óÒ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S )Nr/   r   r"   )r   r   r   r%   r/   r   ©r'   r   r   r9   r)   r*   r:   r,   s           r   Útest_dd_meanz TestBinnedStatistic.test_dd_mean�  sr   € ØŒFˆØŒFˆå/°°1°fÀ1ÐEÑEÔEÑˆˆv�rÝ/°°1µb´gÀAÐFÑFÔFÑˆˆv�rå˜˜uÑ%Ô%Ð%Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 óÒ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S )Nr7   r   r"   )r   r   r   r%   r7   r   rÕ   s           r   Útest_dd_stdzTestBinnedStatistic.test_dd_std‹  ór   € ØŒFˆØŒFˆå/°°1°eÀ!ÐDÑDÔDÑˆˆv�rÝ/°°1µb´fÀ1ÐEÑEÔEÑˆˆv�rå˜˜uÑ%Ô%Ð%Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 óÒ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S )Nr[   r   r"   )r   r   r   r%   r[   r   rÕ   s           r   Útest_dd_minzTestBinnedStatistic.test_dd_min•  rÙ   r   c                 óÒ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S )Nr^   r   r"   )r   r   r   r%   r^   r   rÕ   s           r   Útest_dd_maxzTestBinnedStatistic.test_dd_maxŸ  rÙ   r   c                 óÒ   — | j         }| j        }t          ||dd¬¦  «        \  }}}t          ||t          j        d¬¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S )Nr0   r   r"   )r   r   r   r%   r0   r   rÕ   s           r   Útest_dd_medianz"TestBinnedStatistic.test_dd_median©  sr   € ØŒFˆØŒFˆå/°°1°hÀQÐGÑGÔGÑˆˆv�rÝ/°°1µb´iÀaÐHÑHÔHÑˆˆv�rå˜˜uÑ%Ô%Ð%Ý˜ Ñ'Ô'Ð'Ð'Ð'r   c                 óR  ‡— | j         d d…         }| j        d d…         }t          ||dd¬¦  «        \  }}Št          j        g d¢¦  «        }ˆfd„t          j        ‰¦  «        D ¦   «         }t          ‰|¦  «         ||                     ¦   «                  }t          ||¦  «         d S )Nrc   r    r   r"   )é?   é!   éV   éS   éX   éC   é9   râ   é*   é)   éR   rä   é\   é    é$   é[   é+   éW   éQ   rñ   c                 ó@   •— g | ]}‰|k                          ¦   «         ‘ŒS rf   rg   rh   s     €r   rk   z7TestBinnedStatistic.test_dd_bincode.<locals>.<listcomp>»  rl   r   )r   r   r   r%   rm   rn   r   r²   )	r'   r   r   r(   r)   ro   rp   r³   r*   s	           @r   Útest_dd_bincodez#TestBinnedStatistic.test_dd_bincode³  s»   ø€ ØŒF�3�B�3ŒKˆØŒF�3�B�3ŒKˆå0°°A°wÀQÐGÑGÔGÑˆ�˜ÝŒhð 4ð 4ð 4ñ 5ô 5ˆð :Ð9Ð9Ð9­2¬9°R©=¬=Ð9Ñ9Ô9ˆå˜˜CÑ Ô Ð Ø˜6Ÿ>š>Ñ+Ô+Ô,ˆ	Ý˜ 	Ñ*Ô*Ð*Ð*Ð*r   c                 ó¤  — | j         }| j        }| j        }dddddddt          j        fD ]¥}t          |||d¬	¦  «        \  }}}t          |||d¬	¦  «        \  }}	}
t          |||g|d¬	¦  «        \  }}}t          |d
         |¦  «         t          |d         |¦  «         t          ||¦  «         t          |	|¦  «         t          ||¦  «         Œ¦d S )Nr    r1   r/   r7   r[   r^   r0   r°   r"   r   r	   )r   r   r   r%   r7   r   r   )r'   r   r   r   rÁ   rƒ   r„   r…   r†   r‡   rˆ   r:   r,   ro   s                 r   Útest_dd_multi_valuesz(TestBinnedStatistic.test_dd_multi_valuesÁ  sü   € ØŒFˆØŒFˆØŒFˆà˜e V¨U°E¸5À(Ý”Vðð 		'ð 		'ˆDå$7¸¸1¸dÈÐ$KÑ$KÔ$KÑ!ˆF�G˜TÝ$7¸¸1¸dÈÐ$KÑ$KÔ$KÑ!ˆF�G˜TÝ!4°Q¸¸A¸ÀÈ1Ð!MÑ!MÔ!MÑˆE�6˜3Ý˜E !œH fÑ-Ô-Ð-Ý˜E !œH fÑ-Ô-Ð-Ý˜G VÑ,Ô,Ð,Ý˜G VÑ,Ô,Ð,Ý˜D #Ñ&Ô&Ð&Ð&ð		'ð 		'r   c                 óœ  — | j         }| j        }t          |d d …df         |dd¬¦  «        \  }}}t          |d d …df         |dd¬¦  «        \  }}}t          |d d …df         |dd¬¦  «        \  }}}	t          ||dd	d
¬¦  «        \  }
}}t	          ||d         ¦  «         t	          ||d         ¦  «         t	          |	|d         ¦  «         d S )Nr   r/   rt   r"   r	   rc   rd   r!   )rt   rc   r!   Tr¼   )r   r   r   r   r   )r'   r   r   rÁ   rÂ   rÃ   rÄ   rÅ   ÚedgeszÚbczr:   r,   ro   s                r   Útest_dd_binnumbers_unraveledz0TestBinnedStatistic.test_dd_binnumbers_unraveledÑ  sø   € ØŒFˆØŒFˆå,¨Q¨q¨q¨q°!¨t¬W°a¸ÀbÐIÑIÔIÑˆˆf�cÝ,¨Q¨q¨q¨q°!¨t¬W°a¸ÀbÐIÑIÔIÑˆˆf�cÝ,¨Q¨q¨q¨q°!¨t¬W°a¸ÀbÐIÑIÔIÑˆˆf�cå0Øˆq�&˜|¸tðEñ Eô EÑˆˆv�sõ 	˜˜S œVÑ$Ô$Ð$Ý˜˜S œVÑ$Ô$Ð$Ý˜˜S œVÑ$Ô$Ð$Ð$Ð$r   c                 ó@  — t           j                             d¦  «        }t           j                             d¦  «        }t          j        ddd¦  «        }|||f}t          ||d|¬¦  «        }|j        }t          ||d|¬¦  «        }|j        }t          ||¦  «         d S )	N©é'  r   rü   r   r	   r!   r/   r"   )Úbinned_statistic_result)r%   rx   Úlinspacer   r3   r   )r'   r   r   r#   ÚresultrÁ   r:   s          r   Útest_dd_binned_statistic_resultz3TestBinnedStatistic.test_dd_binned_statistic_resultà  s§   € åŒI×Ò˜ZÑ(Ô(ˆÝŒI×Ò˜UÑ#Ô#ˆÝŒ{˜1˜a Ñ$Ô$ˆØ�d˜DÐ!ˆå$ Q¨¨6¸Ð=Ñ=Ô=ˆØÔˆå$ Q¨¨6Ø=CðEñ Eô EˆàÔ ˆå˜˜eÑ$Ô$Ð$Ð$Ð$r   c                 óf  — t           j                             d¦  «        }t           j                             d¦  «        }t          j        ddd¦  «        }t          j        |d¦  «        }|||f}t	          t
          d¬¦  «        5  t          ||d|¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nrû   rü   r   r	   r!   zdifference is numerically 0©Úmatchr/   r"   )r%   rx   rþ   ÚappendrA   rB   r   )r'   r   r   r#   s       r   Útest_dd_zero_dedgesz'TestBinnedStatistic.test_dd_zero_dedgesð  së   € ÝŒI×Ò˜ZÑ(Ô(ˆÝŒI×Ò˜UÑ#Ô#ˆÝŒ{˜1˜a Ñ$Ô$ˆÝŒy˜˜qÑ!Ô!ˆØ�d˜DÐ!ˆÝ�:Ð-JÐKÑKÔKð 	9ð 	9Ý  1 f°4Ð8Ñ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	9ð 	9s   ÂB&Â&B*Â-B*c                 ó¨  — t          t          d¬¦  «        5  t          | j        g| j        ddgg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          | j        | j        g| j        ddgddgg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          | j        | j        g| j        ddgddgg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        5  t          | j        | j        g| j        ddgg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NzIn range, start must be <= stopr  r	   r   rv   z.In dimension 1 of range, start must be <= stopz.In dimension 2 of range, start must be <= stopz(range given for 1 dimensions; 2 required)rA   rB   r   r   r   r   )r'   s    r   Útest_dd_range_errorsz(TestBinnedStatistic.test_dd_range_errorsù  s¯  € õ �:Ø!BðDñ Dô Dð 	0ð 	0å ¤ ¨$¬&Ø()¨1 v hð0ñ 0ô 0ð 0ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0õ ÝØFðHñ Hô Hð 	8ð 	8õ   ¤¨¬Ð 0°$´&Ø()¨1 v°°1¨vÐ&6ð8ñ 8ô 8ð 8ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8õ
 ÝØFðHñ Hô Hð 	8ð 	8õ   ¤¨¬Ð 0°$´&Ø()¨1 v°°1¨vÐ&6ð8ñ 8ô 8ð 8ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8õ
 ÝØ@ðBñ Bô Bð 	0ð 	0õ   ¤¨¬Ð 0°$´&Ø()¨1 v hð0ñ 0ô 0ð 0ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0sG   —!AÁAÁAÁ%*BÂBÂ"BÂ<*C2Ã2C6Ã9C6Ä'EÅEÅEc                 óØ   — t          j        ddgt           j        ¬¦  «        }t          |d dd¬¦  «        \  }}}t	          |t          j        g d¢t           j        ¬¦  «        ¦  «         d S )Nr   gÂhwÄøÛ?)Údtyper    r‹   r"   )r	   r   r   r   r	   )r%   rm   Úfloat32r   r   Úfloat64)r'   r   rÁ   r|   s       r   Útest_binned_statistic_float32z1TestBinnedStatistic.test_binned_statistic_float32  sc   € ÝŒH�a˜�_­B¬JÐ7Ñ7Ô7ˆÝ% a¨¨w¸QÐ?Ñ?Ô?‰
ˆˆa�Ý˜�bœh   ½b¼jÐIÑIÔIÑJÔJÐJÐJÐJr   c                 ób  — g }d}t          |¦  «        D ]}|dd|z  z
  gz  }Œt          j        ddd¦  «        }t          |t          j        t          |¦  «        ¦  «        |gd¬¦  «        \  }}}t          j        ||¬¦  «        \  }}	t          ||¦  «         t          |d         |	¦  «         d S )	Nrc   r	   gš™™™™™¹?r   r«   r1   )r#   r3   r"   )rw   r%   rþ   r   ÚonesÚlenr&   r   )
r'   r   r   rj   r#   rQ   r)   r*   rR   r,   s
             r   Útest_gh14332z TestBinnedStatistic.test_gh14332  sÂ   € àˆØˆÝ�t‘”ð 	ð 	ˆAØ�!�C˜‘F‘(�‰OˆAˆAåŒ{˜1˜Q˜rÑ"Ô"ˆÝ.¨qµ"´'½#¸a¹&¼&±/´/Ø59°FÀeðMñ Mô MÑˆˆf�bå”| A¨DÐ1Ñ1Ô1‰ˆˆfå˜˜dÑ#Ô#Ð#Ý˜˜qœ	 6Ñ*Ô*Ð*Ð*Ð*r   r	  r3   r    c                 ó0   — | dz                        ¦   «         S )Nrd   rg   ©r   s    r   ú<lambda>zTestBinnedStatistic.<lambda>'  s   € °a¸±d·Z²Z±\´\€ r   c                 ó6   — | dz                        ¦   «         dz  S )Nrd   ù              ð?rg   r  s    r   r  zTestBinnedStatistic.<lambda>(  s   € °a¸±d·Z²Z±\´\ÀBÑ5F€ r   c                 ó"  ‡— ˆfd„}t           j                             d¦  «        }d}|                     |¬¦  «        }|dk    }|                     |¬¦  «        }|t           j        u r||                     |¬¦  «        dz  z   }t	          ||‰d¬¦  «        \  }	}
}
t          j         |||          ¦  «         |||         ¦  «        g¦  «        }t          |	|¦  «         |	j        t          j        |j        t           j	        ¦  «        k    sJ ‚d S )	Nc                 óD   •— ‰dk    rt          | ¦  «        n
 ‰| ¦  «        S )Nr    )r  )r   r3   s    €r   Úref_statisticz6TestBinnedStatistic.test_dd_all.<locals>.ref_statistic*  s%   ø€ Ø&¨'Ò1Ð1•3�q‘6”6�6°y°yÀ±|´|ÐCr   l   #tÆ%i r!   r   g      à?r  rd   r"   )
r%   rx   Údefault_rngÚ
complex128r   rm   r   r	  Úresult_typer  )r'   r	  r3   r  r   Únr   rj   r   rÁ   r|   Úrefs     `         r   Útest_dd_allzTestBinnedStatistic.test_dd_all$  s  ø€ ð	Dð 	Dð 	Dð 	Dð 	Dõ Œi×#Ò#Ð$4Ñ5Ô5ˆØˆØ�JŠJ˜AˆJÑÔˆØ�ŠHˆØ�JŠJ˜AˆJÑÔˆØ•B”MÐ!Ð!Ø�C—J’J A�JÑ&Ô& rÑ)Ñ)ˆAå(¨¨A¨y¸qÐAÑAÔA‰
ˆˆa�ÝŒh˜˜ a¨¨¤eÑ,Ô,¨m¨m¸A¸a¼DÑ.AÔ.AÐBÑCÔCˆÝ˜˜cÑ"Ô"Ð"ØŒz�Rœ^¨C¬Iµr´zÑBÔBÒBÐBÐBÐBÐBÐBr   N)=Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r-   r4   r;   r>   rF   rM   rS   rV   rX   r\   r_   ra   rq   r�   r‰   r’   r–   r˜   r�   rŸ   r¡   r¤   r¦   r¨   r´   rº   rÊ   rÍ   rÏ   rÓ   rÖ   rØ   rÛ   rÝ   rß   ró   rõ   rù   r   r  r  r  r  ÚpytestÚmarkÚparametrizer%   r  r  r/   r0   r1   r7   r[   r^   r  rf   r   r   r   r      sD  € € € € € àð,ð ,ñ „[ð,ð(ð (ð (ð7ð 7ð 7ð&ð &ð &ð&ð &ð &ðð ð ð -ð -ð -ð(ð (ð (ð(ð (ð (ð(ð (ð (ð(ð (ð (ð(ð (ð (ð(ð (ð (ð(ð (ð (ð+ð +ð +ð#ð #ð #ð&ð &ð &ð-ð -ð -ð
&ð 
&ð 
&ð
&ð 
&ð 
&ð	&ð 	&ð 	&ð
&ð 
&ð 
&ð
&ð 
&ð 
&ð
&ð 
&ð 
&ð&ð &ð &ð+ð +ð +ð #ð #ð #ð&&ð &ð &ð.(ð (ð (ð-ð -ð -ð(ð (ð (ð(ð (ð (ð(ð (ð (ð(ð (ð (ð(ð (ð (ð(ð (ð (ð+ð +ð +ð'ð 'ð 'ð %ð %ð %ð%ð %ð %ð 9ð 9ð 9ð0ð 0ð 0ð.Kð Kð Kð
+ð +ð +ð „[×Ò˜W r¤z°2´=Ð&AÑBÔBØ„[×Ò˜[¨2¬7°B´I¸r¼vÀrÄvØ+-¬6°2´6¸7Ø+AÐ+AØ+FÐ+Fð+Hñ Iô IðCð Cñ	Iô Iñ CÔBð
Cð Cð Cr   r   )Únumpyr%   Únumpy.testingr   r#  r   rA   Úscipy.statsr   r   r   Úscipy._lib._utilr   Úcommon_testsr
   r   rf   r   r   ú<module>r+     sÚ   ðØ Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø €€€Ø *Ð *Ð *Ð *Ð *Ð *ð.ð .ð .ð .ð .ð .ð .ð .ð .ð .à /Ð /Ð /Ð /Ð /Ð /à -Ð -Ð -Ð -Ð -Ð -ðlCð lCð lCð lCð lCñ lCô lCð lCð lCð lCr   