o
    
i!                     @   sT   d dl mZ d dlmZmZ d dlZd dlmZ G dd de	Z
G dd deZdS )	    )TestCase)assert_equalassert_array_equalN)msgpackc                   @   s   e Zd ZdddZdd ZdS )
ThirdParty   barc                 C   s
   || _ d S Nfoo)selfr
    r   R/home/ubuntu/.local/lib/python3.10/site-packages/srsly/tests/msgpack/test_numpy.py__init__   s   
zThirdParty.__init__c                 C   s   t |to
| j|jkS r   )
isinstancer   r
   )r   otherr   r   r   __eq__   s   zThirdParty.__eq__N)r   )__name__
__module____qualname__r   r   r   r   r   r   r      s    
r   c                   @   s   e Zd Zd>ddZdd Zdd Zd>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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/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=S )?test_numpy_msgpackFTc                 C   s   t j||d}t j||dS )N)use_bin_type)raw)r   packbunpackbr   xr   r   x_encr   r   r   encode_decode   s   z test_numpy_msgpack.encode_decodec                 C   s   t d|jdS )NT)__thirdparty__r
   )dictr
   r   objr   r   r   encode_thirdparty   s   z$test_numpy_msgpack.encode_thirdpartyc                 C   s   d|v rt |d dS |S )Ns   __thirdparty__   foor	   )r   r    r   r   r   decode_thirdparty   s   z$test_numpy_msgpack.decode_thirdpartyc                 C   s$   t j|| j|d}t j||| jdS )N)defaultr   )r   object_hook)r   r   r"   r   r$   r   r   r   r   encode_decode_thirdparty   s   z+test_numpy_msgpack.encode_decode_thirdpartyc                 C      t t| dt d S )Nr#   r   typer   bytesr   r   r   r   test_bin"   s   ztest_numpy_msgpack.test_binc                 C   r(   )Nr
   r)   r,   r   r   r   test_str'   s   ztest_numpy_msgpack.test_strc                 C   sd   t d}| |}t|| tt|t| t d}| |}t|| tt|t| d S )NTF)npbool_r   r   r*   r   r   x_recr   r   r   test_numpy_scalar_bool*   s   





z)test_numpy_msgpack.test_numpy_scalar_boolc                 C   s:   t t j }| |}t|| tt|t| d S r   )r/   float32randomrandr   r   r*   r1   r   r   r   test_numpy_scalar_float4   s   

z*test_numpy_msgpack.test_numpy_scalar_floatc                 C   sH   t t j dt j   }| |}t|| tt|t| d S N              ?)r/   	complex64r5   r6   r   r   r*   r1   r   r   r   test_numpy_scalar_complex:   s   

z,test_numpy_msgpack.test_numpy_scalar_complexc                 C   s4   t j }| |}t|| tt|t| d S r   r/   r5   r6   r   r   r*   r1   r   r   r   test_scalar_float@   s   


z$test_numpy_msgpack.test_scalar_floatc                 C   sB   t j dt j   }| |}t|| tt|t| d S r8   r<   r1   r   r   r   test_scalar_complexF   s   

z&test_numpy_msgpack.test_scalar_complexc                 C   H   dd t dD }| |}t|| tdd |D dd |D  d S )Nc                 S      g | ]
}t t j qS r   r/   r4   r5   r6   .0ir   r   r   
<listcomp>M       z<test_numpy_msgpack.test_list_numpy_float.<locals>.<listcomp>   c                 S      g | ]}t |qS r   r*   rC   er   r   r   rE   P       ranger   r   r1   r   r   r   test_list_numpy_floatL      

"z(test_numpy_msgpack.test_list_numpy_floatc                 C   sZ   dd t dD dd t dD  }| |}t|| tdd |D dd |D  d S )Nc                 S   r@   r   rA   rB   r   r   r   rE   S   rF   zDtest_numpy_msgpack.test_list_numpy_float_complex.<locals>.<listcomp>rG   c                 S   s*   g | ]}t t j d t j   qS r9   )r/   
complex128r5   r6   rB   r   r   r   rE   S   s    c                 S   rH   r   rI   rJ   r   r   r   rE   X   rL   rM   r1   r   r   r   test_list_numpy_float_complexR   s   

"z0test_numpy_msgpack.test_list_numpy_float_complexc                 C   r?   )Nc                 S   s   g | ]}t j qS r   r/   r5   r6   rB   r   r   r   rE   [   s    z6test_numpy_msgpack.test_list_float.<locals>.<listcomp>rG   c                 S   rH   r   rI   rJ   r   r   r   rE   ^   rL   rM   r1   r   r   r   test_list_floatZ   rP   z"test_numpy_msgpack.test_list_floatc                 C   r?   )Nc                 S   s$   g | ]}t j d t j   qS rQ   rT   rB   r   r   r   rE   a   s   $ z>test_numpy_msgpack.test_list_float_complex.<locals>.<listcomp>rG   c                 S   rH   r   rI   rJ   r   r   r   rE   d   rL   rM   r1   r   r   r   test_list_float_complex`   rP   z*test_numpy_msgpack.test_list_float_complexc                 C   sD   dd t dD }| |}t|| tdd |D tgd  d S )Nc                 S   s   g | ]}d | qS )   xr   rB   r   r   r   rE   g   rL   z4test_numpy_msgpack.test_list_str.<locals>.<listcomp>rG   c                 S   rH   r   rI   rJ   r   r   r   rE   j   rL   )rN   r   r   r+   r1   r   r   r   test_list_strf   s   

z test_numpy_msgpack.test_list_strc                 C      ddd}|  |}tt| t|  tdd t| D dd t| D  tt| t|  tdd t| D dd t| D  d S )N      ?       @r#   r   c                 S   rH   r   rI   rJ   r   r   r   rE   q   rL   z6test_numpy_msgpack.test_dict_float.<locals>.<listcomp>c                 S   rH   r   rI   rJ   r   r   r   rE   r   rL   c                 S   rH   r   rI   rJ   r   r   r   rE   v   rL   r   r   sortedvalueskeysr1   r   r   r   test_dict_floatl      

(z"test_numpy_msgpack.test_dict_floatc                 C   s   ddd}|  |}tt| tjjdt| tjjd tdd t| tjjdD dd t| tjjdD  tt| t|  tdd t| D dd t| D  d S )	N      ?      ?       @       @r\   keyc                 S   rH   r   rI   rJ   r   r   r   rE      rL   z8test_numpy_msgpack.test_dict_complex.<locals>.<listcomp>c                 S   rH   r   rI   rJ   r   r   r   rE      rL   c                 S   rH   r   rI   rJ   r   r   r   rE      rL   )r   r   r^   r_   r/   linalgnormr`   r1   r   r   r   test_dict_complexy   s   

(z$test_numpy_msgpack.test_dict_complexc                 C   rY   )Ns   xxxs   yyyyr\   c                 S   rH   r   rI   rJ   r   r   r   rE      rL   z4test_numpy_msgpack.test_dict_str.<locals>.<listcomp>c                 S   rH   r   rI   rJ   r   r   r   rE      rL   c                 S   rH   r   rI   rJ   r   r   r   rE      rL   r]   r1   r   r   r   test_dict_str   rb   z test_numpy_msgpack.test_dict_strc                 C   s   t dt dd}| |}tt| t|  tdd t| D dd t| D  tt| t|  tdd t| D dd t| D  d S )NrZ   r[   r\   c                 S   rH   r   rI   rJ   r   r   r   rE      rL   z<test_numpy_msgpack.test_dict_numpy_float.<locals>.<listcomp>c                 S   rH   r   rI   rJ   r   r   r   rE      rL   c                 S   rH   r   rI   rJ   r   r   r   rE      rL   )r/   r4   r   r   r^   r_   r`   r1   r   r   r   test_dict_numpy_float   s   
(z(test_numpy_msgpack.test_dict_numpy_floatc                 C   s   t dt dd}| |}tt| t jjdt| t jjd tdd t| t jjdD dd t| t jjdD  tt| t|  tdd t| D dd t| D  d S )	Nrc   rd   r\   re   c                 S   rH   r   rI   rJ   r   r   r   rE      rL   z>test_numpy_msgpack.test_dict_numpy_complex.<locals>.<listcomp>c                 S   rH   r   rI   rJ   r   r   r   rE      rL   c                 S   rH   r   rI   rJ   r   r   r   rE      rL   )	r/   rR   r   r   r^   r_   rg   rh   r`   r1   r   r   r   test_dict_numpy_complex   s   
(z*test_numpy_msgpack.test_dict_numpy_complexc                 C   s:   t jdt j}| |}t|| t|j|j d S NrG   	r/   r5   r6   astyper4   r   r   r   dtyper1   r   r   r   test_numpy_array_float   s   

z)test_numpy_msgpack.test_numpy_array_floatc                 C   sJ   t jddt jd  t j}| |}t|| t|j|j d S )NrG   r9   )	r/   r5   r6   ro   rR   r   r   r   rp   r1   r   r   r   test_numpy_array_complex   s   $

z+test_numpy_msgpack.test_numpy_array_complexc                 C   s<   t jddt j}| |}t|| t|j|j d S rm   rn   r1   r   r   r   test_numpy_array_float_2d   s   

z,test_numpy_msgpack.test_numpy_array_float_2dc                 C   s4   t g d}| |}t|| t|j|j d S )N)s   aaas   bbbbs   ccccc)r/   arrayr   r   r   rp   r1   r   r   r   test_numpy_array_str   s   

z'test_numpy_msgpack.test_numpy_array_strc                 C   sb   t dddddgfgt dt jfdt jfdd	t jd
fg}| |}t|| t|j|j d S )N         arZ   r[   arg0arg1)arg2S1arg3)rw   )r/   rt   rp   uint32r4   r   r   r   r1   r   r   r   test_numpy_array_mixed   s   


z)test_numpy_msgpack.test_numpy_array_mixedc                 C   sD   t dt jddddf }| |}t|| t|j|j d S )N)
   r   r   rG   )r/   onesr~   r   r   r   rp   r1   r   r   r   test_numpy_array_noncontiguous   s   

z1test_numpy_msgpack.test_numpy_array_noncontiguousc                 C   sN   dt dt ddg}| |}t|| tdd |D dd |D  d S )NrZ   g      @g      @r#   c                 S   rH   r   rI   rJ   r   r   r   rE      rL   z6test_numpy_msgpack.test_list_mixed.<locals>.<listcomp>)r/   r4   rR   r   r   r1   r   r   r   test_list_mixed   s   

"z"test_numpy_msgpack.test_list_mixedc                 C   s$   t dd}| |}| || d S )Ns   test marshal/unmarshalr	   )r   r'   assertEqualr1   r   r   r   
test_chain   s   

ztest_numpy_msgpack.test_chainN)FT) r   r   r   r   r"   r$   r'   r-   r.   r3   r7   r;   r=   r>   rO   rS   rU   rV   rX   ra   ri   rj   rk   rl   rq   rr   rs   ru   r   r   r   r   r   r   r   r   r      s<    


r   )unittestr   numpy.testingr   r   numpyr/   srslyr   objectr   r   r   r   r   r   <module>   s    