
    wi!                     n    d dl mZ d dlmZmZ d dlZd dlmZ  G d de	          Z
 G d de          ZdS )	    )TestCase)assert_equalassert_array_equalN)msgpackc                       e Zd ZddZd ZdS )
ThirdParty   barc                     || _         d S Nfoo)selfr   s     n/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/srsly/tests/msgpack/test_numpy.py__init__zThirdParty.__init__   s        c                 L    t          |t                    o| j        |j        k    S r   )
isinstancer   r   )r   others     r   __eq__zThirdParty.__eq__   s     %,,FUY1FFr   N)r	   )__name__
__module____qualname__r   r    r   r   r   r      s<           G G G G Gr   r   c                       e Zd Zd!dZd Zd Zd!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 S )"test_numpy_msgpackFTc                 Z    t          j        ||          }t          j        ||          S )N)use_bin_type)raw)r   packbunpackbr   xr   r   x_encs        r   encode_decodez test_numpy_msgpack.encode_decode   s+    al;;;u#....r   c                 .    t          d|j                  S )NT)__thirdparty__r   )dictr   r   objs     r   encode_thirdpartyz$test_numpy_msgpack.encode_thirdparty   s    4SW5555r   c                 :    d|v rt          |d                   S |S )Ns   __thirdparty__   foor   )r   r(   s     r   decode_thirdpartyz$test_numpy_msgpack.decode_thirdparty   s'    ###f+....
r   c                 r    t          j        || j        |          }t          j        ||| j                  S )N)defaultr   )r   object_hook)r   r   r*   r    r-   r!   s        r   encode_decode_thirdpartyz+test_numpy_msgpack.encode_decode_thirdparty   s>    t-L
 
 
 u#4;QRRRRr   c                 p    t          t          |                     d                    t                     d S )Nr,   r   typer$   bytesr   s    r   test_binztest_numpy_msgpack.test_bin"   s0     	T$,,V4455u=====r   c                 p    t          t          |                     d                    t                     d S )Nr   r3   r6   s    r   test_strztest_numpy_msgpack.test_str'   s.    T$,,U3344e<<<<<r   c                    t          j        d          }|                     |          }t          ||           t          t	          |          t	          |                     t          j        d          }|                     |          }t          ||           t          t	          |          t	          |                     d S )NTF)npbool_r$   r   r4   r   r"   x_recs      r   test_numpy_scalar_boolz)test_numpy_msgpack.test_numpy_scalar_bool*   s    HTNN""1%%QT!WWd5kk***HUOO""1%%QT!WWd5kk*****r   c                    t          j        t           j                                                  }|                     |          }t          ||           t          t          |          t          |                     d S r   )r;   float32randomrandr$   r   r4   r=   s      r   test_numpy_scalar_floatz*test_numpy_msgpack.test_numpy_scalar_float4   sb    Jry~~''((""1%%QT!WWd5kk*****r   c                 H   t          j        t           j                                        dt           j                                        z  z             }|                     |          }t          ||           t          t          |          t          |                     d S N              ?)r;   	complex64rB   rC   r$   r   r4   r=   s      r   test_numpy_scalar_complexz,test_numpy_msgpack.test_numpy_scalar_complex:   sx    L))B1A1A,AABB""1%%QT!WWd5kk*****r   c                     t           j                                        }|                     |          }t	          ||           t	          t          |          t          |                     d S r   r;   rB   rC   r$   r   r4   r=   s      r   test_scalar_floatz$test_numpy_msgpack.test_scalar_float@   sX    INN""1%%QT!WWd5kk*****r   c                 $   t           j                                        dt           j                                        z  z   }|                     |          }t	          ||           t	          t          |          t          |                     d S rF   rK   r=   s      r   test_scalar_complexz&test_numpy_msgpack.test_scalar_complexF   sn    INNrBINN$4$444""1%%QT!WWd5kk*****r   c                     d t          d          D             }|                     |          }t          ||           t          d |D             d |D                        d S )Nc                 n    g | ]2}t          j        t           j                                                  3S r   r;   rA   rB   rC   .0is     r   
<listcomp>z<test_numpy_msgpack.test_list_numpy_float.<locals>.<listcomp>M   .    <<<aRZ	(())<<<r      c                 ,    g | ]}t          |          S r   r4   rS   es     r   rU   z<test_numpy_msgpack.test_list_numpy_float.<locals>.<listcomp>P       ///DGG///r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z<test_numpy_msgpack.test_list_numpy_float.<locals>.<listcomp>P       1I1I1Ia$q''1I1I1Ir   ranger$   r   r=   s      r   test_list_numpy_floatz(test_numpy_msgpack.test_list_numpy_floatL   sr    <<588<<<""1%%1e$$$//Q///1I1I51I1I1IJJJJJr   c                     d t          d          D             d t          d          D             z   }|                     |          }t          ||           t          d |D             d |D                        d S )Nc                 n    g | ]2}t          j        t           j                                                  3S r   rQ   rR   s     r   rU   zDtest_numpy_msgpack.test_list_numpy_float_complex.<locals>.<listcomp>S   rV   r   rW   c                     g | ]T}t          j        t           j                                        d t           j                                        z  z             US rG   )r;   
complex128rB   rC   rR   s     r   rU   zDtest_numpy_msgpack.test_list_numpy_float_complex.<locals>.<listcomp>S   sW     @
 @
 @
HIBM")..**R")..2B2B-BBCC@
 @
 @
r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   zDtest_numpy_msgpack.test_list_numpy_float_complex.<locals>.<listcomp>X   r\   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   zDtest_numpy_msgpack.test_list_numpy_float_complex.<locals>.<listcomp>X   r^   r   r_   r=   s      r   test_list_numpy_float_complexz0test_numpy_msgpack.test_list_numpy_float_complexR   s    <<588<<< @
 @
MRSTXX@
 @
 @
 
 ""1%%1e$$$//Q///1I1I51I1I1IJJJJJr   c                     d t          d          D             }|                     |          }t          ||           t          d |D             d |D                        d S )Nc                 J    g | ] }t           j                                        !S r   r;   rB   rC   rR   s     r   rU   z6test_numpy_msgpack.test_list_float.<locals>.<listcomp>[   s$    000!RY^^000r   rW   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z6test_numpy_msgpack.test_list_float.<locals>.<listcomp>^   r\   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z6test_numpy_msgpack.test_list_float.<locals>.<listcomp>^   r^   r   r_   r=   s      r   test_list_floatz"test_numpy_msgpack.test_list_floatZ   sr    00uQxx000""1%%1e$$$//Q///1I1I51I1I1IJJJJJr   c                     d t          d          D             }|                     |          }t          ||           t          d |D             d |D                        d S )Nc                     g | ]B}t           j                                        d t           j                                        z  z   CS re   rl   rR   s     r   rU   z>test_numpy_msgpack.test_list_float_complex.<locals>.<listcomp>a   s:    JJJAbinnbinn&6&6!66JJJr   rW   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z>test_numpy_msgpack.test_list_float_complex.<locals>.<listcomp>d   r\   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z>test_numpy_msgpack.test_list_float_complex.<locals>.<listcomp>d   r^   r   r_   r=   s      r   test_list_float_complexz*test_numpy_msgpack.test_list_float_complex`   sr    JJqJJJ""1%%1e$$$//Q///1I1I51I1I1IJJJJJr   c                     d t          d          D             }|                     |          }t          ||           t          d |D             t          gdz             d S )Nc                     g | ]}d |z  S )   xr   rR   s     r   rU   z4test_numpy_msgpack.test_list_str.<locals>.<listcomp>g   s    (((!TAX(((r   rW   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z4test_numpy_msgpack.test_list_str.<locals>.<listcomp>j   s    333DGG333r   )r`   r$   r   r5   r=   s      r   test_list_strz test_numpy_msgpack.test_list_strf   si    ((uQxx(((""1%%1e$$$33U333eWq[AAAAAr   c                    ddd}|                      |          }t          t          |                                          t          |                                                     t          d t          |                                          D             d t          |                                          D                        t          t          |                                          t          |                                                     t          d t          |                                          D             d t          |                                          D                        d S )N      ?       @r,   r	   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z6test_numpy_msgpack.test_dict_float.<locals>.<listcomp>q       111T!WW111r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z6test_numpy_msgpack.test_dict_float.<locals>.<listcomp>r       555T!WW555r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z6test_numpy_msgpack.test_dict_float.<locals>.<listcomp>v       ///T!WW///r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z6test_numpy_msgpack.test_dict_float.<locals>.<listcomp>v       1X1X1Xa$q''1X1X1Xr   r$   r   sortedvalueskeysr=   s      r   test_dict_floatz"test_numpy_msgpack.test_dict_floatl   s6   #&&""1%%6!((**--vellnn/E/EFFF11fQXXZZ0011155fU\\^^44555	
 	
 	
 	6!&&((++VEJJLL-A-ABBB//fQVVXX..///1X1X6%**,,CWCW1X1X1X	
 	
 	
 	
 	
r   c                    ddd}|                      |          }t          t          |                                t          j        j                  t          |                                t          j        j                             t          d t          |                                t          j        j                  D             d t          |                                t          j        j                  D                        t          t          |                                          t          |                                                     t          d t          |                                          D             d t          |                                          D                        d S )	N      ?      ?       @       @r}   keyc                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z8test_numpy_msgpack.test_dict_complex.<locals>.<listcomp>       EEET!WWEEEr   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z8test_numpy_msgpack.test_dict_complex.<locals>.<listcomp>       IIIT!WWIIIr   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z8test_numpy_msgpack.test_dict_complex.<locals>.<listcomp>   r   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z8test_numpy_msgpack.test_dict_complex.<locals>.<listcomp>   r   r   )r$   r   r   r   r;   linalgnormr   r=   s      r   test_dict_complexz$test_numpy_msgpack.test_dict_complexy   sd   44""1%%188::29>2225<<>>ry~666	
 	
 	
 	EEfQXXZZRY^DDDEEEIIfU\\^^HHHIII	
 	
 	
 	6!&&((++VEJJLL-A-ABBB//fQVVXX..///1X1X6%**,,CWCW1X1X1X	
 	
 	
 	
 	
r   c                    ddd}|                      |          }t          t          |                                          t          |                                                     t          d t          |                                          D             d t          |                                          D                        t          t          |                                          t          |                                                     t          d t          |                                          D             d t          |                                          D                        d S )Ns   xxxs   yyyyr}   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z4test_numpy_msgpack.test_dict_str.<locals>.<listcomp>   r   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z4test_numpy_msgpack.test_dict_str.<locals>.<listcomp>   r   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z4test_numpy_msgpack.test_dict_str.<locals>.<listcomp>   r   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z4test_numpy_msgpack.test_dict_str.<locals>.<listcomp>   r   r   r   r=   s      r   test_dict_strz test_numpy_msgpack.test_dict_str   s6   W--""1%%6!((**--vellnn/E/EFFF11fQXXZZ0011155fU\\^^44555	
 	
 	
 	6!&&((++VEJJLL-A-ABBB//fQVVXX..///1X1X6%**,,CWCW1X1X1X	
 	
 	
 	
 	
r   c                 B   t          j        d          t          j        d          d}|                     |          }t          t	          |                                          t	          |                                                     t          d t	          |                                          D             d t	          |                                          D                        t          t	          |                                          t	          |                                                     t          d t	          |                                          D             d t	          |                                          D                        d S )Nr{   r|   r}   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z<test_numpy_msgpack.test_dict_numpy_float.<locals>.<listcomp>   r   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z<test_numpy_msgpack.test_dict_numpy_float.<locals>.<listcomp>   r   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z<test_numpy_msgpack.test_dict_numpy_float.<locals>.<listcomp>   r   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z<test_numpy_msgpack.test_dict_numpy_float.<locals>.<listcomp>   r   r   )r;   rA   r$   r   r   r   r   r=   s      r   test_dict_numpy_floatz(test_numpy_msgpack.test_dict_numpy_float   sF   Z__bjoo>>""1%%6!((**--vellnn/E/EFFF11fQXXZZ0011155fU\\^^44555	
 	
 	
 	6!&&((++VEJJLL-A-ABBB//fQVVXX..///1X1X6%**,,CWCW1X1X1X	
 	
 	
 	
 	
r   c                    t          j        d          t          j        d          d}|                     |          }t          t	          |                                t           j        j                  t	          |                                t           j        j                             t          d t	          |                                t           j        j                  D             d t	          |                                t           j        j                  D                        t          t	          |                                          t	          |                                                     t          d t	          |                                          D             d t	          |                                          D                        d S )	Nr   r   r}   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z>test_numpy_msgpack.test_dict_numpy_complex.<locals>.<listcomp>   r   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z>test_numpy_msgpack.test_dict_numpy_complex.<locals>.<listcomp>   r   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z>test_numpy_msgpack.test_dict_numpy_complex.<locals>.<listcomp>   r   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z>test_numpy_msgpack.test_dict_numpy_complex.<locals>.<listcomp>   r   r   )	r;   rf   r$   r   r   r   r   r   r   r=   s      r   test_dict_numpy_complexz*test_numpy_msgpack.test_dict_numpy_complex   sx   ]:..j8Q8QRR""1%%188::29>2225<<>>ry~666	
 	
 	
 	EEfQXXZZRY^DDDEEEIIfU\\^^HHHIII	
 	
 	
 	6!&&((++VEJJLL-A-ABBB//fQVVXX..///1X1X6%**,,CWCW1X1X1X	
 	
 	
 	
 	
r   c                     t           j                            d                              t           j                  }|                     |          }t          ||           t          |j        |j                   d S NrW   	r;   rB   rC   astyperA   r$   r   r   dtyper=   s      r   test_numpy_array_floatz)test_numpy_msgpack.test_numpy_array_float   sb    INN1$$RZ00""1%%1e$$$QWek*****r   c                 B   t           j                            d          dt           j                            d          z  z                       t           j                  }|                     |          }t          ||           t          |j        |j                   d S )NrW   rG   )	r;   rB   rC   r   rf   r$   r   r   r   r=   s      r   test_numpy_array_complexz+test_numpy_msgpack.test_numpy_array_complex   sz    Y^^AbinnQ&7&7!77??NN""1%%1e$$$QWek*****r   c                     t           j                            dd                              t           j                  }|                     |          }t          ||           t          |j        |j                   d S r   r   r=   s      r   test_numpy_array_float_2dz,test_numpy_msgpack.test_numpy_array_float_2d   sd    INN1a  ''
33""1%%1e$$$QWek*****r   c                     t          j        g d          }|                     |          }t          ||           t	          |j        |j                   d S )N)s   aaas   bbbbs   ccccc)r;   arrayr$   r   r   r   r=   s      r   test_numpy_array_strz'test_numpy_msgpack.test_numpy_array_str   sU    H00011""1%%1e$$$QWek*****r   c                 2   t          j        dddddgfgt          j        dt           j        fdt           j        fdd	t           j        d
fg                    }|                     |          }t          ||           t          |j        |j                   d S )N         ar{   r|   arg0arg1)arg2S1arg3)r   )r;   r   r   uint32rA   r$   r   r   r=   s      r   test_numpy_array_mixedz)test_numpy_msgpack.test_numpy_array_mixed   s    HD3*%&HRY'RY'"RZ.	 

 

 ""1%%1e$$$QWek*****r   c                     t          j        dt           j                  ddddf         }|                     |          }t	          ||           t          |j        |j                   d S )N)
   r   r   rW   )r;   onesr   r$   r   r   r   r=   s      r   test_numpy_array_noncontiguousz1test_numpy_msgpack.test_numpy_array_noncontiguous   sc    GHbi((1ac2""1%%1e$$$QWek*****r   c                     dt          j        d          t          j        d          dg}|                     |          }t	          ||           t	          d |D             d |D                        d S )Nr{   g      @g      @r,   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z6test_numpy_msgpack.test_list_mixed.<locals>.<listcomp>   r\   r   c                 ,    g | ]}t          |          S r   rY   rZ   s     r   rU   z6test_numpy_msgpack.test_list_mixed.<locals>.<listcomp>   r^   r   )r;   rA   rf   r$   r   r=   s      r   test_list_mixedz"test_numpy_msgpack.test_list_mixed   sy    "*S//2=#6#6?""1%%1e$$$//Q///1I1I51I1I1IJJJJJr   c                 |    t          d          }|                     |          }|                     ||           d S )Ns   test marshal/unmarshalr   )r   r1   assertEqualr=   s      r   
test_chainztest_numpy_msgpack.test_chain   sB    4555--a00E"""""r   N)FT) r   r   r   r$   r*   r-   r1   r7   r9   r?   rD   rI   rL   rN   ra   ri   ro   rt   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s       / / / /6 6 6  
S S S S> > >
= = =+ + ++ + ++ + ++ + ++ + +K K KK K KK K KK K KB B B
 
 

 
 
 
 
 

 
 

 
 
 + + ++ + ++ + ++ + ++ + + + + +K K K# # # # #r   r   )unittestr   numpy.testingr   r   numpyr;   srslyr   objectr   r   r   r   r   <module>r      s          : : : : : : : :          G G G G G G G G[# [# [# [# [# [# [# [# [# [#r   