
    doiw                         S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
Jr  SSKrSSKJrJr  SSKJr  SSKrSSKJrJrJrJrJrJr  \S	 5       rS
 rS rS r " S S5      rg)z	Testing

    N)BytesIO)mkstemp)contextmanager)assert_assert_equal)raises)make_streamGenericStreamZlibInputStream
_read_into_read_string
BLOCK_SIZEc               #   \  #    Sn [        5       u  p[        R                  " US5       nUR                  U 5        S S S 5        [	        US5       n[        U 5      n[        U 5      nX4U4v   S S S 5        [        R                  " U5        g ! , (       d  f       NV= f! , (       d  f       N6= f7f)N   a stringwbrb)r   osfdopenwriteopenr   unlink)valfdfnamefsgscss         ^/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/io/matlab/tests/test_streams.pysetup_test_filer      s}     
C	IB	2t	
 
	eT	bS\S\bj 
 IIe 
			s3   &B,B
B,B+B,

BB,
B)%B,c                      [        5        u  pn[        [        [        U5      [        5      5        S S S 5        g ! , (       d  f       g = fN)r   r   
isinstancer	   r
   )r   r   r   s      r   test_make_streamr#   *   s-    		lrr
;r?M:; 
		s	   &:
Ac                  :   [        5        u  pnXU4 H  n[        U5      nUR                  S5      n[        US5        [        UR	                  5       S5        UR                  S5      n[        US5        [        UR	                  5       S5        UR                  SS5      n[        US5        [        UR	                  5       S5        UR                  SS5      n[        US5        [        UR	                  5       S5        M     S S S 5        g ! , (       d  f       g = f)Nr                  )r   r	   seekr   tellr   r   r   sstress         r   test_tell_seekr1   0   s    		lrr"AQB''!*Ca A&''!*Ca A&''!Q-Ca A&''"a.Ca A&  
		s   C8D
Dc                     [        5        u  pnXU4 GH  n[        U5      nUR                  S5        UR                  S5      n[	        US5        UR                  S5        UR                  S5      n[	        US5        UR                  S5        [        US5      n[	        US5        [        US5      n[	        US5        [        [        [
        US5        UR                  S5        [        US5      n[	        US5        [        US5      n[	        US5        [        [        [        US5        GM     S S S 5        g ! , (       d  f       g = f)Nr   r      s   a sts   ringr&   )	r   r	   r+   readr   r   assert_raisesOSErrorr   r-   s         r   	test_readr8   B   s    		lrr"AQBGGAJ''"+Cn-GGAJ''!*Cj)GGAJR#Cj)R#Cg&':r15GGAJr1%Cj)r1%Cg&'<Q7+  
		s   D&D::
Ec                   ^   \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  \R                  " 5       S	:H  =(       a    \R"                  S
:  SS9S 5       r\R                  R                  \R                  " 5       S	:H  =(       a    \R"                  S
:  SS9S 5       rSrg)TestZlibInputStream\   c                     [         R                  " U5      n[        R                  " U5      n[	        U5      nU[        U5      U4$ r!   )random	randbyteszlibcompressr   len)selfsizedatacompressed_datastreams        r   	_get_dataTestZlibInputStream._get_data]   s<    %---)s?+T11    c           	         ^  SSS[         S-  [         S-
  [         [         S-   S[         -  S-
  /n[         S-  [         S-
  [         [         S-   /nU 4S jnU H  nU H  nU" XE5        M     M     g )Nr   r'   
   r&   c                    > T	R                  U 5      u  p#n[        X#5      nSnSn UR                  [        UX-
  5      5      nU(       d  OU[	        U5      -  nXh-  nM9  [        XF5        g )NrI   r   )rG   r   r5   minrA   r   )
rC   	read_sizecompressed_streamcompressed_data_lenrD   rF   data2so_farblockrB   s
            r   check,TestZlibInputStream.test_read.<locals>.checkj   su    ;?>>$;O8D$%6LFEFC	(,%7 8#e*$  %rI   )r   )rB   SIZES
READ_SIZESrT   rC   rN   s   `     r   r8   TestZlibInputStream.test_readc   sr    Ar:q=*Q,Z\1Z<>; !!mZ\ *Q,0
	& D'	d& ( rI   c                 R   [         R                  " S5      n[        R                  " U5      n[	        US-   5      n[        U[        U5      5      nUR                  [        U5      5        [        UR                  5       [        U5      5        [        [        UR                  S5        g )Ni  s   abbacacar'   )r=   r>   r?   r@   r   r   rA   r5   r   r,   r6   r7   rB   rD   rE   rO   rF   s        r   test_read_max_length(TestZlibInputStream.test_read_max_length|   s{    %---#Ok$AB !2C4HICI&++-s?/CDgv{{A.rI   c                 .   [         R                  " S5      n[        R                  " U5      nUS S [	        US   S-   S-  /5      -   n[        U5      n[        U[        U5      5      n[        [        R                  UR                  [        U5      5        g NrK   r3   r'      )r=   r>   r?   r@   bytesr   r   rA   r6   errorr5   rZ   s        r   test_read_bad_checksum*TestZlibInputStream.test_read_bad_checksum       #--- +3B/"_R%81%<$C#DEF $O4 !2C4HIdjj&++s4y9rI   c                    U R                  S5      u  pn[        X5      nUR                  S5        Sn[        UR	                  5       U5        UR                  S5      n[        XcXUS-    5        UR                  SS5        Sn[        UR	                  5       U5        UR                  S5      n[        XsXUS-    5        UR                  SS	5        Sn[        UR	                  5       U5        UR                  S5      n[        XXUS-    5        [        [        UR                  S
S5        [        [        UR                  SS5        [        [        UR                  SS5        UR                  SS5        [        [        UR
                  S5        g )N   {      iA  r'   i     i  r   rK   r&   r3   i'     )	rG   r   r+   r   r,   r5   r6   r7   
ValueError)	rB   rO   rP   rD   rF   pd1d2d3s	            r   	test_seekTestZlibInputStream.test_seek   s3   7;~~d7K4 !2HCV[[]A&[[_Ra"&CV[[]A&[[_Ra"&CV[[]A&[[_Ra"&gv{{B2gv{{B2j&++q#6E1gv{{B/rI   c                 .   [         R                  " S5      n[        R                  " U5      nUS S [	        US   S-   S-  /5      -   n[        U5      n[        U[        U5      5      n[        [        R                  UR                  [        U5      5        g r^   )r=   r>   r?   r@   r`   r   r   rA   r6   ra   r+   rZ   s        r   test_seek_bad_checksum*TestZlibInputStream.test_seek_bad_checksum   rd   rI   c                 0   U R                  S5      u  pn[        X5      n[        UR                  5       (       + 5        UR	                  S5        [        UR                  5       (       + 5        UR	                  S5        [        UR                  5       5        g )Nrf   i   )rG   r   r   all_data_readr+   )rB   rO   rP   rD   rF   s        r   test_all_data_read&TestZlibInputStream.test_all_data_read   sr    7;~~d7K4 !2HF((**+CF((**+D$$&'rI   Windows)      zgh-23185)reasonc                    Sn[         R                  " S[         R                  S9n[        R                  " X!5      n[        U5      n[        U[        S-   :H  5        [        U5      n[        XT5      n[        UR                  5       (       + 5        UR                  [        U5      5        [        UR                  5       5        g )Nr*   Sdtyper&   )nparangeuint8r?   r@   rA   r   r   r   r   rv   r+   rB   COMPRESSION_LEVELrD   rE   rP   rO   rF   s          r   test_all_data_read_overlap.TestZlibInputStream.test_all_data_read_overlap   s     yy2--@!/2 	#zA~56#O4 !2HF((**+CI$$&'rI   c                    Sn[         R                  " S[         R                  S9n[        R                  " X!5      n[        U5      n[        U[        S-   :H  5        US S [        US   S-   S-  /5      -   n[        U5      n[        XT5      n[        UR                  5       (       + 5        UR                  [        U5      5        [        [        R                  UR                  5        g )Nr*   r~   r   r&   r3   r'   r_   )r   r   r   r?   r@   rA   r   r   r`   r   r   rv   r+   r6   ra   r   s          r   test_all_data_read_bad_checksum3TestZlibInputStream.test_all_data_read_bad_checksum   s     yy2--@!/2 	#zA~56 +3B/"_R%81%<$C#DEF $O4 !2HF((**+CIdjj&"6"67rI    N)__name__
__module____qualname____firstlineno__rG   r8   r[   rb   rp   rs   rw   pytestmarkskipifplatformsystemsysversion_infor   r   __static_attributes__r   rI   r   r:   r:   \   s    2'2	/:0<:( [[__)+K0@0@G0K  ((  [[__)+K0@0@G0K  88rI   r:   ) __doc__r   r   r=   r   r?   ior   tempfiler   
contextlibr   numpyr   numpy.testingr   r   r   r   r6   scipy.io.matlab._streamsr	   r
   r   r   r   r   r   r#   r1   r8   r:   r   rI   r   <module>r      sk     	  
    %  / * * *
 
 
<'$84U8 U8rI   