
    i!                     `    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y)	    )TestCase)assert_equalassert_array_equalN)msgpackc                       e Zd ZddZd Zy)
ThirdPartyc                     || _         y Nfoo)selfr   s     o/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/srsly/tests/msgpack/test_numpy.py__init__zThirdParty.__init__   s	        c                 X    t        |t              xr | j                  |j                  k(  S r
   )
isinstancer   r   )r   others     r   __eq__zThirdParty.__eq__   s!    %,FUYY1FFr   N)   bar)__name__
__module____qualname__r   r    r   r   r   r      s    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y) test_numpy_msgpackc                 ^    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                 0    t        d|j                        S )NT)__thirdparty__r   )dictr   r   objs     r   encode_thirdpartyz$test_numpy_msgpack.encode_thirdparty   s    4SWW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                     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   s8    t--L
 u#4;Q;QRRr   c                 T    t        t        | j                  d            t               y )Nr,   r   typer$   bytesr   s    r   test_binztest_numpy_msgpack.test_bin"   s     	T$,,V45u=r   c                 T    t        t        | j                  d            t               y )Nr   r3   r6   s    r   test_strztest_numpy_msgpack.test_str'   s    T$,,U34e<r   c                 D   t        j                  d      }| j                  |      }t        ||       t        t	        |      t	        |             t        j                  d      }| j                  |      }t        ||       t        t	        |      t	        |             y )NTF)npbool_r$   r   r4   r   r"   x_recs      r   test_numpy_scalar_boolz)test_numpy_msgpack.test_numpy_scalar_bool*   st    HHTN""1%QT!Wd5k*HHUO""1%QT!Wd5k*r   c                     t        j                  t         j                  j                               }| j	                  |      }t        ||       t        t        |      t        |             y r
   )r;   float32randomrandr$   r   r4   r=   s      r   test_numpy_scalar_floatz*test_numpy_msgpack.test_numpy_scalar_float4   sG    JJryy~~'(""1%QT!Wd5k*r   c                     t        j                  t         j                  j                         dt         j                  j                         z  z         }| j	                  |      }t        ||       t        t        |      t        |             y N              ?)r;   	complex64rB   rC   r$   r   r4   r=   s      r   test_numpy_scalar_complexz,test_numpy_msgpack.test_numpy_scalar_complex:   s\    LL)B1A,AAB""1%QT!Wd5k*r   c                     t         j                  j                         }| j                  |      }t	        ||       t	        t        |      t        |             y r
   r;   rB   rC   r$   r   r4   r=   s      r   test_scalar_floatz$test_numpy_msgpack.test_scalar_float@   s>    IINN""1%QT!Wd5k*r   c                     t         j                  j                         dt         j                  j                         z  z   }| j                  |      }t	        ||       t	        t        |      t        |             y rF   rK   r=   s      r   test_scalar_complexz&test_numpy_msgpack.test_scalar_complexF   sS    IINNrBIINN$444""1%QT!Wd5k*r   c           	      ^   t        d      D cg c]3  }t        j                  t        j                  j	                               5 }}| j                  |      }t        ||       t        |D cg c]  }t        |       c}|D cg c]  }t        |       c}       y c c}w c c}w c c}w N   )ranger;   rA   rB   rC   r$   r   r4   r   ir"   r>   es        r   test_list_numpy_floatz(test_numpy_msgpack.test_list_numpy_floatL   s|    388<aRZZ		()<<""1%1e$Q/DG/51Ia$q'1IJ = 01Is   8B .B%B*
c           
      @   t        d      D cg c]3  }t        j                  t        j                  j	                               5 c}t        d      D cg c]U  }t        j
                  t        j                  j	                         dt        j                  j	                         z  z         W c}z   }| j                  |      }t        ||       t        |D cg c]  }t        |       c}|D cg c]  }t        |       c}       y c c}w c c}w c c}w c c}w NrQ   rG   )	rR   r;   rA   rB   rC   
complex128r$   r   r4   rS   s        r   test_list_numpy_float_complexz0test_numpy_msgpack.test_list_numpy_float_complexR   s    388<aRZZ		()<MRSTX@
HIBMM"))..*R"))..2B-BBC@
 
 ""1%1e$Q/DG/51Ia$q'1IJ = @

 01Is   8DADD2D
c           	      8   t        d      D cg c]   }t        j                  j                         " }}| j	                  |      }t        ||       t        |D cg c]  }t        |       c}|D cg c]  }t        |       c}       y c c}w c c}w c c}w rP   rR   r;   rB   rC   r$   r   r4   rS   s        r   test_list_floatz"test_numpy_msgpack.test_list_floatZ   ss    ',Qx0!RYY^^00""1%1e$Q/DG/51Ia$q'1IJ 1 01Is   %BB3B
c           	      |   t        d      D cg c]B  }t        j                  j                         dt        j                  j                         z  z   D }}| j	                  |      }t        ||       t        |D cg c]  }t        |       c}|D cg c]  }t        |       c}       y c c}w c c}w c c}w rX   r\   rS   s        r   test_list_float_complexz*test_numpy_msgpack.test_list_float_complex`   s    AFqJAbiinnbiinn&6!66JJ""1%1e$Q/DG/51Ia$q'1IJ K 01Is   AB/=B4B9
c                     t        d      D cg c]  }d|z  	 }}| j                  |      }t        ||       t        |D cg c]  }t        |       c}t        gdz         y c c}w c c}w )NrQ      x)rR   r$   r   r4   r5   rS   s        r   test_list_strz test_numpy_msgpack.test_list_strf   s`    $Qx(!TAX((""1%1e$U3DG3eWq[A ) 4s   A%A*c           	         ddd}| j                  |      }t        t        |j                               t        |j                                      t        t        |j                               D cg c]  }t	        |       c}t        |j                               D cg c]  }t	        |       c}       t        t        |j                               t        |j                                      t        t        |j                               D cg c]  }t	        |       c}t        |j                               D cg c]  }t	        |       c}       y c c}w c c}w c c}w c c}w N      ?       @r,   r   r$   r   sortedvaluesr4   keysr   r"   r>   rU   s       r   test_dict_floatz"test_numpy_msgpack.test_dict_floatl   s    #&""1%6!((*-velln/EF$QXXZ01T!W1$U\\^45T!W5	
 	6!&&(+VEJJL-AB$QVVX./T!W/6%**,CW1Xa$q'1X	
	 25 01X   1E E!
E&E+
c           	         ddd}| j                  |      }t        t        |j                         t        j
                  j                        t        |j                         t        j
                  j                               t        t        |j                         t        j
                  j                        D cg c]  }t        |       c}t        |j                         t        j
                  j                        D cg c]  }t        |       c}       t        t        |j                               t        |j                                      t        t        |j                               D cg c]  }t        |       c}t        |j                               D cg c]  }t        |       c}       y c c}w c c}w c c}w c c}w Ny      ?      ?y       @       @rg   )key)	r$   r   ri   rj   r;   linalgnormr4   rk   rl   s       r   test_dict_complexz$test_numpy_msgpack.test_dict_complexy   s    4""1%188:299>>25<<>ryy~~6	
 	$QXXZRYY^^DET!WE$U\\^HIT!WI	
 	6!&&(+VEJJL-AB$QVVX./T!W/6%**,CW1Xa$q'1X	
	 FI 01Xs   ?GG	
;G*G
c           	         ddd}| j                  |      }t        t        |j                               t        |j                                      t        t        |j                               D cg c]  }t	        |       c}t        |j                               D cg c]  }t	        |       c}       t        t        |j                               t        |j                                      t        t        |j                               D cg c]  }t	        |       c}t        |j                               D cg c]  }t	        |       c}       y c c}w c c}w c c}w c c}w )Ns   xxxs   yyyyrg   rh   rl   s       r   test_dict_strz test_numpy_msgpack.test_dict_str   s    W-""1%6!((*-velln/EF$QXXZ01T!W1$U\\^45T!W5	
 	6!&&(+VEJJL-AB$QVVX./T!W/6%**,CW1Xa$q'1X	
	 25 01Xrn   c           	      ,   t        j                  d      t        j                  d      d}| j                  |      }t        t	        |j                               t	        |j                                      t        t	        |j                               D cg c]  }t        |       c}t	        |j                               D cg c]  }t        |       c}       t        t	        |j                               t	        |j                                      t        t	        |j                               D cg c]  }t        |       c}t	        |j                               D cg c]  }t        |       c}       y c c}w c c}w c c}w c c}w rd   )r;   rA   r$   r   ri   rj   r4   rk   rl   s       r   test_dict_numpy_floatz(test_numpy_msgpack.test_dict_numpy_float   s   ZZ_bjjo>""1%6!((*-velln/EF$QXXZ01T!W1$U\\^45T!W5	
 	6!&&(+VEJJL-AB$QVVX./T!W/6%**,CW1Xa$q'1X	
	 25 01Xs   FF
9F(F
c           	         t        j                  d      t        j                  d      d}| j                  |      }t        t	        |j                         t         j                  j                        t	        |j                         t         j                  j                               t        t	        |j                         t         j                  j                        D cg c]  }t        |       c}t	        |j                         t         j                  j                        D cg c]  }t        |       c}       t        t	        |j                               t	        |j                                      t        t	        |j                               D cg c]  }t        |       c}t	        |j                               D cg c]  }t        |       c}       y c c}w c c}w c c}w c c}w rp   )
r;   rY   r$   r   ri   rj   rr   rs   r4   rk   rl   s       r   test_dict_numpy_complexz*test_numpy_msgpack.test_dict_numpy_complex   s2   ]]:.j8QR""1%188:299>>25<<>ryy~~6	
 	$QXXZRYY^^DET!WE$U\\^HIT!WI	
 	6!&&(+VEJJL-AB$QVVX./T!W/6%**,CW1Xa$q'1X	
	 FI 01Xs   %G*.G/
!G4G9
c                     t         j                  j                  d      j                  t         j                        }| j                  |      }t        ||       t        |j                  |j                         y rP   	r;   rB   rC   astyperA   r$   r   r   dtyper=   s      r   test_numpy_array_floatz)test_numpy_msgpack.test_numpy_array_float   sO    IINN1$$RZZ0""1%1e$QWWekk*r   c                 <   t         j                  j                  d      dt         j                  j                  d      z  z   j                  t         j                        }| j                  |      }t        ||       t        |j                  |j                         y rX   )	r;   rB   rC   r}   rY   r$   r   r   r~   r=   s      r   test_numpy_array_complexz+test_numpy_msgpack.test_numpy_array_complex   sf    YY^^AbiinnQ&7!77??N""1%1e$QWWekk*r   c                     t         j                  j                  dd      j                  t         j                        }| j                  |      }t        ||       t        |j                  |j                         y rP   r|   r=   s      r   test_numpy_array_float_2dz,test_numpy_msgpack.test_numpy_array_float_2d   sQ    IINN1a ''

3""1%1e$QWWekk*r   c                     t        j                  g d      }| j                  |      }t        ||       t	        |j
                  |j
                         y )N)s   aaas   bbbbs   ccccc)r;   arrayr$   r   r   r~   r=   s      r   test_numpy_array_strz'test_numpy_msgpack.test_numpy_array_str   s=    HH01""1%1e$QWWekk*r   c                 H   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            }| j                  |      }t        ||       t        |j                  |j                         y )N         are   rf   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    HHD3*%&HHRYY'RYY'"RZZ.	

 ""1%1e$QWWekk*r   c                     t        j                  dt         j                        ddddf   }| j                  |      }t	        ||       t        |j                  |j                         y )N)
   r   r   rQ   )r;   onesr   r$   r   r   r~   r=   s      r   test_numpy_array_noncontiguousz1test_numpy_msgpack.test_numpy_array_noncontiguous   sS    GGHbii(1ac2""1%1e$QWWekk*r   c           	         dt        j                  d      t        j                  d      dg}| j                  |      }t	        ||       t	        |D cg c]  }t        |       c}|D cg c]  }t        |       c}       y c c}w c c}w )Nre   g      @g      @r,   )r;   rA   rY   r$   r   r4   rl   s       r   test_list_mixedz"test_numpy_msgpack.test_list_mixed   si    "**S/2==#6?""1%1e$Q/DG/51Ia$q'1IJ/1Is   B+B

c                 b    t        d      }| j                  |      }| j                  ||       y )Ns   test marshal/unmarshalr   )r   r1   assertEqualr=   s      r   
test_chainztest_numpy_msgpack.test_chain   s-    45--a0E"r   N)FT) r   r   r   r$   r*   r-   r1   r7   r9   r?   rD   rI   rL   rN   rV   rZ   r]   r_   rb   rm   rt   rv   rx   rz   r   r   r   r   r   r   r   r   r   r   r   r   r      s    /6
S>
=+++++KKKKB

 


 +++++ +K#r   r   )unittestr   numpy.testingr   r   numpyr;   srslyr   objectr   r   r   r   r   <module>r      s-     :  G G[# [#r   