
    7bht                    
   d dl Z d dlZd dlmZmZmZ d dlZd dlZd dlZd dl	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  ed      Zd dlmZmZmZmZ  G d	 d
ej6                        Z G d dej6                        Z G d d      Z G d dej6                        Z G d dej6                        Z  G d dej6                        Z!dZ"dZ#dZ$dZ%ejL                  ddgZ'dZ(ejR                  ddejL                  ejT                  ejV                  z  dgZ,dZ-ej\                  dd d!ejL                  igZ/d"Z0ejR                  d#dejb                  d$d ejL                  d#dd%gZ2d&Z3d'Z4e5d(k(  r ejl                          yy))    N)BytesIOUnsupportedOperationDEFAULT_BUFFER_SIZE)support)_4G
bigmemtest)import_module)TESTFNunlinkFakePathlzma)LZMACompressorLZMADecompressor	LZMAErrorLZMAFilec                   n   e Zd Zd Z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ej@                   e!e"dz   d      d                Z#ej@                   e!e"dz   d!      d"               Z$d# Z%ejL                  d$        Z'd% Z(y&)(CompressorDecompressorTestCasec                 f   | j                  t        t        g        | j                  t        t        d       | j                  t        t        d       | j                  t        t        d       | j                  t        t        d       | j                  t        t        t        j
                         | j                  t              5  t        d	d
t        j                  ig       d d d        | j                  t        t        d       | j                  t        t        d       | j                  t              5  t        t        j                  d       d d d        | j                  t              5  t        t        j                  d       d d d        | j                  t        t        t               | j                  t              5  t        t        j                  t               d d d        | j                  t              5  t        t        j                  t               d d d        t               }| j                  t        |j                         | j                  t        |j                  dd       | j                  t        |j                  d       |j                         }| j                  t        |j                  d       | j                  t        |j                         t               }| j                  t        |j                         | j                  t        |j                  dd       |j                  |       | j                  t        |j                  d       y # 1 sw Y   xY w# 1 sw Y   'xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   {xY w)Ng@format checkasdfpreset   filters   idr   r    s   qwmemlimitzzz   r   r      foo   bars   blahs   quux)assertRaises	TypeErrorr   
ValueErrorr   FORMAT_AUTOFILTER_LZMA2r   
FORMAT_RAWFILTERS_RAW_1	FORMAT_XZFORMAT_ALONEcompressflush
decompressEOFError)selflzcemptylzds       8/opt/python-3.12.12/usr/lib/python3.12/test/test_lzma.pytest_simple_bad_argsz3CompressorDecompressorTestCase.test_simple_bad_args   s{   )^R8)^DA)^2>)^FC)^Q?*nT=M=MNz*!tT5F5F.G-HI + 	)%5r:)%5Fy)T__e< * z*T__yA + 	*&6Nz*DNNMJ +z*D$5$5}M + )S\\2)S\\66B)SYY8		*cllG<*cii0 )S^^4)S^^VVDu(CNNG<; +*
 *) +* +***s<   M2>M?7N N N&2M<?N	NN#&N0c                 j   | j                  t        t        dg       | j                  t        t        ddig       | j                  t        t        ddig       | j                  t              5  t        t        j
                  ddg       d d d        | j                  t              5  t        t        j                  ddg       d d d        | j                  t              5  t        t        j                  ddg       d d d        y # 1 sw Y   xY w# 1 sw Y   RxY w# 1 sw Y   y xY w)	N   wobsiter   xyzzyr   r!   ́ r   r!   foo)r+   r,   r   r-   r   r/   FILTER_DELTA
FILTER_X86r8   s    r<   test_bad_filter_specz3CompressorDecompressorTestCase.test_bad_filter_specA   s    )^j\J*n|nM*ne}oNz*4+<+<Q$G#HI +z*4+<+<Q$G#HI +z*4??1$E#FG +*	 +*****s$   1D-D)D)DD&)D2c                     t               }|j                  t               | j                  t        |j                  d       y )Ns   nyan)r   r6   COMPRESSED_XZr+   r7   r8   r;   s     r<   test_decompressor_after_eofz:CompressorDecompressorTestCase.test_decompressor_after_eofL   s,     }%(CNNG<    c                 f   t        d      }| j                  t        |j                  t               t        t
        j                  d      }| j                  t        |j                  t               t        t
        j                  d      }| j                  t        |j                  t               y )N   r$   )	r   r+   r   r6   rI   r   r2   r3   COMPRESSED_ALONErJ   s     r<   test_decompressor_memlimitz9CompressorDecompressorTestCase.test_decompressor_memlimitQ   sq    -)S^^]Ct~~=)S^^]Ct004@)S^^5EFrL   c                 .   | j                  |j                         |j                  |      }| j                  |t               | j                  |j
                  |       | j                  |j                         | j                  |j                  |       y N)assertFalseeofr6   assertEqualINPUTr   
assertTrueunused_data)r8   r;   datar   rX   outs         r<   _test_decompressorz1CompressorDecompressorTestCase._test_decompressor]   sj    !nnT"e$E* +6rL   c                     t               }| j                  |t        t        j                         t               }| j                  |t
        t        j                         y rR   )r   r[   rI   r   CHECK_CRC64rO   
CHECK_NONErJ   s     r<   test_decompressor_autoz5CompressorDecompressorTestCase.test_decompressor_autoe   sA     ]D4D4DE %5tGrL   c                     t        t        j                        }| j                  |t        t        j
                         y rR   )r   r   r2   r[   rI   r]   rJ   s     r<   test_decompressor_xzz3CompressorDecompressorTestCase.test_decompressor_xzl   s(    t~~.]D4D4DErL   c                     t        t        j                        }| j                  |t        t        j
                         y rR   )r   r   r3   r[   rO   r^   rJ   s     r<   test_decompressor_alonez6CompressorDecompressorTestCase.test_decompressor_alonep   s)    t001%5tGrL   c                     t        t        j                  t              }| j	                  |t
        t        j                         y Nr   )r   r   r0   r1   r[   COMPRESSED_RAW_1r^   rJ   s     r<   test_decompressor_raw_1z6CompressorDecompressorTestCase.test_decompressor_raw_1t   )    tF%5tGrL   c                     t        t        j                  t              }| j	                  |t
        t        j                         y re   )r   r   r0   FILTERS_RAW_2r[   COMPRESSED_RAW_2r^   rJ   s     r<   test_decompressor_raw_2z6CompressorDecompressorTestCase.test_decompressor_raw_2x   rh   rL   c                     t        t        j                  t              }| j	                  |t
        t        j                         y re   )r   r   r0   FILTERS_RAW_3r[   COMPRESSED_RAW_3r^   rJ   s     r<   test_decompressor_raw_3z6CompressorDecompressorTestCase.test_decompressor_raw_3|   rh   rL   c                     t        t        j                  t              }| j	                  |t
        t        j                         y re   )r   r   r0   FILTERS_RAW_4r[   COMPRESSED_RAW_4r^   rJ   s     r<   test_decompressor_raw_4z6CompressorDecompressorTestCase.test_decompressor_raw_4   rh   rL   c           	         t               }g }t        dt        t              d      D ]G  }| j	                  |j
                         |j                  |j                  t        ||dz                 I dj                  |      }| j                  |t               | j                  |j                  t        j                         | j                  |j
                         | j                  |j                  d       y Nr   
   rL   r   rangelenrI   rS   rT   appendr6   joinrU   rV   r   r   r]   rW   rX   r8   r;   rZ   is       r<   test_decompressor_chunksz7CompressorDecompressorTestCase.test_decompressor_chunks   s     q#m,b1ASWW%JJs~~mAad&;<= 2 hhsme$D$4$45 #.rL   c           	         t               }g }t        dt        t              d      D ]  }| j	                  |j
                         |j                  |j                  d             |j                  |j                  d             |j                  |j                  d             |j                  |j                  t        ||dz                  dj                  |      }| j                  |t               | j                  |j                  t        j                         | j                  |j
                         | j                  |j                  d       y rv   rx   r}   s       r<   test_decompressor_chunks_emptyz=CompressorDecompressorTestCase.test_decompressor_chunks_empty   s     q#m,b1ASWW%JJs~~c*+JJs~~c*+JJs~~c*+JJs~~mAad&;<= 2 hhsme$D$4$45 #.rL   c                    t               }d}g }t        t              dz  }|j                  |j	                  t        d | |             | j                  |j                         | j                  t        |d         |       |j                  |j	                  d|             | j                  |j                         | j                  t        |d         |       |j                  |j	                  t        |d  |             | j                  t        |d         |       |j                  sM|j                  |j	                  d|             | j                  t        |d         |       |j                  sMdj                  |      }| j                  |t               | j                  |j                  t        j                         | j                  |j                  d       y )Nd      
max_lengthrL   )r   rz   rI   r{   r6   rS   needs_inputrU   assertLessEqualrT   r|   rV   r   r   r]   rX   )r8   r;   r   rZ   len_s        r<    test_decompressor_chunks_maxsizez?CompressorDecompressorTestCase.test_decompressor_chunks_maxsize   s    
 =!Q&

3>>-"6-7 " 9 	:)SWz2 	

3>>#*>=>)SWz2 	

3>>-"6-7 " 9 	:SR\:6 ''JJs~~cj~AB  SWz: '' hhsme$D$4$45#.rL   c                    t               }g }| j                  |j                  t        d d d      d       |j	                  |j                  dd             |j	                  |j                  t        dd d             |j	                  |j                  t        dd               | j                  dj                  |      t               y )Nr   r   r   rL   r   i      r   rU   r6   rI   r{   r|   rV   r8   r;   rZ   s      r<   test_decompressor_inputbuf_1z;CompressorDecompressorTestCase.test_decompressor_inputbuf_1   s       	ds(;34 ( 67:	<
 	

3>>#q)* 	

3>>-C"8"=> 	

3>>-"567#.rL   c                    t               }g }| j                  |j                  t        d d d      d       |j	                  |j                  d             |j	                  |j                  t        dd d             |j	                  |j                  t        dd d             |j	                  |j                  t        dd               | j                  dj                  |      t               y )N   r   r   rL   i  r   ,  r   r   s      r<   test_decompressor_inputbuf_2z;CompressorDecompressorTestCase.test_decompressor_inputbuf_2   s       	ds(;34 ( 67:	<

3>>#&' 	

3>>-C"8!<= 	

3>>-C"8!<= 	

3>>-"567#.rL   c                 T   t               }g }|j                  |j                  t        d d d             |j                  |j                  t        dd d             |j                  |j                  t        dd               | j	                  dj                  |      t               y )Nr      r   rL   )r   r{   r6   rI   rU   r|   rV   r   s      r<   test_decompressor_inputbuf_3z;CompressorDecompressorTestCase.test_decompressor_inputbuf_3   s       	

3>>-"5q9: 	

3>>-C"8!<= 	

3>>-"567#.rL   c                 p    t               }d}| j                  |t        |z   t        j                  |       y )Ns	   fooblibarrX   )r   r[   rI   r   r]   )r8   r;   extras      r<   test_decompressor_unused_dataz<CompressorDecompressorTestCase.test_decompressor_unused_data   s6     ]U%:D<L<L,1 	  	3rL   c                    t               }| j                  t        |j                  t               t        t
        j                        }| j                  t        |j                  t               t        t
        j                        }| j                  t        |j                  t               t        t
        j                  t              }| j                  t        |j                  t               y re   )r   r+   r   r6   rf   r   r2   rO   r3   rI   r0   r1   rJ   s     r<   test_decompressor_bad_inputz:CompressorDecompressorTestCase.test_decompressor_bad_input   s     )S^^5EFt~~.)S^^5EFt001)S^^]CtF)S^^]CrL   c                     t               }| j                  t        |j                  t               | j                  t        |j                  t               y rR   )r   r+   r   r6   rf   rJ   s     r<   test_decompressor_bug_28275z:CompressorDecompressorTestCase.test_decompressor_bug_28275  s8     )S^^5EF)S^^5EFrL   c                     t               }|j                  t              |j                         z   }t	               }| j                  ||t        j                         y rR   )r   r4   rV   r5   r   r[   r   r]   r8   r9   cdatar;   s       r<   test_roundtrip_xzz0CompressorDecompressorTestCase.test_roundtrip_xz  sC    U#ciik1 UD,<,<=rL   c                     t        t        j                        }|j                  t              |j                         z   }t               }| j                  ||t        j                         y rR   )	r   r   r3   r4   rV   r5   r   r[   r^   r   s       r<   test_roundtrip_alonez3CompressorDecompressorTestCase.test_roundtrip_alone  sI    T../U#ciik1 UDOO<rL   c                    t        t        j                  t              }|j	                  t
              |j                         z   }t        t        j                  t              }| j                  ||t        j                         y re   
r   r   r0   rr   r4   rV   r5   r   r[   r^   r   s       r<   test_roundtrip_rawz1CompressorDecompressorTestCase.test_roundtrip_raw"  sQ    T__mDU#ciik1tFUDOO<rL   c                    t        t        j                  t              }|j	                  t
              }||j	                  d      z  }||j	                  d      z  }||j	                  d      z  }||j                         z  }t        t        j                  t              }| j                  ||t        j                         y )Nr   rL   r   r   s       r<   test_roundtrip_raw_emptyz7CompressorDecompressorTestCase.test_roundtrip_raw_empty(  s    T__mDU#c""c""c""tFUDOO<rL   c           	      d   t               }g }t        dt        t              d      D ],  }|j	                  |j                  t        ||dz                 . |j	                  |j                                dj                  |      }t               }| j                  ||t        j                         y rv   r   ry   rz   rV   r{   r4   r5   r|   r   r[   r   r]   r8   r9   r   r~   r;   s        r<   test_roundtrip_chunksz4CompressorDecompressorTestCase.test_roundtrip_chunks2  s    q#e*b)ALLeAadm45 *SYY[! UD,<,<=rL   c           	      $   t               }g }t        dt        t              d      D ]  }|j	                  |j                  t        ||dz                 |j	                  |j                  d             |j	                  |j                  d             |j	                  |j                  d              |j	                  |j                                dj                  |      }t               }| j                  ||t        j                         y rv   r   r   s        r<   test_roundtrip_empty_chunksz:CompressorDecompressorTestCase.test_roundtrip_empty_chunks<  s    q#e*b)ALLeAadm45LLc*+LLc*+LLc*+	 *
 	SYY[! UD,<,<=rL   c                 |    t               }| j                  |t        t        z   t        j
                  t               y )Nr   )r   r[   rI   rO   r   r]   rJ   s     r<   test_decompressor_multistreamz<CompressorDecompressorTestCase.test_decompressor_multistreamK  s4     ]5E%E $ 0 0>N 	  	PrL   r   r   )sizememusec                 *   t               }|j                  d|z        |j                         z   }t        j	                  |      }	 | j                  t        |      |       | j                  t        |j                  d            d       d }y # d }w xY w)N   xr   )r   r4   r5   r   r6   rU   rz   strip)r8   r   r9   r   ddatas        r<   test_compressor_bigmemz5CompressorDecompressorTestCase.test_compressor_bigmemR  sy     TD[)CIIK7&	SZ.ST!23Q7EDEs   AB Br   c                 
   t               }t        d|      }t        j                  |      }	 ||dz
  |z  dz   z  }t        j                  |      }|j                  |      }| j                  ||       d x}x}}y # d x}x}}w xY w)Ni      )r   minrandom	randbytesr   r4   r6   rU   )r8   r   r;   	blocksizeblockinputr   r   s           r<   test_decompressor_bigmemz7CompressorDecompressorTestCase.test_decompressor_bigmem^  s      ($/	  +	)d1f2Q67EMM%(ENN5)EUE*$((E(EED(E(EEs   AA: :Bc                 f   t        t        j                  dz         D ]z  }| j                  t              5  t        j
                  t               |       d d d        | j                  t              5  t        j
                  t               |       d d d        | y # 1 sw Y   HxY w# 1 sw Y   xY wNr   )ry   pickleHIGHEST_PROTOCOLr+   r,   dumpsr   r   )r8   protos     r<   test_picklez*CompressorDecompressorTestCase.test_picklen  sv    622Q67E""9-^-u5 .""9--/7 .- 8----s   B1B'B$	'B0	c                     t        j                  t        d      }t               } |       }t	        d      D ]  }|j                           | j                   |       |z
  dd       y )Ngettotalrefcountr   r   rw   )delta)r   get_attributesysr   ry   __init__assertAlmostEqual)r8   r   r;   refs_beforer~   s        r<   &test_refleaks_in_decompressor___init__zECompressorDecompressorTestCase.test_refleaks_in_decompressor___init__u  s[    "006HI &(sALLN /1K?"MrL   c                     | j                  t        j                  t              j                  t	                     d       y NrL   )rU   r   __new__r6   bytesrF   s    r<   )test_uninitialized_LZMADecompressor_crashzHCompressorDecompressorTestCase.test_uninitialized_LZMADecompressor_crash~  s-    )112BC#EG,c	3rL   NrL   ))__name__
__module____qualname__r=   rG   rK   rP   r[   r_   ra   rc   rg   rl   rp   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   skip_if_pgo_taskr   r   r   r   r   refcount_testr   r   r#   rL   r<   r   r      s   &=P	H=
G7HFHHHHH
///@/,/*/ 3DG>===>>P S3Yq) *  S3Yq)
) * 
)8 N N3rL   r   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)"CompressDecompressFunctionTestCasec                    | j                  t        t        j                         | j                  t        t        j                  g        | j                  t        t        j                  dd       | j                  t        t        j                  dd       | j                  t        t        j                  dd       | j                  t        t        j                  dd	       | j                  t              5  t        j                  dd
dt        j
                  ig       d d d        | j                  t        t        j                         | j                  t        t        j                  g        | j                  t        t        j                  dd       | j                  t        t        j                  dd       | j                  t              5  t        j                  dt        j                  i        d d d        | j                  t              5  t        j                  dt        j                  d       d d d        | j                  t              5  t        j                  dt        	       d d d        | j                  t              5  t        j                  dt        j                  t               d d d        | j                  t              5  t        j                  dt        j                  t               d d d        y # 1 sw Y   xY w# 1 sw Y   %xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrL   xzr   noner   blahr   rN   r   r   r!   r"   r   g   1Ar$   r(   r'   r   r%   )r+   r,   r   r4   r-   r/   r6   r0   r1   r2   r3   rF   s    r<   test_bad_argsz0CompressDecompressFunctionTestCase.test_bad_args  s6   )T]]3)T]]B7)T]]CE)T]]CvF)T]]CG)T]]CFz*MM#a49J9J2K1LMM + 	)T__5)T__b9)T__c&I)T__cEJy)OOCOD * z*OOC)OL + z*OOCO7 +z*OOCON +z*OO 1 1=  J +*# +* *) +* +*****sH   ;*L'L#'L0!L<+M"+ML #L-0L9<MMMc                    | j                  t              5  t        j                  t        d       d d d        | j                  t              5  t        j                  t        t        j
                  d       d d d        | j                  t              5  t        j                  t        t        j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   y xY w)NrN   r$   r   )r+   r   r   r6   rI   r2   rO   r3   rF   s    r<   test_decompress_memlimitz;CompressDecompressFunctionTestCase.test_decompress_memlimit  s    y)OOMDO9 *y)OO!$..4  I * y)OO$T->->  O *) *))) *)s#   C+C+C#CC #C,c                    t         j                  t              }| j                  |t               t         j                  t
              }| j                  |t               t         j                  t        t         j                        }| j                  |t               t         j                  t
        t         j                        }| j                  |t               t         j                  t        t         j                  t              }| j                  |t               t         j                  t        t         j                  t              }| j                  |t               t         j                  t        t         j                  t              }| j                  |t               t         j                  t        t         j                  t               }| j                  |t               y re   )r   r6   rI   rU   rV   rO   r2   r3   rf   r0   r1   rk   rj   ro   rn   rs   rr   r8   r   s     r<   test_decompress_good_inputz=CompressDecompressFunctionTestCase.test_decompress_good_input  sF   .& 01&t~~>& 0$2C2CD& $//=   J& $//=   J& $//=   J& $//=   J&rL   c                    | j                  t        t        j                  t        d d        | j                  t        t        j                  t
        d d        | j                  t        t        j                  t        d d t        j                  t               | j                  t        t        j                  t        d d t        j                  t               | j                  t        t        j                  t        d d t        j                  t               | j                  t        t        j                  t        d d t        j                  t               y )N   r(   )r+   r   r   r6   rI   rO   rf   r0   r1   rk   rj   ro   rn   rs   rr   rF   s    r<    test_decompress_incomplete_inputzCCompressDecompressFunctionTestCase.test_decompress_incomplete_input  s    )T__mDS6IJ)T__6Ft6LM)T__6Ft6L!%- 	 	I)T__6Ft6L!%- 	 	I)T__6Ft6L!%- 	 	I)T__6Ft6L!%- 	 	IrL   c                    | j                  t              5  t        j                  t               d d d        | j                  t              5  t        j                  t
               d d d        | j                  t              5  t        j                  t        t        j                         d d d        | j                  t              5  t        j                  t        t        j                         d d d        | j                  t              5  t        j                  t        t        j                  t               d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   {xY w# 1 sw Y   y xY wNr   r(   )r+   r   r   r6   COMPRESSED_BOGUSrf   rO   r2   rI   r3   r0   r1   rF   s    r<   test_decompress_bad_inputz<CompressDecompressFunctionTestCase.test_decompress_bad_input  s    y)OO,- *y)OO,- *y)OO,T^^OD *y)OOM$2C2COD *y)OOM$//$1  3 *) *)))))))))s;   E
E*E#*E//E;
EE #E,/E8;Fc                    t         j                  t              }t         j                  |      }| j	                  |t               t         j                  t        t         j
                        }t         j                  |      }| j	                  |t               t         j                  t        t         j                        }t         j                  |      }| j	                  |t               t         j                  t        t         j                  t              }t         j                  |t         j                  t              }| j	                  |t               y re   )	r   r4   rV   r6   rU   r2   r3   r0   rr   )r8   r   r   s      r<   test_roundtripz1CompressDecompressFunctionTestCase.test_roundtrip  s    e$&&eT^^4&&eT%6%67&&eT__mLtN&rL   c                 v    t         j                  t        t        z         }| j	                  |t
        dz         y )Nr   )r   r6   rI   rO   rU   rV   r   s     r<   test_decompress_multistreamz>CompressDecompressFunctionTestCase.test_decompress_multistream  s*    0@ @A	*rL   c                 p    t         j                  t        t        z         }| j	                  |t
               y rR   r   r6   rI   r   rU   rV   r   s     r<   test_decompress_trailing_junkz@CompressDecompressFunctionTestCase.test_decompress_trailing_junk  s&    0@ @A&rL   c                 |    t         j                  t        dz  t        z         }| j	                  |t
        dz         y )Nr   r   r   s     r<   )test_decompress_multistream_trailing_junkzLCompressDecompressFunctionTestCase.test_decompress_multistream_trailing_junk  s/     14D DE	*rL   N)r   r   r   r   r   r   r   r   r   r   r   r   r#   rL   r<   r   r     s2    J:O':
I3'&+'+rL   r   c                   "    e Zd Z	 ddZd Zd Zy)TempFilec                      || _         || _        y rR   )filenamerY   )r8   r   rY   s      r<   r   zTempFile.__init__  s     	rL   c                     t        | j                  d      5 }|j                  | j                         d d d        y # 1 sw Y   y xY w)Nwb)openr   writerY   r8   fs     r<   	__enter__zTempFile.__enter__  s.    $--&!GGDII '&&s	   <Ac                 .    t        | j                         y rR   )r   r   )r8   argss     r<   __exit__zTempFile.__exit__  s    t}}rL   Nr   )r   r   r   r   r  r	  r#   rL   r<   r   r   
  s    GrL   r   c                      e 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 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. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDyC)DFileTestCasec                    t        t        t                    5 }| j                  |t                d d d        t        t               d      5 }| j                  |t                d d d        t        t               d      5 }| j                  |t                d d d        t        t               d      5 }| j                  |t                d d d        y # 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y   UxY w# 1 sw Y   y xY w)Nwxa)r   r   rI   assertIsInstancer  s     r<   	test_initzFileTestCase.test_init  s    gm,-!!!X. .gi%!!!X. &gi%!!!X. &gi%!!!X. &% .-%%%%%%s/   CC?C*2C6CC'*C36C?c                    t        t              }t        |t              5  t	        |      5 }| j                  |j                         t               d d d        t	        |d      5 }|j                  t               d d d        t	        |      5 }| j                  |j                         t        dz         d d d        d d d        y # 1 sw Y   wxY w# 1 sw Y   YxY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nr  r   )	r   r
   r   rI   r   rU   readrV   r  )r8   r   r  s      r<    test_init_with_PathLike_filenamez-FileTestCase.test_init_with_PathLike_filename%  s    F#h.(#q  51 $(C(A )(#q  5195 $ /.##((## /.sR   C+%CC+%C;C+(C6C+C	C+C	C+C(	$C++C4c                 8   t        t        t              5  t        t              5 }	 d d d        t        t        d      5 }	 d d d        t        t        d      5 }	 d d d        d d d        y # 1 sw Y   FxY w# 1 sw Y   8xY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nr  r  )r   r
   rI   r   r  s     r<   test_init_with_filenamez$FileTestCase.test_init_with_filename/  sl    fm,&!Q "&#&! '&#&! ' -,!!&&&& -,sP   BA,BA8BBB,A5	1B8B	=BB		BBc                    t        t              5  t        t        d      5 }| j                  |t               d d d        t        t        d      5 }| j                  |t               d d d        t        t        d      5 }| j                  |t               d d d        t        t        d      5 }| j                  |t               d d d        t        t        d      5 }| j                  |t               d d d        t        t        d      5 }| j                  |t               d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   qxY w# 1 sw Y   NxY w# 1 sw Y   y xY w)Nrrbr  r  r  ab)r   r
   r   r  r  s     r<   test_init_modezFileTestCase.test_init_mode8  s   f&#&!%%a2 '&$'1%%a2 (&#&!%%a2 '&$'1%%a2 (&#&!%%a2 '&$'1%%a2 ( &&''&&''&&'' s   E<D4E<E 'E<?EE<.EE<E$4E<E0#E<4D=	9E< E		E<E	E<E!	E<$E-	)E<0E9	5E<<Fc                 N   | j                  t        t               dD ]n  }t        t               t        t        |      5 }| j	                  |t               d d d        | j                  t              5  t        t        |       d d d        p y # 1 sw Y   :xY w# 1 sw Y   xY w)N)r  xb)
addCleanupr   r
   r   r  r+   FileExistsError)r8   moder  s      r<   test_init_with_x_modez"FileTestCase.test_init_with_x_modeG  sp    'D6N&$'1%%a2 (""?3& 43	  ''33s   B3BB	B$	c                    | j                  t              5  t        t        t              d       d d d        | j                  t              5  t        t        t              d       d d d        | j                  t              5  t        t        t              d       d d d        | j                  t              5  t        t        t              d       d d d        | j                  t              5  t        t        t              d       d d d        | j                  t              5  t        t        t              d       d d d        | j                  t              5  t        t        t              d       d d d        | j                  t              5  t        t        t              d       d d d        | j                  t              5  t        t        t              d	       d d d        | j                  t              5  t        t        t              d
       d d d        | j                  t              5  t        t        t              d       d d d        y # 1 sw Y   1xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   _xY w# 1 sw Y   5xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)N)r   r  r   xtzx+rxwxrtzr+wtzw+rw)r+   r-   r   r   rI   rF   s    r<   test_init_bad_modezFileTestCase.test_init_bad_modeP  s   z*W]+X6 +z*W]+R0 +z*W]+T2 +z*W]+T2 +z*W]+T2 +z*W]+T2 +z*W]+T2 +z*W]+T2 +z*W]+T2 +z*W]+T2 +z*W]+T2 +*) +*********************s   II,I9;J2J)J  J-J:KK<KI),I69JJJ J*-J7:KKKK(c                     | j                  t              5  t        t               dd       d d d        | j                  t              5  t        t               dt
        j                         d d d        | j                  t              5  t        t               dt
        j                  dz          d d d        | j                  t              5  t        t        t              t
        j                         d d d        | j                  t              5  t        t        t              t
        j                         d d d        | j                  t              5  t        t        t              t
        j                         d d d        | j                  t              5  t        t        t              t
        j                         d d d        | j                  t              5  t        t        t              t
        j                         d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   JxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr  s   asdr   r   )r+   r,   r   r   r   r   CHECK_UNKNOWNCHECK_ID_MAXr-   rI   r^   CHECK_CRC32r]   CHECK_SHA256rF   s    r<   test_init_bad_checkz FileTestCase.test_init_bad_checkh  s   y)WY62 * y)WY4+=+=> *y)WY4+<+<q+@A * z*W]+4??C +z*W]+43C3CD +z*W]+43C3CD +z*W]+43D3DE +z*W]+43E3EF +*! *) *))) +*********s_   H
%H((H5)I)I)I#)I())I4H%(H25H?III%(I14I=c                    | j                  t              5  t        t               dd       d d d        | j                  t              5  t        t               dd       d d d        | j                  t              5  t        t               dd       d d d        | j                  t
              5  t        t               dd       d d d        | j                  t
              5  t        t               dd       d d d        | j                  t              5  t        t               dd       d d d        | j                  t              5  t        t        t              d	       d d d        y # 1 sw Y   GxY w# 1 sw Y    xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)
Nr  g(\@r   rw      r   irC   r   )r+   r,   r   r   r   OverflowErrorr-   rI   rF   s    r<   test_init_bad_presetz!FileTestCase.test_init_bad_preset|  s$   y)WYD1 *y)WYB/ *y)WYB/ *}-WYB/ .}-WYB/ .y)WYE2 * z*W]+A6 +* *)))))----)) +*sS   E2
E?>F2F&F$F0F<2E<?F	FF!$F-0F9<Gc                    | j                  t              5  t        t               ddg       d d d        | j                  t              5  t        t               dddig       d d d        | j                  t              5  t        t               dddig       d d d        | j                  t              5  t        t               dt
        j                  dd	g       d d d        | j                  t              5  t        t               dt
        j                  dd	g       d d d        | j                  t              5  t        t               dt
        j                  dd	g       d d d        y # 1 sw Y   KxY w# 1 sw Y   !xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)
Nr  r?   r   r@   r   r!   rA   r   rB   )	r+   r,   r   r   r-   r   r/   rD   rE   rF   s    r<   test_init_bad_filter_specz&FileTestCase.test_init_bad_filter_spec  sA   y)WYj\: *z*WYwl^< +z*WYtUm_= +z*WY%)%6%6qABD + z*WY%)%6%6qABD + z*WY%)__Q?@B +* *)****** +* +*sG   E7FF9)F?)F))F57FFFF&)F25F>c                     | j                  t              5  t        t               dt        j
                  dt               d d d        y # 1 sw Y   y xY w)Nr     )r   r   r   )r+   r-   r   r   r   r0   r1   rF   s    r<   !test_init_with_preset_and_filtersz.FileTestCase.test_init_with_preset_and_filters  s5    z*WYDOO}6 +**s   +A

Ac                    t        t              5 }t        |      }|j                          | j	                  |j
                         |j                          | j	                  |j
                         d d d        t        t        t              5  t        t              }|j                  }|j                          | j                  |j
                         |j                          d d d        y # 1 sw Y   }xY w# 1 sw Y   y xY wrR   )
r   rI   r   closerS   closedr   r
   _fprW   )r8   srcr  fps       r<   
test_closezFileTestCase.test_close  s    ]#sAGGISZZ(GGISZZ( $ fm, ABGGIOOBII&GGI -, $# -,s   A"C.AC:.C7:Dc                 "   t        t        t                    }	 | j                  |j                         |j                          | j                  |j                         |j                          | j                  |j                         t        t               d      }	 | j                  |j                         |j                          | j                  |j                         y # |j                          w xY w# |j                          w xY wNr  )r   r   rI   rS   r;  r  r:  rW   r  s     r<   test_closedzFileTestCase.test_closed  s    W]+,	QXX&FFHQXX&GGI!WY$	QXX&GGI! GGI GGIs   AC'  C< 'C9<Dc                    t        t        t                    }	 | j                  t        |j
                         |j                          | j                  t        |j
                         t        t        t              5  t        t              }	 | j                  |j                         |j                  j                                | j                  |j                         t               |j                          	 d d d        | j                  t        |j
                         y # |j                          w xY w# |j                          w xY w# 1 sw Y   TxY wrR   )r   r   rI   r+   r   filenor:  r-   r   r
   rU   r<  r  intr  s     r<   test_filenozFileTestCase.test_fileno  s    W]+,	2AHH=GGI*ahh/fm, A  QUU\\^<%%ahhj#6	 - 	*ahh/ GGI 	 -,s0    D% >EAD:+E%D7:EEEc                 \   t        t        t                    }	 | j                  |j	                                |j                          | j                  |j	                                |j                          | j                  t        |j                         t        t               d      }	 | j                  |j	                                |j                          | j                  t        |j                         t        t              }d |_        t        |      }	 | j                  |j	                                |j                          | j                  t        |j                         y # |j                          w xY w# |j                          w xY w# |j                          w xY w)Nr  c                       y)NFr#   r#   rL   r<   <lambda>z,FileTestCase.test_seekable.<locals>.<lambda>  s    urL   )
r   r   rI   rW   seekabler  r:  r+   r-   rS   )r8   r  r=  s      r<   test_seekablezFileTestCase.test_seekable  s   W]+,	OOAJJL)FFHOOAJJL)GGI*ajj1WY$	QZZ\*GGI*ajj1m$$SM	QZZ\*GGI*ajj1# GGI GGI GGIs$   AE/ -F F /FFF+c                 N   t        t        t                    }	 | j                  |j	                                |j                          | j                  |j	                                |j                          | j                  t        |j                         t        t               d      }	 | j                  |j	                                |j                          | j                  t        |j                         y # |j                          w xY w# |j                          w xY wrA  )
r   r   rI   rW   readabler  r:  r+   r-   rS   r  s     r<   test_readablezFileTestCase.test_readable  s    W]+,	OOAJJL)FFHOOAJJL)GGI*ajj1WY$	QZZ\*GGI*ajj1 GGI GGI   AC= -D =DD$c                 N   t        t        t                    }	 | j                  |j	                                |j                          | j                  |j	                                |j                          | j                  t        |j                         t        t               d      }	 | j                  |j	                                |j                          | j                  t        |j                         y # |j                          w xY w# |j                          w xY wrA  )
r   r   rI   rS   writabler  r:  r+   r-   rW   r  s     r<   test_writablezFileTestCase.test_writable  s    W]+,	QZZ\*FFHQZZ\*GGI*ajj1WY$	OOAJJL)GGI*ajj1 GGI GGIrO  c                    t        t        t                    5 }| j                  |j	                         t
               | j                  |j	                         d       d d d        t        t        t                    5 }| j                  |j	                         t
               d d d        t        t        t              t        j                        5 }| j                  |j	                         t
               | j                  |j	                         d       d d d        t        t        t              t        j                        5 }| j                  |j	                         t
               | j                  |j	                         d       d d d        t        t        t              t        j                  t              5 }| j                  |j	                         t
               | j                  |j	                         d       d d d        t        t        t              t        j                  t              5 }| j                  |j	                         t
               | j                  |j	                         d       d d d        t        t        t              t        j                  t               5 }| j                  |j	                         t
               | j                  |j	                         d       d d d        t        t        t"              t        j                  t$              5 }| j                  |j	                         t
               | j                  |j	                         d       d d d        y # 1 sw Y   "xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   @xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrL   r   r(   )r   r   rI   rU   r  rV   rO   r   r2   r3   rf   r0   r1   rk   rj   ro   rn   rs   rr   r  s     r<   	test_readzFileTestCase.test_read  s   gm,-QVVXu-QVVXs+ . g./0AQVVXu- 1gm,T^^DQVVXu-QVVXs+ E g./8I8IJaQVVXu-QVVXs+ K g./!__mEHIQVVXu-QVVXs+E g./!__mEHIQVVXu-QVVXs+E g./!__mEHIQVVXu-QVVXs+E g./!__mEHIQVVXu-QVVXs+E E/ .- 10DD KJE EE EE EE Esf   AM>>%NANAN%AN2<AN?6AO0AO>NNN"%N/2N<?O	OO!c                    t        t        t                    5 }| j                  |j	                  d      d       d d d        t        t        t
                    5 }| j                  |j	                  d      d       d d d        t        t        t              t        j                        5 }| j                  |j	                  d      d       d d d        t        t        t
              t        j                        5 }| j                  |j	                  d      d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   y xY w)Nr   rL   r   )	r   r   rI   rU   r  rO   r   r2   r3   r  s     r<   test_read_0zFileTestCase.test_read_01  s    gm,-QVVAY, .g./0AQVVAY, 1gm,T^^DQVVAY, Eg./8I8IJaQVVAY, KJ .-00DDJJs/   "D*"D6-"E?"E*D36D?EEc                 R   t        t        t                    5 }g }|j                  d      x}r@| j	                  t        |      d       |j                  |       |j                  d      x}r@| j                  dj                  |      t               d d d        y # 1 sw Y   y xY wNrw   rL   )
r   r   rI   r  r   rz   r{   rU   r|   rV   )r8   r  chunksresults       r<   test_read_10zFileTestCase.test_read_10;  s    gm,-FFF2J&&&$$S["5f% FF2J&&& SXXf-u5 .--s   AB/%BB&c                 @   t        t        t        dz              5 }| j                  |j	                         t
        dz         d d d        t        t        t        t        z               5 }| j                  |j	                         t
        dz         d d d        t        t        t        dz        t        j                  t              5 }| j                  |j	                         t
        dz         d d d        y # 1 sw Y   xY w# 1 sw Y   vxY w# 1 sw Y   y xY w)Nr   r      r(   )r   r   rI   rU   r  rV   rO   ro   r   r0   rn   r  s     r<   test_read_multistreamz"FileTestCase.test_read_multistreamC  s    gma/01QQVVXuqy1 2gm.>>?@AQVVXuqy1 Ag.23!__mEHIQVVXuqy1E E	 21@@E Es#   (C<+(D(D<DDDc                 :   t         j                  }t        t              t         _        	 t	        t        t        dz              5 }| j                  |j                         t        dz         d d d        |t         _        y # 1 sw Y   xY w# |t         _        w xY wNr   )	_compressionBUFFER_SIZErz   rI   r   r   rU   r  rV   )r8   saved_buffer_sizer  s      r<   )test_read_multistream_buffer_size_alignedz6FileTestCase.test_read_multistream_buffer_size_alignedL  ss     )44#&}#5 	9'-1"456!  5195 7 (9L$ 76 (9L$s#   B (B-B B
B Bc                     t        t        t        t        z               5 }| j	                  |j                         t               d d d        y # 1 sw Y   y xY wrR   r   r   rI   r   rU   r  rV   r  s     r<   test_read_trailing_junkz$FileTestCase.test_read_trailing_junkW  s:    gm.>>?@AQVVXu- A@@s   %AAc                     t        t        t        dz  t        z               5 }| j	                  |j                         t        dz         d d d        y # 1 sw Y   y xY wr`  rf  r  s     r<   #test_read_multistream_trailing_junkz0FileTestCase.test_read_multistream_trailing_junk[  sC    gma/2BBCDQVVXuqy1 EDDs   (AAc                    t        t        t              5  t        t              5 }| j	                  |j                         t               | j	                  |j                         d       | j                  |j                         t               | j                  |j                         d       | j                  |j                         d       | j                  |j                         d       | j                  |j                  d       d d d        | j                  j                  d       | j                  t         |j                         | j                  t         |j                         | j                  t         |j                         | j                  t         |j                         d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NrL   TF)r   r
   rI   r   rU   r  rV   r  rD  rE  assertIsrM  rQ  rJ  r;  r+   r-   r  s     r<   test_read_from_filez FileTestCase.test_read_from_file_  s'   fm,&!Q  51  3/%%ahhj#6ajjlD1ajjlE2ajjlD1ahh. " MM!((D)j!((3j!**5j!**5j!**5 -,!! -,s$   GC%F7
B$G7G 	<GGc                 P   t        j                  t              }t        t        t              5  t        |      5 }| j                  |j                         t               | j                  |j                         d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wr   )	osfsencoder
   r   rI   r   rU   r  rV   )r8   bytes_filenamer  s      r<   'test_read_from_file_with_bytes_filenamez4FileTestCase.test_read_from_file_with_bytes_filenameo  sm    V,fm,.)Q  51  3/ * -,)) -,s#   BAB?BB	BB%c                    t        t        t              5  t        t        d      5 }t	        |      5 }| j                  |j                         t               | j                  |j                         d       | j                  |j                         |j                                | j                  |j                         d       | j                  |j                         d       | j                  |j                         d       | j                  |j                  d       d d d        | j                  j                  d       | j                  t        |j                         | j                  t        |j                         | j                  t        |j                         | j                  t        |j                         d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY wNr  rL   TF)r   r
   rI   r  r   rU   r  rV   rD  rk  rM  rQ  rJ  r;  r+   r-   )r8   rawr  s      r<   test_read_from_fileobjz#FileTestCase.test_read_from_fileobjv  sE   fm,fd#sc]a$$QVVXu5$$QVVXs3$$QXXZ>MM!**,5MM!**,6MM!**,5MM!((E2 # ahh-!!*ahh7!!*ajj9!!*ajj9!!*ajj9 $ -,"] $# -,s;   G.G"C/G!B$G"G.GG""G+	'G..G7c                 <   t        t        t              5  t        j                  t        t        j
                        }t	        |d      5 }t        |      5 }| j                  |j                         t               | j                  |j                         d       | j                  |j                         |j                                | j                  |j                         d       | j                  |j                         d       | j                  |j                         d       | j                  |j                  d       d d d        | j                  j                  d       | j!                  t"        |j                         | j!                  t"        |j                         | j!                  t"        |j                         | j!                  t"        |j                         d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY wrs  )r   r
   rI   rn  r  O_RDONLYr   rU   r  rV   rD  rk  rM  rQ  rJ  r;  r+   r-   )r8   fdrt  r  s       r<   $test_read_from_fileobj_with_int_namez1FileTestCase.test_read_from_fileobj_with_int_name  sY   fm,-Bb$3c]a$$QVVXu5$$QVVXs3$$QXXZ>MM!**,5MM!**,6MM!**,5MM!((E2 # ahh-!!*ahh7!!*ajj9!!*ajj9!!*ajj9   -, #]   -,s=   5H
HC/G:B$H)H:H?HH	HHc                     t        t        t        d d             5 }| j                  t        |j
                         d d d        y # 1 sw Y   y xY w)Nr   )r   r   rI   r+   r7   r  r  s     r<   test_read_incompletez!FileTestCase.test_read_incomplete  s8    gmDS123qh/ 433s   !AAc                 Z   t         d d }t        t        |            5 }| j                  t        |j
                         d d d        t        t        |            5 }| j                  |j                  t        t                    t               | j                  t        |j
                  d       d d d        t        d      D ]C  }t        t        |d |             5 }| j                  t        |j
                  d       d d d        E y # 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   hxY w)Nir      )
rI   r   r   r+   r7   r  rU   rz   rV   ry   )r8   	truncatedr  r~   s       r<   test_read_truncatedz FileTestCase.test_read_truncated  s     "$3'	gi()Qh/ *gi()QQVVCJ/7h2 * rA')BQ-01Q!!(AFFA6 21  *)))
 21s$   !D	AD"D!	DD!D*	c                    t        t        t                    }|j                          | j	                  t
        |j                         t        t               d      5 }| j	                  t
        |j                         d d d        t        t        t                    5 }| j	                  t        |j                  t                      d d d        y # 1 sw Y   TxY w# 1 sw Y   y xY wrA  )	r   r   rI   r:  r+   r-   r  r,   floatr  s     r<   test_read_bad_argszFileTestCase.test_read_bad_args  s    W]+,		*aff-gi%j!&&1 &gm,-i9 .- &%--s   !C*CCC&c                     t        t        t                    5 }| j                  t        |j
                         d d d        y # 1 sw Y   y xY wrR   )r   r   r   r+   r   r  r  s     r<   test_read_bad_datazFileTestCase.test_read_bad_data  s2    g./0Ai0 100s   !AAc                 X   t        t        t                    5 }g }|j                         x}r$|j	                  |       |j                         x}r$| j                  dj                  |      t               | j                  |j                         d       d d d        y # 1 sw Y   y xY wr   r   r   rI   read1r{   rU   r|   rV   r8   r  blocksrZ  s       r<   
test_read1zFileTestCase.test_read1  s    gm,-FGGI%&%f% GGI%&%SXXf-u5QWWY, .--s   8B AB  B)c                     t        t        t                    5 }| j                  |j	                  d      d       d d d        y # 1 sw Y   y xY w)Nr   rL   )r   r   rI   rU   r  r  s     r<   test_read1_0zFileTestCase.test_read1_0  s5    gm,-QWWQZ- .--s   "AAc                 \   t        t        t                    5 }g }|j                  d      x}r%|j	                  |       |j                  d      x}r%| j                  dj                  |      t               | j                  |j                         d       d d d        y # 1 sw Y   y xY wrX  r  r  s       r<   test_read1_10zFileTestCase.test_read1_10  s    gm,-FGGBK'&'f% GGBK'&'SXXf-u5QWWY, .--s   :B"AB""B+c                 d   t        t        t        dz              5 }g }|j                         x}r$|j	                  |       |j                         x}r$| j                  dj                  |      t        dz         | j                  |j                         d       d d d        y # 1 sw Y   y xY w)Nr   rL   r  r  s       r<   test_read1_multistreamz#FileTestCase.test_read1_multistream  s    gma/01QFGGI%&%f% GGI%&%SXXf-uqy9QWWY, 211s   8B&AB&&B/c                    t        t        t                    }|j                          | j	                  t
        |j                         t        t               d      5 }| j	                  t
        |j                         d d d        t        t        t                    5 }| j	                  t        |j                  d        d d d        y # 1 sw Y   LxY w# 1 sw Y   y xY wrA  )r   r   rI   r:  r+   r-   r  r,   r  s     r<   test_read1_bad_argsz FileTestCase.test_read1_bad_args  s    W]+,		*agg.gi%j!''2 &gm,-i$7 .- &%--s   !C	"C	CCc                    t        t        t                    5 }|j                         }| j	                  t        |      d       | j                  t        j                  |             | j                  |j                         t               d d d        t        t        t                    5 }|j                  d      }| j	                  t        |      d       | j                  t        j                  |             | j                  |j                         t               d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   rw   )r   r   rI   peekassertGreaterrz   rW   rV   
startswithrU   r  )r8   r  rZ  s      r<   	test_peekzFileTestCase.test_peek  s    gm,-VVXFs6{A.OOE,,V45QVVXu-	 .
 gm,-VVBZFs6{A.OOE,,V45QVVXu-	 .- .-
 .-s   A4D+-A5D7+D47E c                     t        t               d      5 }| j                  t        |j                         d d d        y # 1 sw Y   y xY wrA  )r   r   r+   r-   r  r  s     r<   test_peek_bad_argszFileTestCase.test_peek_bad_args  s0    gi%j!&&1 &%%s	   !?Ac                    t        t              5 }|j                         }d d d        t        t        t                    5 }| j                  t        t        |                   d d d        t        t        t                    5 }| j                  t        t        |                   d d d        t        t        t              t        j                        5 }| j                  t        t        |                   d d d        t        t        t              t        j                        5 }| j                  t        t        |                   d d d        t        t        t              t        j                  t              5 }| j                  t        t        |                   d d d        y # 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   )xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY wr   )r   rV   	readlinesr   rI   assertListEquallistiterrO   r   r2   r3   rk   r0   rj   r8   r  liness      r<   test_iteratorzFileTestCase.test_iterator  sO   U^qKKME gm,-  d1g6 .g./0A  d1g6 1gm,T^^D  d1g6 Eg./8I8IJa  d1g6 Kg./!__mEHI  d1g6E E ^--00DDJJE EsG   F8%G%G%G0%G+
%G78GGGG(+G47H c                    t        t              5 }|j                         }d d d        t        t        t                    5 }D ]"  }| j                  |j                         |       $ 	 d d d        y # 1 sw Y   SxY w# 1 sw Y   y xY wrR   )r   rV   r  r   rI   rU   readline)r8   r  r  lines       r<   test_readlinezFileTestCase.test_readline  sa    U^qKKME gm,-  t4  .- ^--s   A3(A?3A<?Bc                    t        t              5 }|j                         }d d d        t        t        t                    5 }| j                  |j                                d d d        y # 1 sw Y   KxY w# 1 sw Y   y xY wrR   )r   rV   r  r   rI   r  r  s      r<   test_readlineszFileTestCase.test_readlines  sW    U^qKKME gm,-  6 .- ^--s   A+!A7+A47B c                    	 t         j                  dt        d      z  d      }| j                  t	        |      t
        j                         t        t        |            }| j                  |j                  d      d       dt        z   }| j                  |j                  j                  j                         |d       y )N    g    >Ar7  r   r   z)Excessive amount of data was decompressed)r   r4   rE  
assertLessrz   ra  rb  r   r   rU   r  r   r   _bufferrt  tell)r8   bombdecomp
max_decomps       r<   test_decompress_limitedz$FileTestCase.test_decompress_limited	  s    ;}}USX-a}8D	<#;#;<'$-(Q/,,
V^^//446
7	9rL   c                 R   t               5 }t        |d      5 }|j                  t               d d d        t        j                  t              }| j                  |j                         |       d d d        t               5 }t        |dt        j                        5 }|j                  t               d d d        t        j                  t        t        j                        }| j                  |j                         |       d d d        t               5 }t        |dt        j                        5 }|j                  t               d d d        t        j                  t        t        j                        }| j                  |j                         |       d d d        t               5 }t        |dt        j                  t              5 }|j                  t               d d d        t        j                  t        t        j                  t              }| j                  |j                         |       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   0xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr  r   r(   )r   r   r  rV   r   r4   rU   getvaluer2   r3   r0   rj   )r8   dstr  expecteds       r<   
test_writezFileTestCase.test_write  s   Y##s#q $}}U+HS\\^X6	 
 Y##s4>>:a ;}}U4>>}BHS\\^X6	 
 Y##s4+<+<= >}}U43D3D}EHS\\^X6	 
 Y##s4??"/1451 }}U4??-: % <HS\\^X6 Y $# Y ;: Y >= Y1 1 Ys   IIAII+I4AI+J4I8
AJ-"JJ%AJI		III(	#I++I58J	=JJJ	JJ&c           	      l   t               5 }t        |d      5 }t        dt        t              d      D ]  }|j                  t        ||dz            	 d d d        t        j                  t              }| j                  |j                         |       d d d        y # 1 sw Y   KxY w# 1 sw Y   y xY w)Nr  r   rw   )
r   r   ry   rz   rV   r  r   r4   rU   r  )r8   r  r  startr  s        r<   test_write_10zFileTestCase.test_write_10,  s    Y##s#q"1c%j"5EGGE%b12 6 $ }}U+HS\\^X6 Y## Ys#   B*;BAB*B'	#B**B3c                    t         d d }t         dd }t         dd  }dj                  d |||fD              }t               5 }t        |d      5 }|j	                  |       d d d        t        |d      5 }|j	                  |       d d d        t        |d      5 }|j	                  |       d d d        | j                  |j                         |       d d d        y # 1 sw Y   ~xY w# 1 sw Y   dxY w# 1 sw Y   JxY w# 1 sw Y   y xY w)NrN      rL   c              3   F   K   | ]  }t         j                  |        y wrR   r   r4   .0r  s     r<   	<genexpr>z1FileTestCase.test_write_append.<locals>.<genexpr>8       L6KDMM!,6K   !r  r  )rV   r|   r   r   r  rU   r  )r8   part1part2part3r  r  r  s          r<   test_write_appendzFileTestCase.test_write_append4  s    etd4 de88LueU6KLLY##s#q $#s#q $#s#q $S\\^X6 Y###### YsT   DC D4C)DC5,(DC&	"D)C2	.D5C>	:DD
c                    	 t        t        d      5 }|j                  t               | j	                  |j                         t               | j                  |j                         d       | j                  |j                         d       | j                  |j                         d       | j                  |j                  d       d d d        | j                  j                  d       | j                  t        |j
                         | j                  t        |j                         | j                  t        |j                         | j                  t        |j                         t        j                  t              }t!        t        d      5 }| j#                  |j%                         |       d d d        t'        t               y # 1 sw Y   xY w# 1 sw Y   &xY w# t'        t               w xY w)Nr  FTr  )r   r
   r  rV   r  rD  rE  rk  rM  rQ  rJ  r;  r+   r-   r   r4   r  rU   r  r   )r8   r  r  s      r<   test_write_to_filezFileTestCase.test_write_to_fileB  sE   	&#&!%%ahhj#6ajjlE2ajjlD1ajjlE2ahh. ' MM!((D)j!((3j!**5j!**5j!**5}}U+Hfd#q  84 $ 6N# '& $# 6Ns<   G' B6GCG' !G6G' GG' G$ G' 'G8c                    t        j                  t              }	 t        |d      5 }|j	                  t
               d d d        t        j                  t
              }t        t        d      5 }| j                  |j                         |       d d d        t        t               y # 1 sw Y   kxY w# 1 sw Y   %xY w# t        t               w xY w)Nr  r  )rn  ro  r
   r   r  rV   r   r4   r  rU   r  r   )r8   rp  r  r  s       r<   &test_write_to_file_with_bytes_filenamez3FileTestCase.test_write_to_file_with_bytes_filenameW  s    V,	.#.! /}}U+Hfd#q  84 $ 6N /. $# 6Ns9   B? B'1B? .!B3B? 'B0,B? 3B<8B? ?Cc                 L   	 t        t        d      5 }t        |d      5 }|j                  t               | j                  |j                         |j                                | j                  |j                         d       | j                  |j                         d       | j                  |j                         d       | j                  |j                  d       d d d        | j                  j                  d       | j                  t        |j                         | j                  t        |j                         | j                  t        |j                         | j                  t        |j                         d d d        t        j                  t              }t        t        d      5 }| j                  |j!                         |       d d d        t#        t               y # 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   2xY w# t#        t               w xY wNr  r  FTr  )r  r
   r   r  rV   rU   rD  rk  rM  rQ  rJ  r;  r+   r-   r   r4   r  r   )r8   rt  r  r  s       r<   test_write_to_fileobjz"FileTestCase.test_write_to_fileobjb  sg   	fd#sc3'1GGEN$$QXXZ>MM!**,6MM!**,5MM!**,6MM!((E2 ( ahh-!!*ahh7!!*ajj9!!*ajj9!!*ajj9 $ }}U+Hfd#q  84 $ 6N# (' $# $# 6NsS   H G:C G-B$G:1H 4!HH -G7	2G::H?H HH H#c                    	 t        j                  t        t         j                  t         j                  z  t         j
                  z        }t        |d      5 }t        |d      5 }|j                  t               | j                  |j                         |j                                | j                  |j                         d       | j                  |j                         d       | j                  |j                         d       | j                  |j                  d       d d d        | j                  j                  d       | j!                  t"        |j                         | j!                  t"        |j                         | j!                  t"        |j                         | j!                  t"        |j                         d d d        t$        j'                  t              }t        t        d      5 }| j                  |j)                         |       d d d        t+        t               y # 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   2xY w# t+        t               w xY wr  )rn  r  r
   O_WRONLYO_CREATO_TRUNCr   r  rV   rU   rD  rk  rM  rQ  rJ  r;  r+   r-   r   r4   r  r   )r8   rx  rt  r  r  s        r<   #test_write_to_fileobj_with_int_namez0FileTestCase.test_write_to_fileobj_with_int_namex  s   	rzz!9BJJ!FGBb$3c3'1GGEN$$QXXZ>MM!**,6MM!**,5MM!**,6MM!((E2 ( ahh-!!*ahh7!!*ajj9!!*ajj9!!*ajj9   }}U+Hfd#q  84 $ 6N# ('   $# 6NsV   AI I %C H3%B$I 	1I :!II 3H=	8I  I	I II I)c                    t         d d }t         dd }t         dd  }dj                  d |||fD              }	 t        t        d      5 }|j	                  |       d d d        t        t        d      5 }|j	                  |       d d d        t        t        d      5 }|j	                  |       d d d        t        t        d      5 }| j                  |j                         |       d d d        t        t               y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   =xY w# t        t               w xY w)NrN   r  rL   c              3   F   K   | ]  }t         j                  |        y wrR   r  r  s     r<   r  z9FileTestCase.test_write_append_to_file.<locals>.<genexpr>  r  r  r  r  r  )	rV   r|   r   r
   r  r  rU   r  r   )r8   r  r  r  r  r  s         r<   test_write_append_to_filez&FileTestCase.test_write_append_to_file  s    etd4 de88LueU6KLL
	&#&! '&#&! '&#&! 'fd#q  84 $ 6N '&&&&&## 6Nsk   D/ C?D/ 2DD/ D.D/ !D#'D/ ?DD/ DD/ D D/ #D,(D/ /E c                 D   t        t               d      }|j                          | j                  t        |j
                  d       t        t        t              d      5 }| j                  t        |j
                  d       d d d        t        t               d      5 }| j                  t        |j
                  d        | j                  t        |j
                  d       | j                  t        |j
                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr  r)   r  r*   texti  )r   r   r:  r+   r-   r  rI   r,   r  s     r<   test_write_bad_argsz FileTestCase.test_write_bad_args  s    WY$		*aggv6gm,c2aj!''6: 3gi%i$7i&9i#6 &% 32%%s   "D
A$D
DDc                    t        t              5 }|j                         }d d d        t               5 }t        |d      5 }|j	                         d d d        t
        j                  t              }| j                  |j                         |       d d d        y # 1 sw Y   |xY w# 1 sw Y   WxY w# 1 sw Y   y xY wrA  )	r   rV   r  r   
writelinesr   r4   rU   r  )r8   r  r  r  r  s        r<   test_writelineszFileTestCase.test_writelines  s    U^qKKME Y##s#qU# $}}U+HS\\^X6	 Y ^ $# Ys/   BB4 B(AB4B%(B1	-B44B=c                     t        t        t                    5 }|j                  d       | j	                  |j                         t        dd         d d d        y # 1 sw Y   y xY w)Ni+  r   r   rI   seekrU   r  rV   r  s     r<   test_seek_forwardzFileTestCase.test_seek_forward  sD    gm,-FF3KQVVXuST{3 .--s   9AA$c                     t        t        t        dz              5 }|j                  t	        t
              dz          | j                  |j                         t
        dd         d d d        y # 1 sw Y   y xY w)Nr   {   )r   r   rI   r  rz   rV   rU   r  r  s     r<    test_seek_forward_across_streamsz-FileTestCase.test_seek_forward_across_streams  sS    gma/01QFF3u:#$QVVXuST{3 211s   A	A..A7c                     t        t        t                    5 }|j                  d       |j	                  dd       | j                  |j                         t        dd         d d d        y # 1 sw Y   y xY w)Nr   i  r   i8  r   r   rI   r  r  rU   rV   r  s     r<   %test_seek_forward_relative_to_currentz2FileTestCase.test_seek_forward_relative_to_current  sQ    gm,-FF3KFF4OQVVXuTU|4 .--s   AA--A6c                     t        t        t                    5 }|j                  dd       | j	                  |j                         t        dd         d d d        y # 1 sw Y   y xY w)Nir   r  r  s     r<   !test_seek_forward_relative_to_endz.FileTestCase.test_seek_forward_relative_to_end  F    gm,-FF4OQVVXuTU|4 .--   :AA%c                     t        t        t                    5 }|j                  d       |j	                  d       | j                  |j                         t        dd         d d d        y # 1 sw Y   y xY w)Ni     r  r  s     r<   test_seek_backwardzFileTestCase.test_seek_backward  sO    gm,-FF4LFF3KQVVXuST{3 .--s   A
A,,A5c                 $   t        t        t        dz              5 }|j                  t	        t
              dz          |j                  d       | j                  |j                         t
        dd  t
        z          d d d        y # 1 sw Y   y xY w)Nr   iM  i  )r   r   rI   r  rz   rV   r  rU   r  s     r<   !test_seek_backward_across_streamsz.FileTestCase.test_seek_backward_across_streams  sc    gma/01QFF3u:#$FF3KQVVXuST{U':; 211s   A!BBc                     t        t        t                    5 }|j                  dd       | j	                  |j                         t        dd         d d d        y # 1 sw Y   y xY w)Nijr   r  r  s     r<   "test_seek_backward_relative_to_endz/FileTestCase.test_seek_backward_relative_to_end  r  r  c                 :   t        t        t                    5 }|j                  t	        t
              dz          | j                  |j                         t	        t
                     | j                  |j                         d       d d d        y # 1 sw Y   y xY w)N)#  rL   )	r   r   rI   r  rz   rV   rU   r  r  r  s     r<   test_seek_past_endzFileTestCase.test_seek_past_end  sb    gm,-FF3u:$%QVVXs5z2QVVXs+ .--s   A/BBc                    t        t        t                    5 }|j                  d       | j	                  |j                         d       | j	                  |j                         t               d d d        y # 1 sw Y   y xY w)Nir   )r   r   rI   r  rU   r  r  rV   r  s     r<   test_seek_past_startz!FileTestCase.test_seek_past_start  sT    gm,-FF3KQVVXq)QVVXu- .--s   AA88Bc                    t        t        t                    }|j                          | j	                  t
        |j                  d       t        t               d      5 }| j	                  t
        |j                  d       d d d        t        t        t                    5 }| j	                  t
        |j                  dd       | j	                  t        t
        f|j                  dd       | j	                  t        |j                  d        | j	                  t        |j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r  r   	   r#   s   derp)r   r   rI   r:  r+   r-   r  r,   r  s     r<   test_seek_bad_argszFileTestCase.test_seek_bad_args  s    W]+,		*affa0gi%j!&&!4 &gm,-j!&&!Q7y*5qvvq"Ei6i9 .- &%--s   "D6 BE6D?Ec                    t        t        t                    5 }d}	 | j                  |j	                         |       |j                  d      }|sn|t        |      z  }C| j                  |j	                         t        t                     d d d        t        t               d      5 }t        dt        t              d      D ]=  }| j                  |j	                         |       |j                  t        ||dz           ? | j                  |j	                         t        t                     d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr      r     )
r   r   rI   rU   r  r  rz   rV   ry   r  )r8   r  posrZ  s       r<   	test_tellzFileTestCase.test_tell  s    gm,-C  3/s6{"  QVVXs5z2 . gi%QE
C0  3/c#c'*+ 1 QVVXs5z2	 &% .- &%s   A4D:)BE:EEc                     t        t        t                    }|j                          | j	                  t
        |j                         y rR   )r   r   rI   r:  r+   r-   r  r  s     r<   test_tell_bad_argszFileTestCase.test_tell_bad_args  s.    W]+,		*aff-rL   c                    t               }|j                  t        d      }| j                  t	        |      d       | j                  |j                         t               }|j                  t        d      }| j                  |j                         | j                  |j                         |j                  d      }| j                  t	        |      d       | j                  |j                         | j                  ||z   |       y )Nr   r   ih3  i]3  rL      )	r   r6   ISSUE_21872_DATrU   rz   rW   rT   rS   r   )r8   d1entired2out1out2s         r<   test_issue21872zFileTestCase.test_issue21872  s     2>Ve,
 
 }}_}?(  }}S!TB'f-rL   c                 8   t        j                   dg d      }t        |      |j                  z  }t        t	               d      5 }| j                  |j                  |      |       | j                  |j                         |       d d d        y # 1 sw Y   y xY w)NQ)r   r   r   r]  r   r  )arrayrz   itemsizer   r   rU   r  r  )r8   qLENGTHr  s       r<   test_issue44439zFileTestCase.test_issue44439&  sl    KK_-Q!**$gi%QWWQZ0QVVXv. &%%s   ABBN)Er   r   r   r  r  r  r  r!  r)  r/  r3  r5  r8  r?  rB  rF  rK  rN  rR  rT  rV  r[  r^  rd  rg  ri  rl  rq  ru  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#   rL   r<   r  r    sN   /63'30G(7"B"6
(""0 242"2",:-62	9.26 0:":$07:1-.--8
.2757	97077*	,."	774
4
55
4<5
,.:3 .
.</rL   r  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)OpenTestCasec                    t         j                  t        t              d      5 }| j	                  |j                         t               d d d        t               5 }t         j                  |d      5 }|j                  t               d d d        t         j                  |j                               }| j	                  |t               t         j                  |d      5 }|j                  t               d d d        t         j                  |j                               }| j	                  |t        dz         d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   fxY w# 1 sw Y   y xY w)Nr  r  r  r   )
r   r  r   rI   rU   r  rV   r  r6   r  )r8   r  bio	file_datas       r<   test_binary_modeszOpenTestCase.test_binary_modes1  s    YYw}-t4QVVXu- 5Y#3% &7IY.3% &7IY	2 Y 54 &% &% YsI   %EE&2EAE&E5AE&EE	E&E#	E&&E/c                 p   t         j                  d      }|j                  dt        j                        }t
        j                  t        t              dd      5 }| j                  |j                         |       d d d        t               5 }t
        j                  |dd      5 }|j                  |       d d d        t
        j                  |j                               j                  d      }| j                  ||       t
        j                  |dd      5 }|j                  |       d d d        t
        j                  |j                               j                  d      }| j                  ||dz         d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   rxY w# 1 sw Y   y xY w)Nascii
r&  encodingr'  atr   )rV   decodereplacern  linesepr   r  r   rI   rU   r  r  r6   r  )r8   uncompresseduncompressed_rawr  r  r  s         r<   test_text_modeszOpenTestCase.test_text_modes>  s=   ||G,'//bjjAYYw}-tgYF!QVVX|4 GY#3w71% 87>>wGIY(893w71% 87>>wGIY(81(<= Y GF 87 87 YsJ   !FF,'F9A$F,F /AF,FF	F, F)	%F,,F5c                 l   t        t              5  t        j                  t        d      5 }|j	                  t
               d d d        t        t        d      5 }t        j                  |j                               }| j                  |t
               d d d        t        j                  t        d      5 }| j                  |j                         t
               d d d        t        j                  t        d      5 }|j	                  t
               d d d        t        j                  t        d      5 }| j                  |j                         t
        dz         d d d        d d d        y # 1 sw Y   .xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   CxY w# 1 sw Y   y xY w)Nr  r  r  r   )	r   r
   r   r  r  rV   r6   r  rU   )r8   r  r  s      r<   test_filenamezOpenTestCase.test_filenameM  s   f64(A )fd#q OOAFFH5	  E2 $ 64(A  51 )64(A )64(A  5195 ) ((## )((((( s   F*E-F*:E:"F*5%F"F*<F"F*4(FF*-E7	2F*:F	?F*F	F*F	F*F'	#F**F3c                 4   t        t              }t        |      5  t        j	                  |d      5 }|j                  t               d d d        t	        |d      5 }t        j                  |j                               }| j                  |t               d d d        t        j	                  |d      5 }| j                  |j                         t               d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nr  r  )
r   r
   r   r   r  r  rV   r6   r  rU   )r8   r   r  r  s       r<   test_with_pathlike_filenamez(OpenTestCase.test_with_pathlike_filename[  s    F#h8T*a +h% OOAFFH5	  E2 & 8T*a  51 +  **%% +*  sR   DC*D:C6D4%DD*C3	/D6C?	;DD	DDc                    | j                  t              5  t        j                  t        d       d d d        | j                  t              5  t        j                  t        d       d d d        | j                  t              5  t        j                  t        dd       d d d        | j                  t              5  t        j                  t        dd       d d d        | j                  t              5  t        j                  t        dd	       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   y xY w)
Nr   rbtr  zutf-8r  ignore)errorsr  )newline)r+   r-   r   r  r
   rF   s    r<   test_bad_paramszOpenTestCase.test_bad_paramsf  s    z*IIfb! +z*IIfe$ +z*IIfdWI5 +z*IIfd8I4 +z*IIfdDI1 +* +*********s;   D D,D8 E:E D),D58EEEc                     t         j                  t        d}t        j                  t	        t
              dfi |5 }| j                  |j                         t               d d d        t	               5 }t        j                  |dfi |5 }|j                  t               d d d        t        j                  |j                         fi |}| j                  |t               d d d        y # 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   y xY w)Nr(   r  r  )r   r0   r1   r  r   rf   rU   r  rV   r  r6   r  )r8   optionsr  r  r  s        r<   test_format_and_filtersz$OpenTestCase.test_format_and_filterss  s    !__GYYw/0$B'BaQVVXu- CY#300A 1B'BIY.	 Y CB 10 Ys0   %C,3DC8!AD,C58D	=DDc                 l   t         j                  d      }|j                  dt        j                        }t               5 }t        j                  |dd      5 }|j                  |       d d d        t        j                  |j                               j                  d      }| j                  ||       |j                  d       t        j                  |dd      5 }| j                  |j                         |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr  r  r'  z	utf-16-ler  r   r&  )rV   r  r  rn  r  r   r   r  r  r6   r  rU   r  r  )r8   r  r  r  r  r  s         r<   test_encodingzOpenTestCase.test_encoding~  s    ||G,'//bjjAY#3{;q% <7>>{KIY(89HHQK3{;q  <8 < Y;;
 <; Ys=    D*D+A5D* !DD*D	D*D'	#D**D3c                    t        t        j                  d            5 }t        j                  |ddd      5 }| j	                  |j                         d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Ns   foobarr&  r  r'  )r  r(  foobar)r   r   r4   r  rU   r  )r8   r  r  s      r<   test_encoding_error_handlerz(OpenTestCase.test_encoding_error_handler  s_    T]]=12c3wxHA  84 I 32HH 32s"   A7!A+A7+A4	0A77B c                    t         j                  d      }t               5 }t        j	                  |ddd      5 }|j                  |       d d d        |j                  d       t        j	                  |ddd      5 }| j                  |j                         |g       d d d        d d d        y # 1 sw Y   fxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr  r'  r  )r  r)  r   r&  )	rV   r  r   r   r  r  r  rU   r  )r8   r  r  r  s       r<   test_newlinezOpenTestCase.test_newline  s    ||G$Y#3wE FHHQK3wE  7 F	 YEE FE	 Ys:   C	B12C	>"B= C	1B:	6C	=C	C		Cc                    | j                  t        t               dD ]  }t        t               d|v rdnd }t        j	                  t        ||      5  	 d d d        | j                  t              5  t        j	                  t        |      5  	 d d d        d d d         y # 1 sw Y   NxY w# 1 sw Y    xY w# 1 sw Y   xY w)N)r  r  r#  tr  r  )r  r   r
   r   r  r+   r  )r8   r   r  s      r<   test_x_modezOpenTestCase.test_x_mode  s    '%D6N"%+w4H64(; <""?3YYvt, - 43 & <; -, 43s0   B"2B:B.B:"B+	.B73B::C	N)r   r   r   r  r   r"  r$  r*  r-  r/  r2  r5  r8  r#   rL   r<   r  r  /  s4    3>6	22	/958	rL   r  c                   $    e Zd Zd Zd Zd Zd Zy)MiscellaneousTestCasec                    | j                  t        j                  t        j                               | j                  t        j                  t        j                               | j                  t        j                  t        j                  dz                | j                  t        j                  t        j                               y r   )rW   r   is_check_supportedr^   r-  rS   r,  r+  rF   s    r<   test_is_check_supportedz-MiscellaneousTestCase.test_is_check_supported  s     	//@A//0@0@AB 	001B1BQ1FGH 	001C1CDErL   c                    | j                  t              5  t        j                  d       d d d        | j                  t              5  t        j                  ddi       d d d        | j                  t              5  t        j                  t        j
                  dd       d d d        | j                  t        j                        5  t        j                  t        j                  dd       d d d        t        j                  t        j                  dd	d
dd      }| j                  |d       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w)Ns
   not a dictr!      r}  )r!   junkr  r!   distr   r   r      )r!   pblplc	dict_size   ]   )
r+   r,   r   _encode_filter_propertiesr-   r/   r   rD   FILTER_LZMA1rU   )r8   propss     r<   test__encode_filter_propertiesz4MiscellaneousTestCase.test__encode_filter_properties  s   y)**=9 *z***D%=9 +z***$2C2CR+PQ +t~~.**$2C2C37,9 : /
 ..''$0  	 45% *)****..s/   D7	E>'E'E7EEEE%c                    | j                  t              5  t        j                  t        j                  dt
        i       d d d        | j                  t        j                        5  t        j                  t        j                  d       d d d        t        j                  t        j                  d      }| j                  |d   t        j                         | j                  |d   d       | j                  |d   d       | j                  |d	   d
       | j                  |d   d       t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  g}|D ],  }t        j                  |d      }| j                  |d|i       . y # 1 sw Y   xY w# 1 sw Y   @xY w)Nz	should bes   too longrH  r!   rD  r   rE  r   rF  r   rG  rC  rL   )r+   r,   r   _decode_filter_propertiesrE   r   r   rD   rJ  rU   FILTER_POWERPCFILTER_IA64
FILTER_ARMFILTER_ARMTHUMBFILTER_SPARC)r8   
filterspecr   r  s       r<   test__decode_filter_propertiesz4MiscellaneousTestCase.test__decode_filter_properties  sb   y)**4??[%<PQ *t~~.**4+<+<kJ / 33!!#79
D)4+<+<=D)1-D)1-D)1-K0': ??D$7$7##T__''):):< A773?JZ$3 % *)..s   +F>(%G>GGc                     t         j                  t         j                  d      }t         j                  |      }t         j                  t         j                  |      }| j	                  ||       y )NrH  )r   rN  rJ  rI  rU   )r8   spec1	reencodedspec2s       r<    test_filter_properties_roundtripz6MiscellaneousTestCase.test_filter_properties_roundtrip  sV    ..!!#792259	..t/@/@)L&rL   N)r   r   r   r=  rL  rU  rZ  r#   rL   r<   r:  r:    s    
F6*4.'rL   r:  s  
LAERTES

       O, fear me not.
       I stay too long: but here my father comes.

       Enter POLONIUS

       A double blessing is a double grace,
       Occasion smiles upon a second leave.

LORD POLONIUS

       Yet here, Laertes! aboard, aboard, for shame!
       The wind sits in the shoulder of your sail,
       And you are stay'd for. There; my blessing with thee!
       And these few precepts in thy memory
       See thou character. Give thy thoughts no tongue,
       Nor any unproportioned thought his act.
       Be thou familiar, but by no means vulgar.
       Those friends thou hast, and their adoption tried,
       Grapple them to thy soul with hoops of steel;
       But do not dull thy palm with entertainment
       Of each new-hatch'd, unfledged comrade. Beware
       Of entrance to a quarrel, but being in,
       Bear't that the opposed may beware of thee.
       Give every man thy ear, but few thy voice;
       Take each man's censure, but reserve thy judgment.
       Costly thy habit as thy purse can buy,
       But not express'd in fancy; rich, not gaudy;
       For the apparel oft proclaims the man,
       And they in France of the best rank and station
       Are of a most select and generous chief in that.
       Neither a borrower nor a lender be;
       For loan oft loses both itself and friend,
       And borrowing dulls the edge of husbandry.
       This above all: to thine ownself be true,
       And it must follow, as the night the day,
       Thou canst not then be false to any man.
       Farewell: my blessing season this in thee!

LAERTES

       Most humbly do I take my leave, my lord.

LORD POLONIUS

       The time invites you; go; your servants tend.

LAERTES

       Farewell, Ophelia; and remember well
       What I have said to you.

OPHELIA

       'Tis in my memory lock'd,
       And you yourself shall keep the key of it.

LAERTES

       Farewell.
s   this is not a valid lzma streams   7zXZ  ִF !   t/] bXn䴝o
2h\6(wd"u.n򎍏/=/Mާz-]rZo#z/FMt6 BF$Ql,bnԨNȆ3x2O@Q /OozSt<I#ud6Y]-Pee:	7
pJV%G=?(΂=I3RisPX2jLbc-HoJliQk?@xH12Puw㾪iWЀ#cb5]dWlUGyF7v5h8W5:?rD5@7cԗitSkKvy6Te]:kla4r}r*z8hӼl-KZL3Ϝ!^9w PPKdZ}%$/&,qh{Q)qÀo![Ԋwt`^??\RԎXaЫS>ɕH	%$.oRbU^S/vr̢GkzʀЋIxy-0z^֏_Pi萄ܿky܁+\YYhw̴ |ejz`A叩	=_%voZO	M-<"CMg~b|'x!JFu 87yu_@qc#5)_3]o]5myK+ b t0ȏ׮+iܹk>f${pƈ0_h6Z%'
"冟7X=mNX[FUɆ0a+* _$_ޯ46qɒ`}ʮ`wجVeZ#d{wB:^VaH
\Xu#%*v!	4    Vj?uLU   twPg    YZs  ]    bXn䴝o
2h\6(wd"u.n򎍏/=/Mާz-]rZo#z/FMt6 BF$Ql,bnԨNȆ3x2O@Q /OozSt<I#ud6Y]-Pee:	7
pJV%G=?(΂=I3RisPX2jLbpljr=	3!EvVF״P~E7ƻc%I;砋Z(o>`᪨١}獃4T㘼DMA@ȓSaśTJE}g#ZVɝc>0S/y_(r?@:zBeyX :	xD\&GYJv{)Ao 5F?vVtTf'k\Y|wdd  ,Xsv}%
ߢ.6
h
 BlU}sHpB8ZA;z{5!A$qg/|r^=n6{>8
:'.
:݂'["wD$wq,1,2w$JdmgA&8i;NQrheL;mQN[jEOliB^R].-eiNwbQ~餈4kM)T3)B ^..	H5#NV$Kkt'R2-LH0~?SOE]<Z0a*?rnGd^8uEI
Vⳕi!&1FDP SO3D!w_G+.]>#h;5JK^-[\ʯԡĸprr.l []+0gaKYI,
V_#>wW,63J2=kTUti_lhfxr   )r!   r   s  ] bXncyqm' QIVL8_뼥
W$=R;k8	{+cS3mb4*+.9bZrA0s"rGސcu۩.Al<OiŴg4t6"o?^}}[:
[lg2n7@6Tu	8[4PCV"x~NK%k:{6è\@F_ȐsU87JMг;X﮳eO,z,dyjlB8#6PKP؈ҡC?۔_"eޛ>H;#4ź%v9A"2i3߾Dm7o:Jہ6O	Q펕S/MSJd=^BE͑G.b&ٟj\CvҊ?^H>IqYK7DWOl5U{ϣk{O*B-(R@E:VY]ĥgX3 ]n콣Yu*TA$AAiw젇%=DѻqCqpL "t~cix)l)@lynD:Җ? %_h#7QDhnѣ_?q17_|ʷSWt9L|WsL_$Fkvfhî1QG5yIcwrIp:p_va"ّeëH*m}}>l%΄dӂ5fOg^&	@ΟJ{rzMho^U7\!kUd~熊z;PGw^ı3Sf @売sxRD`WϑTZ-X|^[7֢		Q5/@S5VhAKVCMxOO<e*Hk6G+)͜lK}5u*F2   r   rA  s  ] -Ԩd?ﾯH2.g5z	[}WmHgQRA5
v~:o:JCc*o\lE2aU{׸wܾ88\[_9%fs#=<\t=7ft\Q8Ԫآ >-ӎ#ArAmJ~B(`WKkaj S%iXB;EeTbg
jу]"Mr\j~PGHN*Z.	pE1ͩHP~0JK]9F_[ԋ6뿻$kS{,f:Sjz殘Q~r?&ˀ	|x|dhh+'Ł3q`Z#܊Il{6ճxhz%ݘ!RUaX1=R0㤚bd$]Bh2cL`4xZ]T^؉;Y9zo)f]$np;QK @:UcX
!"=.6g=WnOTDW3pntVOjMi$3܊fYKhwO2^&Vi=yZoƶw%c`]8mQh`[q0g"NR)(0\G!xzHyM
\A	arMꄛ!~Hoڇh颾qN!WGڡA`j?5B~E!^ݨy}))D2fuɗx4_6$t9=˿v\8jk)ffnĩMIE5TpӉ3/֏ou;PRFj$hK(c7)ݲ,.yQi`h-	^ [!M.-S+8,  ë~$eP]iog^Ek`~y+^D"!ҧT5Y4ZHf]όx3TUHy7X ( /\JvP8~4kAyPJNaO:eqACmw	uCwUP 8L4w!L2 j;Vːlv@EZ[E`>ޡbZЩ`{;fk1.N(u!LГBjc_}dàY/,bl@p8quHX}OXݾeO`CF=K$I_XJ'v+.vTv5ṑS"(xCXpS'J!G	2 oSdy,fߞE\L h}W#\oz r?  )r!   start_offsetr!   s  ] bXn䴝o
2h\6(wd"u.n򎍏/=/Mާz-]rZo#z/FMt6 BF$Ql,bnԨNȆ3x2O@Q /OozSt<I#ud6Y]-Pee:	7
pJV%G=?(΂=I3RisPX2jLbc-HoJliQk?@xH12Puw㾪iWЀ#cb5]dWlUGyF7v5h8W5:?rD5@7cԗitSkKvy6Te]:kla4r}r*z8hӼl-KZL3Ϝ!^9w PPKdZ}%$/&,qh{Q)qÀo![Ԋwt`^??\RԎXaЫS>ɕH	%$.oRbU^S/vr̢GkzʀЋIxy-0z^֏_Pi萄ܿky܁+\YYhw̴ |ejz`A叩	=_%voZO	M-<"CMg~b|'x!JFu 87yu_@qc#5)_3]o]5myK+ b t0ȏ׮+iܹk>f${pƈ0_h6Z%'
"冟7X=mNX[FUɆ0a+* _$_ޯ46qɒ`}ʮ`wجVeZ#d{wB:^VaH
\Xu#%*v!	4   r]  @   )r!   r   rF  s  \ bWh'֐,vJq lxBf=&fx
>TnFv_?V<#w؞*]c~]Eg"8=~WDǙ1u9hw|lk6o7{Y_b$=wZ@kmE*ح{j,)mB<ca( -c'B`װ]Bܖ6DՃ1&5 PZ&jŏSӥu$̗oV~xWp4HDY)t"Fߥ"xȒ
[l*Yر@o7ru5$U{	}QxNXX`v-f/\)Bg#2B2444q	93?mPXa)djw2A\C3!o[:0.@\4Jv4kkfss^ea=&rpEՀykTHoŌ0-e\>k	!^qA<EG񶹂sa̒ҶUنaTG@	7*޼]6N񄞟'<ߙsqН%p4{=MH:֤0DӨS `W 7N#	1al	jA:\=D3]eZAdgFQqBro仴@dQ
/ظS5:gDzڐ5H!	uRlQOb	RA -IGE$jѪI2s53D0%P}JO^hlV.owඤ*rG+i[w@_yW.-mU6gSA(=ޒ,DnE\Yˌ~EuVƙm<[u1
w%![·B,%df"g.3XY+4qA
=9*/s1b@FQ\ ,E7[!mA}3R5FH)ccнn{IJB`w&`}@Oxe	|eg@Y88NJ!qqWk*7Jmq
:`.+)ހXQmcPA'ɬ)tZR`]gRFTHS<PeJ^[c~']A,K{MxQ3=a9a2sbE"dDIJ!dGm_rNBqPΧeP!|6ͿIirejPqwS7hMʆ?P}y~I<Q8ߔ>rkv⹊qIs"㩥>D;33'e.;HqW~2x
6	;j[-%@2\ǯ¡Oth_A_W&D܅;X,>-7S)pQBLdsuȕ*)v{FWlj s  ]  @ h3        `DѻZ^3+g-1F%-ps8,|*xТb!cهUn VJ"8%_`?@*^&gɯ'}FN\Mz-˚O@gƥwnG'GIrυy[/_MQ+xF]&,fHgrvqxYF9'Fd<\kai C"4)֧`y|jX!Nǅjv]c5ՙi^Gl:,'4$Ywkkņ>~G5]0dw#(3ʡbXr+m3qŞ*6s-r?CgJN'M
Q
`mNql:qGT!0~4J827At]5MK,j7(l2ڕ(0BhpJ	go??}όV:вkk=Ǎ/`.X*~j";V`t0d)}\bJ
+V!ޘK7`ā~؍mY)/Pm[zZӋPf0ЕJ{Wope]ڷ5<g!̱\72Mc350L-˖Uʰ̉*P.~9o?}P
;m|#03<^HiֳTFq}&ĮΜU̶drwNzsRl5^eVYٟ*Ĩ6+ֈ[_rcfx|~L/ۘCiOt<Q`%5k
7I<#)&C`!˩FMuʕebXa[BOf;Crbٜi]<zT9pFPw堔a q&Wo5q8t4-H	dQJ s."pNg}|d3X[E+WvG/I<L\1O{mW~^@D@A9;BOutNJ5ZO6[7o*[ɷa'uq+y aMļ0'pQHK=nFOY0	|Py~h0d[ _vcI3`WyrkBiŊ^ԁ>"v`$^2.dd@Y|j}riVX4rBNPS[I(;9|^0;.*[l_Xf!43D{t]5Ufb
,Q	@<,-3 7	K7*X~Okz"3sL;^⽪Zfڦ:]}a?5M
}M2Yo īTU"unA̐i~4*JtuוZG~ST,C`2>Qśhu bVKc ޅ-:*;`ݗgS}5e7/!Y'C(bTD_E֘{\fz9˥bqW!;z~is+5k htUޣˆj
C?0Jj;0d#;c&8?Jncb4lhnZe,B-c|&LL86bViF̎4/^W?܄(dOD64,SJc^0	D[憰n^븸)a @+/h3`+P-Bn^/w<M!EY<٦Bǃ"D|&d`70o喤v;]'hA&9~@t<4)=:&6A+ <k\dv^l5C?ԠMCȀ3BPjyzE[oT'*HM7f;'wM 帷 D+PgnkcƐVUovfZ3^翬vxJjn*o>_+D{sHAGݭ7q+Wg"X~4`q)KsV5s*;{<@GjLؒ&	u5]\A|ICeQ*~uXyP
fZEu>'`cZ8jUoe>Rb#H-!ޝkw{/K)A:UM̻{9 ((6iu؞q7-BQ8vACd!'ͮؓިb2K l	|DU>w7}W|g|1 m@6+	D Mҵ'~Co	fI1φ`͂wcdCUEMJH=*I"^S6=@,Gr[>n<(}~4stff	/)
ײwQnsƷ(G<6[~H ~:e(_(c̟gvS=S>
YRGAOdcPܟ"[Q~䈡#CϾHؾmWFQ(XDKB.-՞|N]Z=)MLTiN?4O&u70ؓBNEyϘDʚL_]ܩ1 cؿp-N(#2Ilr __main__)7ra  r
  ior   r   r   rn  r   r   r   testr   unittesttest.supportr   r   test.support.import_helperr	   test.support.os_helperr
   r   r   r   r   r   r   r   TestCaser   r   r   r  r  r:  rV   r   rI   rO   r/   r1   rf   rD   PRESET_DEFAULTPRESET_EXTREMErj   rk   rP  rn   ro   rE   rr   rs   r  r   mainr#   rL   r<   <module>rh     s     A A 	   
   ( 4  V F Fk3X%6%6 k3\D+):): D+N S/8$$ S/lu8$$ up?'H-- ?'H>	@ 6 +4 `(" X ))Q78* \ ))15)) //$2E2EEGH:& | ((%@))*,) Z ))15>))Qa@B? HA% L zHMMO rL   