o
    �¨Êh´]  ã                	   @   s  d Z ddlZddlZddlZddlmZ ddlmZ ddl	Z
ddlmZ ddlmZmZ dd„ Zejdd	„ ƒZejd
d„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zejj d d!�d"d#„ ƒZ!ejj d d!�d$d%„ ƒZ"d&d'„ Z#d(d)„ Z$d*d+„ Z%d,d-„ Z&d.d/„ Z'ej (d0ej)e *d1¡e+d1ƒde
j,g¡d2d3„ ƒZ-ej (d4d5d6g¡d7d8„ ƒZ.d9d:„ Z/d;d<„ Z0d=d>„ Z1ej (d?d5d6g¡ejj d@d!�dAdB„ ƒƒZ2ej (d?d5d6g¡ejj d@d!�dCdD„ ƒƒZ3ej (dEdFdGg¡ej (d?d5d6g¡dHdI„ ƒƒZ4ej (dEdFdGg¡ej (dJe
j5e
j6g¡dKdL„ ƒƒZ7dMdN„ Z8dOdP„ Z9ej :dQ¡dRdS„ ƒZ;ej :dQ¡dTdU„ ƒZ<dVdW„ Z=dXdY„ Z>ej (dZg d[¢e 6g d\¢¡fg d]¢e 6g d^¢¡fg¡d_d`„ ƒZ?dadb„ Z@ej (dcejAejBej*g¡ddde„ ƒZCdfdg„ ZDdhdi„ ZEdjdk„ ZFdldm„ ZGdndo„ ZHdpdq„ ZIdS )rz—
This module tests the functionality of StringArray and ArrowStringArray.
Tests for the str accessors are in pandas/tests/strings/test_string_array.py
é    N)Úpa_version_under12p0)Úis_dtype_equal)ÚArrowStringArrayÚArrowStringArrayNumpySemanticsc                 C   s   | j dkrtjS tjS )NÚpyarrow_numpy)ÚstorageÚnpÚnanÚpdÚNA©Údtype© r   úY/var/www/html/env/lib/python3.10/site-packages/pandas/tests/arrays/string_/test_string.pyÚna_val   s   
r   c                 C   s   t j| d�S )z=Fixture giving StringDtype from parametrized 'string_storage')r   )r
   ÚStringDtype)Ústring_storager   r   r   r      s   r   c                 C   s   |   ¡ S )z3Fixture giving array type from parametrized 'dtype')Úconstruct_array_typer   r   r   r   Úcls#   s   r   c                 C   sÊ   t  dt jdt jdg| d�i¡}| jdkrd}nd}t|ƒ|ks"J ‚| jdkr*d}nd	}t|jƒ|ks5J ‚| jd
krCd}d|› d�}n| jdkrQd}d|› d�}nd}d|› d�}t|jjƒ|kscJ ‚d S )NÚAÚaÚbr   r   z     A
0    a
1  NaN
2    bz      A
0     a
1  <NA>
2     bz10      a
1    NaN
2      b
Name: A, dtype: stringz40       a
1    <NA>
2       b
Name: A, dtype: stringÚpyarrowr   ú<z+>
['a', <NA>, 'b']
Length: 3, dtype: stringr   z*>
['a', nan, 'b']
Length: 3, dtype: stringÚStringArray)r
   Ú	DataFrameÚarrayr   r   Úreprr   )r   ÚdfÚexpectedÚarr_namer   r   r   Ú	test_repr)   s$    



r!   c                 C   s<   | j g d¢|d�}|d d usJ ‚|d t|jƒu sJ ‚d S )N)r   Nr   r   é   )Ú_from_sequencer   r   )r   r   r   r   r   r   Útest_none_to_nanC   s   r$   c                 C   s¾   | j ddg|d�}| tjju rd}nd}tjt|d�� d|d< W d   ƒ n1 s*w   Y  | tjju r8d	}nd}tjt|d�� t d
dg¡|d d …< W d   ƒ d S 1 sXw   Y  d S )Nr   r   r   z4Cannot set non-string value '10' into a StringArray.úScalar must be NA or str©Úmatché
   r   zMust provide strings.r"   é   )	r#   r
   Úarraysr   ÚpytestÚraisesÚ	TypeErrorr   r   )r   r   ÚarrÚmsgr   r   r   Útest_setitem_validatesI   s   
ÿ"ÿr0   c                 C   s<   t jddg| d�}d|d< t jddg| d�}t ||¡ d S )Nr   Úcr   Údr   ©r
   r   ÚtmÚassert_extension_array_equal)r   r.   r   r   r   r   Útest_setitem_with_scalar_string[   s   r6   c                 C   sf   t jg d¢| d�}t dd g¡}| ¡ }||ddg< t jdt jdg| d�}t ||¡ t ||¡ d S )N©r   r   r1   r   r   r   r"   r1   )r
   r   r   Úcopyr   r4   r5   Úassert_numpy_array_equal)r   r.   ÚvalueÚ
value_origr   r   r   r   Ú$test_setitem_with_array_with_missingd   s   r<   c                 C   s�   t  t jddd�¡}d |d< | | ¡}t|j| ƒsJ ‚| d¡}t ||¡ ||jd  }| | ¡}t|j| ƒs:J ‚| |j¡}t ||¡ d S )NÚ2000é   )Úperiodsr   zdatetime64[ns]éÿÿÿÿ)	r
   ÚSeriesÚ
date_rangeÚastyper   r   r4   Úassert_series_equalÚiloc)r   ÚserÚcastedÚresultÚser2Úcasted2Úresult2r   r   r   Útest_astype_roundtripq   s   


rL   c                 C   s¸   t jg d¢| d�}t jg d¢| d�}|| }t jg d¢| d�}t ||¡ | |¡}t ||¡ | |¡}t jg d¢| d�}t ||¡ |j|dd�}t jg d¢| d�}t ||¡ d S )	N)r   r   r1   NNr   )ÚxÚyNÚzN)ÚaxÚbyNNN)ÚxaÚybNNNú-)Ú
fill_value)rP   rQ   zc-z-zN)r
   rA   r4   rD   ÚaddÚradd)r   r   r   rH   r   r   r   r   Útest_add„   s   

rX   c                 C   sÊ   | j |v rd}tjjd |d�}| |¡ tjg d¢| d�}tjg d¢gtd�}tj	t
dd�� ||  W d   ƒ n1 s=w   Y  t |¡}tj	t
dd�� ||  W d   ƒ d S 1 s^w   Y  d S )Nz*Failed: DID NOT RAISE <class 'ValueError'>©r,   Úreasonr7   r   z3 != 1r&   )r   r+   ÚmarkÚxfailÚapplymarkerr
   r   r   Úobjectr,   Ú
ValueErrorrA   )r   ÚrequestÚarrow_string_storagerZ   r[   r   r   Úsr   r   r   Útest_add_2d˜   s   


ÿ

"ÿrc   c                 C   sj   t jg d¢| d�}g d¢}|| }t jg d¢| d�}t ||¡ || }t jg d¢| d�}t ||¡ d S )N)r   r   NNr   )rM   NrN   N)rP   NNN)rR   NNNr3   )r   r   ÚotherrH   r   r   r   r   Útest_add_sequence¨   s   re   c                 C   sP   t jg d¢| d�}|d }t jg d¢| d�}t ||¡ d| }t ||¡ d S )N©r   r   Nr   r)   )ÚaaÚbbNr3   )r   r   rH   r   r   r   r   Útest_mulµ   s   ri   zGH-28527©rZ   c                 C   s�   t jg d¢| d�}t jg d¢gtd�}| |¡tu sJ ‚|| }t  g d¢g¡ | ¡}t ||¡ || }t  g d¢g¡ | ¡}t ||¡ d S )N)r   r   r1   r2   r   )ÚtrN   ÚvÚw)ÚatrQ   ÚcvÚdw)ÚtarS   ÚvcÚwd)	r
   r   r   r^   Ú__add__ÚNotImplementedrC   r4   Úassert_frame_equal©r   r.   r   rH   r   r   r   r   Útest_add_strings¿   s   rx   c                 C   s°   t jddtjtjg| d�}t  dtjdtjgg¡}| |¡tu s"J ‚|| }t  dtjtjtjgg¡ | ¡}t 	||¡ || }t  dtjtjtjgg¡ | ¡}t 	||¡ d S )Nr   r   r   rM   rN   rP   rR   )
r
   r   r   r	   r   rt   ru   rC   r4   rv   rw   r   r   r   Útest_add_frameÎ   s     ry   c                    sØ   d| j › d�‰ tjg d¢|d�}d‰t|ˆ ƒˆƒ}|jdkrEt ‡ ‡fdd„|D ƒ¡}| tjkr5d|d	< nd
|d	< t 	|| 
tj¡¡ d S |jdkrLdnd}tj‡ ‡fdd„|D ƒtd�}tj||d�}t ||¡ d S )NÚ__©r   Nr1   r   r   r   c                    ó   g | ]	}t |ˆ ƒˆƒ‘qS r   ©Úgetattr©Ú.0Úitem©Úop_namerd   r   r   Ú
<listcomp>ä   ó    z2test_comparison_methods_scalar.<locals>.<listcomp>Tr"   Fr   úboolean[pyarrow]Úbooleanc                    r|   r   r}   r   r‚   r   r   r„   ì   r…   )Ú__name__r
   r   r~   r   r   ÚoperatorÚner4   r9   rC   Úbool_r^   r5   )Úcomparison_opr   r   rH   r   Úexpected_dtyper   r‚   r   Útest_comparison_methods_scalarÞ   s   


rŽ   c                 C   s²   d| j › d�}tjg d¢|d�}t||ƒtjƒ}|jdkr9tj| kr*t g d¢¡}nt g d¢¡}t	 
||¡ d S |jdkr@dnd	}tjg d
¢|d�}t	 ||¡ t	 ||¡ d S )Nrz   r{   r   r   ©TTT©FFFr   r†   r‡   ©NNN)rˆ   r
   r   r~   r   r   r‰   rŠ   r   r4   r9   r5   )rŒ   r   rƒ   r   rH   r   r�   r   r   r   Ú$test_comparison_methods_scalar_pd_nañ   s   

r’   c           	      C   sü   d| j › d�}tjg d¢|d�}d}|dvr7tjtdd�� t||ƒ|ƒ W d   ƒ d S 1 s0w   Y  d S t||ƒ|ƒ}|jdkr[g d	¢g d
¢dœ| }t |¡}t	 
||¡ d S g d¢g d¢dœ| }|jdkrmdnd}tj||d�}t	 ||¡ d S )Nrz   r{   r   é*   )Ú__eq__Ú__ne__z(Invalid comparison|not supported betweenr&   r   r�   r�   )FNF)TNTr   r†   r‡   )rˆ   r
   r   r+   r,   r-   r~   r   r   r4   r9   r5   )	rŒ   r   rƒ   r   rd   rH   Úexpected_datar   r�   r   r   r   Ú)test_comparison_methods_scalar_not_string  s2   
ÿý
þý
ÿr—   c                 C   sb  d| j › d�}tjg d¢|d�}g d¢}t||ƒ|ƒ}|jdkrktj| kr-t g d¢¡}nt g d¢¡}t|d |ƒ|d ƒ|d< t 	||¡ t||ƒtj
ƒ}tj| kr\t g d	¢¡}nt g d¢¡}t 	||¡ d S |jd
krrdnd}tjt|ƒd dd�}t|d |ƒ|d ƒ|d< tj||d�}t ||¡ t||ƒtj
ƒ}tjg d¢|d�}t ||¡ d S )Nrz   r{   r   )NNr1   r   )TTFr�   r@   r�   r   r†   r‡   r^   )rU   r   r‘   )rˆ   r
   r   r~   r   r‰   rŠ   r   r4   r9   r   ÚfullÚlenr5   )rŒ   r   rƒ   r   rd   rH   r   r�   r   r   r   Útest_comparison_methods_array!  s.   


rš   c                 C   sB  | t jju r	d}nd}tjt|d�� | tjddgdd�ƒ W d   ƒ n1 s(w   Y  tjt|d�� | t g ¡ƒ W d   ƒ n1 sFw   Y  | t jju ri| tjdtjgt	d�ƒ | tjdd gt	d�ƒ nEtjt|d�� | tjdtjgt	d�ƒ W d   ƒ n1 s‡w   Y  tjt|d�� | tjdd gt	d�ƒ W d   ƒ n1 s©w   Y  tjt|d�� | tjdt j
gt	d�ƒ W d   ƒ n1 sÌw   Y  tjt|d�� | tjdt dd	¡gt	d�ƒ W d   ƒ n1 sòw   Y  tjt|d�� | tjdt dd	¡gt	d�ƒ W d   ƒ d S 1 �sw   Y  d S )
Nz7StringArray requires a sequence of strings or pandas.NAzBUnsupported type '<class 'numpy.ndarray'>' for ArrowExtensionArrayr&   r   r   ÚS1r   ÚNaTÚns)r
   r*   r   r+   r,   r_   r   r   r	   r^   rœ   Ú
datetime64Útimedelta64)r   r/   r   r   r   Útest_constructor_raisesB  s6   ÿÿÿÿÿ ÿ $ÿr    Únar	   c                 C   s>   t j t dt jg¡¡}t t j tjd| gdd�¡|¡ d S )Nr   r^   r   )r
   r*   r   r   r   r   r4   r5   )r¡   r   r   r   r   Útest_constructor_nan_likec  s   ÿr¢   r8   TFc           	      C   s’   t jdt jgtd�}| ¡ }t jdtjgtd�}|j||| d�}|tt	fv r7dd l
}||j|| ¡ dd�ƒ}n||ƒ}t ||¡ t ||¡ d S )Nr   r   )r   r8   r   T©ÚtypeÚfrom_pandas)r   r   r	   r^   r8   r
   r   r#   r   r   r   Ústringr4   r5   r9   )	r8   r   r   Únan_arrÚexpected_inputÚna_arrrH   Úpar   r   r   r   Útest_from_sequence_no_mutatek  s   r«   c                 C   sª   t jg d¢| d�}| d¡}tjg d¢dd�}t ||¡ t jdt jdg| d�}| jdkr2t}d}nt	}d	}t
j||d
�� | d¡ W d   ƒ d S 1 sNw   Y  d S )N)Ú1Ú2Ú3r   Úint64)r"   r)   é   r¬   r®   r   z#cannot convert float NaN to integerzJint\(\) argument must be a string, a bytes-like object or a( real)? numberr&   )r
   r   rC   r   r4   r9   r   r   r_   r-   r+   r,   )r   r.   rH   r   Úerrr/   r   r   r   Útest_astype_int~  s   

ÿ"ÿr²   c                 C   sF   t jdt jdg| d�}| d¡}t jdt jdgdd�}t ||¡ d S )Nr¬   r®   r   ÚInt64r"   r°   )r
   r   r   rC   r4   r5   ©r   r.   rH   r   r   r   r   Útest_astype_nullable_int’  s   
rµ   c                 C   sF   t jdt jdg| d�}| |¡}t jdtjdg|d�}t ||¡ d S )Nz1.1z3.3r   gš™™™™™ñ?gffffff
@)r
   rA   r   rC   r   r	   r4   rD   )r   Úany_float_dtyperF   rH   r   r   r   r   Útest_astype_floatš  s   
r·   ÚskipnazNot implemented StringArray.sumc                 C   s.   t jg d¢|d�}|j| d�}|dksJ ‚d S )Nr7   r   ©r¸   Úabc)r
   rA   Úsum©r¸   r   r.   rH   r   r   r   Útest_reduce¢  s   r½   c                 C   sD   t jg d¢|d�}|j| d�}| r|dksJ ‚d S t  |¡s J ‚d S )N)Nr   Nr   r1   Nr   r¹   rº   )r
   rA   r»   Úisnar¼   r   r   r   Útest_reduce_missingª  s
   r¿   ÚmethodÚminÚmaxc                 C   s\   t jg d¢|d�}t|| ƒ|d�}|r#| dkrdnd}||ks!J ‚d S |t|jƒu s,J ‚d S )N©r   r   r1   Nr   r¹   rÁ   r   r1   )r
   rA   r~   r   r   )rÀ   r¸   r   r.   rH   r   r   r   r   Útest_min_maxµ  s   rÄ   Úboxc           
      C   s€   |j |v r!|tju r!|tju rd}nd}tjjt|d�}| |¡ |g d¢|d�}tt	| ƒ|ƒ}| dkr6dnd}	||	ks>J ‚d S )	Nz<'<=' not supported between instances of 'str' and 'NoneType'z0'ArrowStringArray' object has no attribute 'max'rY   rÃ   r   rÁ   r   r1   )
r   r
   r   r+   r[   r\   r-   r]   r~   r   )
rÀ   rÅ   r   r`   ra   rZ   r[   r.   rH   r   r   r   r   Útest_min_max_numpyÁ  s   

rÆ   c                 C   sÂ   t jdt jg| d�}|jdd�}t jddg| d�}t ||¡ |jt d¡d�}t jddg| d�}t ||¡ | j|v r?d}nd}t	j
t|d�� |jdd� W d   ƒ d S 1 sZw   Y  d S )	Nr   r   r   )r:   z"Invalid value '1' for dtype stringz3Cannot set non-string value '1' into a StringArray.r&   r"   )r
   r   r   Úfillnar4   r5   r   Ústr_r   r+   r,   r-   )r   ra   r.   Úresr   r/   r   r   r   Útest_fillna_argsÒ  s   
"ÿrÊ   c                 C   sŽ   t  d¡}dd lm} tjg d¢| d�}| |¡}|jt|ƒ| ¡ dd�}| jdv r1t	r1| 
|¡}| jdkr>| || ¡ ¡}| |¡sEJ ‚d S )	Nr   r   r7   r   Tr£   )r   r   Úpython)r+   ÚimportorskipÚpyarrow.computeÚcomputer
   r   ÚlistÚlarge_stringr   r   Úchunked_arrayÚcastr¦   Úequals)r   rª   ÚpcÚdatar.   r   r   r   r   Útest_arrow_arrayç  s   



rÖ   z0ignore:Passing a BlockManager:DeprecationWarningc           
      C   s  t  d¡}|r|dkr| t jjdd�¡ tjg d¢| d�}t d|i¡}| |¡}| j	dkr:| 
d¡jd	ks9J ‚n
| 
d¡jd
ksDJ ‚t d|¡� | ¡ }W d   ƒ n1 sYw   Y  t|d jtjƒsiJ ‚| d|› d�¡}	t ||	¡ |jd t|d jƒu s†J ‚d S )Nr   r   ú1infer_string takes precedence over string storagerj   rf   r   r   rË   r¦   rÐ   r   ústring[ú])r)   r   )r+   rÌ   r]   r[   r\   r
   r   r   Útabler   Úfieldr¤   Úoption_contextÚ	to_pandasÚ
isinstancer   r   rC   r4   rv   Úlocr   ©
r   Ústring_storage2r`   Úusing_infer_stringrª   rÕ   r   rÚ   rH   r   r   r   r   Útest_arrow_roundtripö  s(   
ÿÿ


ÿ rã   c           
      C   s  t  d¡}|r|dkr| t jjdd�¡ tjg | d�}t d|i¡}| |¡}| j	dkr8| 
d¡jdks7J ‚n
| 
d¡jd	ksBJ ‚|j|jg | ¡ d
�g|jd�}t d|¡� | ¡ }W d   ƒ n1 sgw   Y  t|d jtjƒswJ ‚| d|› d�¡}	t ||	¡ d S )Nr   r   r×   rj   r   r   rË   r¦   rÐ   )r¤   )Úschemar   rØ   rÙ   )r+   rÌ   r]   r[   r\   r
   r   r   rÚ   r   rÛ   r¤   rÑ   r¦   rä   rÜ   rÝ   rÞ   r   r   rC   r4   rv   rà   r   r   r   Ú test_arrow_load_from_zero_chunks  s(   
ÿÿ

 
ÿrå   c                 C   s¸   t | ddƒdkrd}nt | ddƒdkrd}nd}tjdd	dtjg| d
�}|jdd�}tjg d¢|g d¢ |dd�}t ||¡ |jdd�}tjddg|d d… |dd�}t ||¡ d S )Nr   Ú r   zint64[pyarrow]r   r¯   r³   r   r   r   F)Údropna)r)   r"   r"   )r   r"   r°   Úcount©Úindexr   ÚnameTr)   r"   )r~   r
   r   r   Úvalue_countsrA   r4   rD   )r   Ú	exp_dtyper.   rH   r   r   r   r   Útest_value_counts_na0  s   rî   c                 C   sˆ   t | ddƒdkrd}nt | ddƒdkrtj}nd}tjdddtjg| d	�}|jd
d�}tjddg|d d… |dd�d }t ||¡ d S )Nr   ræ   r   zdouble[pyarrow]r   ÚFloat64r   r   r   T)Ú	normalizer)   r"   Ú
proportionré   r°   )	r~   r   Úfloat64r
   rA   r   rì   r4   rD   )r   rí   rF   rH   r   r   r   r   Ú test_value_counts_with_normalizeA  s   "ró   zvalues, expectedr7   r�   rf   )FFTc              	   C   sÞ   t j| |d�} d}tjt|d��U t  dd¡�6 |  ¡ }t ||¡ t  | ¡ ¡ }t  |¡}t 	||¡ t  
| ¡ ¡ }t  
|¡}t ||¡ W d   ƒ n1 sPw   Y  W d   ƒ d S W d   ƒ d S 1 shw   Y  d S )Nr   z"use_inf_as_na option is deprecatedr&   zmode.use_inf_as_naT)r
   r   r4   Úassert_produces_warningÚFutureWarningrÜ   r¾   r9   rA   rD   r   rv   )Úvaluesr   r   r/   rH   r   r   r   Útest_use_inf_as_naN  s    	

öÿ"ÿr÷   c                 C   sf   | j |v rt d| j › �¡ tjg d¢| d�}d|j  k r.| ¡   kr.|jdd�k s1J ‚ J ‚d S )Nznot applicable for r7   r   r   T)Údeep)r   r+   Úskipr
   rA   ÚnbytesÚmemory_usage)r   ra   Úseriesr   r   r   Útest_memory_usageg  s   
8rý   Úfloat_dtypec                 C   s:   t jdg| d�}| |¡}t jdg|d�}t ||¡ d S )Ngš™™™™™¹?r   z0.1)r
   rA   rC   r4   rD   )rþ   r   rF   rH   r   r   r   r   Útest_astype_from_float_dtyper  s   
rÿ   c                 C   sH   t jdt jdg| d�}t |¡}tjdt| ƒdgtd�}t ||¡ d S )Nr   r   r   )r
   r   r   r   r   r^   r4   r9   r´   r   r   r   Ú"test_to_numpy_returns_pdna_default{  s   
r   c                 C   sJ   |}t jdt jdg| d�}|j|d�}tjd|dgtd�}t ||¡ d S )Nr   r   r   )Úna_value)r
   r   r   Úto_numpyr   r^   r4   r9   )r   Únulls_fixturer  r.   rH   r   r   r   r   Útest_to_numpy_na_value‚  s
   r  c                 C   s´   t jg d¢| d�}| ddg¡}t  g d¢¡}t ||¡ | dt jg¡}t  g d¢¡}t ||¡ | g ¡}t  g d¢¡}t ||¡ | d|g¡}t  g d¢¡}t ||¡ d S )Nrf   r   r   r1   )TFF)TFTr�   )r
   rA   Úisinr4   rD   r   )r   Úfixed_now_tsrb   rH   r   r   r   r   Ú	test_isinŠ  s   
r  c                 C   sª   t jg d¢| d�}t g d¢¡}d ||< |jd t|jƒu s J ‚t jg d¢| d�}t|jƒt jju r5d}nd}t	j
t|d�� d||< W d   ƒ d S 1 sNw   Y  d S )Nr7   r   )FTFr"   zCannot set non-string valuer%   r&   )r
   rA   r   r   r   r   r¤   r*   r   r+   r,   r-   )r   rF   Úmaskr/   r   r   r   Ú(test_setitem_scalar_with_mask_validationž  s   
"ÿr	  c                 C   sD   g d¢}t j|t jd�}tj|| d�}tj|| d�}t ||¡ d S ©Nr7   r   )r   r   rÈ   r
   r4   r5   ©r   Úvalsr.   rH   r   r   r   r   Útest_from_numpy_str²  s
   r  c                 C   s2   g d¢}t j|| d�}| ¡ }|}t ||¡ d S r
  )r
   r   Útolistr4   Úassert_equalr  r   r   r   Útest_tolistº  s
   r  )JÚ__doc__r‰   Únumpyr   r+   Úpandas.compat.pyarrowr   Úpandas.core.dtypes.commonr   Úpandasr
   Úpandas._testingÚ_testingr4   Úpandas.core.arrays.string_arrowr   r   r   Úfixturer   r   r!   r$   r0   r6   r<   rL   rX   rc   re   ri   r[   r\   rx   ry   rŽ   r’   r—   rš   r    Úparametrizer	   rò   Úfloatr   r¢   r«   r²   rµ   r·   r½   r¿   rÄ   rA   r   rÆ   rÊ   rÖ   Úfilterwarningsrã   rå   rî   ró   r÷   rý   Úfloat16Úfloat32rÿ   r   r  r  r	  r  r  r   r   r   r   Ú<module>   s˜    

	


!$!

	




þþ

