
    Ng                         d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	Z
ddlmZmZ ddlmZ ddlmZmZmZmZmZmZ ed	             Zd
 Zd Zd Z G d d          ZdS )z
 Testing

    N)BytesIO)mkstemp)contextmanager)assert_assert_equal)raises)make_streamGenericStreamZlibInputStream
_read_into_read_string
BLOCK_SIZEc               #   v  K   d} t                      \  }}t          j        |d          5 }|                    |            d d d            n# 1 swxY w Y   t	          |d          5 }t          |           }t          |           }|||fV  d d d            n# 1 swxY w Y   t          j        |           d S )N   a stringwbrb)r   osfdopenwriteopenr   unlink)valfdfnamefsgscss         ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/scipy/io/matlab/tests/test_streams.pysetup_test_filer      s-     
C		IB	2t		 
              	eT		 bS\\S\\"bj               Ies#   AAA(&BB!Bc                      t                      5 \  } }}t          t          t          |          t                               d d d            d S # 1 swxY w Y   d S )N)r   r   
isinstancer	   r
   )r   r   r   s      r   test_make_streamr"   &   s    			 <lr2r
;r??M::;;;< < < < < < < < < < < < < < < < < <s   4AAAc                     t                      5 \  } }}| ||fD ]0}t          |          }|                    d          }t          |d           t          |                                d           |                    d          }t          |d           t          |                                d           |                    dd          }t          |d           t          |                                d           |                    dd          }t          |d           t          |                                d           2	 d d d            d S # 1 swxY w Y   d S )Nr                  )r   r	   seekr   tellr   r   r   sstress         r   test_tell_seekr0   ,   s}   			 'lr2rb" 	' 	'AQB''!**Ca   A&&&''!**Ca   A&&&''!Q--Ca   A&&&''"a..Ca   A&&&&	'' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   D<EE Ec                  <   t                      5 \  } }}| ||fD ]h}t          |          }|                    d           |                    d          }t	          |d           |                    d           |                    d          }t	          |d           |                    d           t          |d          }t	          |d           t          |d          }t	          |d           t          t          t
          |d           |                    d           t          |d          }t	          |d           t          |d          }t	          |d           t          t          t          |d           j	 d d d            d S # 1 swxY w Y   d S )Nr   r      s   a sts   ringr%   )	r   r	   r*   readr   r   assert_raisesOSErrorr   r,   s         r   	test_readr7   >   s   			 8lr2rb" 	8 	8AQBGGAJJJ''"++Cn---GGAJJJ''!**Cj)))GGAJJJR##Cj)))R##Cg&&&':r1555GGAJJJr1%%Cj)))r1%%Cg&&&'<Q7777+	88 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   E4FFFc                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestZlibInputStreamc                    t           j                            dd|                              t           j                                                  }t          j        |          }t          |          }|t          |          |fS )Nr      )
nprandomrandintastypeuint8tobyteszlibcompressr   len)selfsizedatacompressed_datastreams        r   	_get_datazTestZlibInputStream._get_dataY   sh    y  C..55bh??GGII---))s?++T11    c           	           dddt           dz  t           dz
  t           t           dz   dt           z  dz
  g}t           dz  t           dz
  t           t           dz   g} fd}|D ]}|D ]} |||           d S )Nr   r&   
   r%   c                    	                     |           \  }}}t          ||          }d}d}	 |                    t          || |z
                      }|sn|t	          |          z  }||z  }At          ||           d S )NrK   r   )rJ   r   r4   minrD   r   )
rF   	read_sizecompressed_streamcompressed_data_lenrG   rI   data2so_farblockrE   s
            r   checkz,TestZlibInputStream.test_read.<locals>.checkf   s    ;?>>$;O;O82D$%68KLLFEFC	(,v%7 %7 8 8 #e**$ u%%%%%rK   )r   )rE   SIZES
READ_SIZESrV   rF   rP   s   `     r   r7   zTestZlibInputStream.test_read_   s    Ar:q=*Q,Z\1Z<>; !!mZ\ *Q,0
	& 	& 	& 	& 	&  	' 	'D' ' '	dI&&&&'	' 	'rK   c                    d}t           j                            dd|                              t           j                                                  }t          j        |          }t          |dz             }t          |t          |                    }|                    t          |                     t          |                                t          |                     t          t          |j        d           d S )Ni  r   r;   s   abbacacar&   )r<   r=   r>   r?   r@   rA   rB   rC   r   r   rD   r4   r   r+   r5   r6   )rE   rF   rG   rH   rQ   rI   s         r   test_read_max_lengthz(TestZlibInputStream.test_read_max_lengthx   s    y  C..55bh??GGII---#Ok$ABB !2C4H4HIICII&++--s?/C/CDDDgv{A.....rK   c                    t           j                            ddd                              t           j                                                  }t          j        |          }|d d         t          |d         dz   dz  g          z   }t          |          }t          |t          |                    }t          t          j        |j        t          |                     d S Nr   r;   rM   r2   r&      )r<   r=   r>   r?   r@   rA   rB   rC   bytesr   r   rD   r5   errorr4   rE   rG   rH   rQ   rI   s        r   test_read_bad_checksumz*TestZlibInputStream.test_read_bad_checksum       y  C,,33BH==EEGG--- +3B3/"_R%81%<$C#DEEF $O44 !2C4H4HIIdj&+s4yy99999rK   c                    |                      d          \  }}}t          ||          }|                    d           d}t          |                                |           |                    d          }t          ||||dz                       |                    dd           d}t          |                                |           |                    d          }t          ||||dz                       |                    dd	           d}t          |                                |           |                    d          }t          ||||dz                       t          t          |j        d
d           t          t          |j        dd           t          t          |j        dd           |                    dd           t          t          |j        d           d S )N   {      iA  r&   i     i  r   rM   r%   r2   i'     )	rJ   r   r*   r   r+   r4   r5   r6   
ValueError)	rE   rQ   rR   rG   rI   pd1d2d3s	            r   	test_seekzTestZlibInputStream.test_seek   s   7;~~d7K7K4. !24GHHCV[[]]A&&&[[__Ra"f&&&CV[[]]A&&&[[__Ra"f&&&CV[[]]A&&&[[__Ra"f&&&gv{B222gv{B222j&+q#666E1gv{B/////rK   c                    t           j                            ddd                              t           j                                                  }t          j        |          }|d d         t          |d         dz   dz  g          z   }t          |          }t          |t          |                    }t          t          j        |j        t          |                     d S r\   )r<   r=   r>   r?   r@   rA   rB   rC   r^   r   r   rD   r5   r_   r*   r`   s        r   test_seek_bad_checksumz*TestZlibInputStream.test_seek_bad_checksum   rb   rK   c                 v   |                      d          \  }}}t          ||          }t          |                                            |                    d           t          |                                            |                    d           t          |                                           d S )Nrd   i   )rJ   r   r   all_data_readr*   )rE   rQ   rR   rG   rI   s        r   test_all_data_readz&TestZlibInputStream.test_all_data_read   s    7;~~d7K7K4. !24GHHF((***+++CF((***+++D$$&&'''''rK   c                    d}t          j        d                              t           j                                                  }t          j        ||          }t          |          }t          |t          dz   k               t          |          }t          ||          }t          |                                            |                    t          |                     t          |                                           d S )Nr)   Sr%   )r<   aranger?   r@   rA   rB   rC   rD   r   r   r   r   rr   r*   rE   COMPRESSION_LEVELrG   rH   rR   rQ   rI   s          r   test_all_data_read_overlapz.TestZlibInputStream.test_all_data_read_overlap   s    y""))"(33;;==-.?@@!/22 	#zA~5666#O44 !24GHHF((***+++CII$$&&'''''rK   c                 `   d}t          j        d                              t           j                                                  }t          j        ||          }t          |          }t          |t          dz   k               |d d         t          |d         dz   dz  g          z   }t          |          }t          ||          }t          |                                            |                    t          |                     t          t
          j        |j                   d S )Nr)   ru   r%   r2   r&   r]   )r<   rv   r?   r@   rA   rB   rC   rD   r   r   r^   r   r   rr   r*   r5   r_   rw   s          r   test_all_data_read_bad_checksumz3TestZlibInputStream.test_all_data_read_bad_checksum   s   y""))"(33;;==-.?@@!/22 	#zA~5666 +3B3/"_R%81%<$C#DEEF $O44 !24GHHF((***+++CIIdj&"677777rK   N)__name__
__module____qualname__rJ   r7   rZ   ra   rn   rp   rs   ry   r{    rK   r   r9   r9   X   s        2 2 2' ' '2
/ 
/ 
/: : :0 0 0<: : :( ( (( ( ( 8 8 8 8 8rK   r9   )__doc__r   rB   ior   tempfiler   
contextlibr   numpyr<   numpy.testingr   r   pytestr   r5   scipy.io.matlab._streamsr	   r
   r   r   r   r   r   r"   r0   r7   r9   r   rK   r   <module>r      se    
			              % % % % % %     / / / / / / / / * * * * * ** * * * * * * * * * * * * * * *
 
 
 
< < <' ' '$8 8 84P8 P8 P8 P8 P8 P8 P8 P8 P8 P8rK   