
    -d                     N   d dl Z d dlZd dlZd dlZej        dk     rd Znd Zd dlZ ej        ej                    ej	        d          Z
e
                    dej        z             dZd	Zeez   Zej        d
k    re                                Z G d dej                  ZdS )    N)      c                     d S N msgs    A/home/sergey/workspace-python/github-my/python-zstd/tests/base.py
raise_skipr      s    t    c                 *    t          j        |           r   )unittestSkipTestr   s    r
   r   r      s    $$$r   )levelZSTDzPython version: %sa  Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.up   И немного юникода. Далеко-далеко за словесными горами в стране гласных и согласных живут рыбные тексты. Вдали от всех живут они в буквенных домах на берегу Семантика большого языкового океана. Маленький ручеек Даль журчит по всей стране и обеспечивает ее всеми необходимыми правилами. Эта парадигматическая страна, в которой жаренные члены предложения залетают прямо в рот. Даже всемогущая пунктуация не имеет власти над рыбными текстами, ведущими безорфографичный образ жизни.   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S )BaseTestZSTDz1.5.5i	)  i'  z1.5.5.1c                 ^    |                      | j        t          j                               d S r   )assertEqualPKG_VERSIONzstdversionselfs    r
   helper_versionzBaseTestZSTD.helper_version0   s'    )4<>>:::::r   c                     t          j                    r#t          dt          j                    z            S |                     | j        t          j                               d S Nz[PyZstd was build with external version of ZSTD library (%s). It can be any version. Almost.)r   ZSTD_externalr   ZSTD_versionr   VERSIONr   s    r
   helper_zstd_versionz BaseTestZSTD.helper_zstd_version3   su     	S{  C  P  R  R  R  S  S  St'8':':;;;;;r   c                     |                      | j        t          j                    k    dt          j                    z             d S )Nz4PyZstd %s require external library version >= 1.0.0!r   )assertFalseVERSION_INT_MINr   ZSTD_version_numberr   r   s    r
   helper_zstd_version_number_minz+BaseTestZSTD.helper_zstd_version_number_min8   si    -0H0J0JJ  QG  JN  JV  JX  JX  QX  	Y  	Y  	Y  	Y  	Yr   c                     t          j                    r#t          dt          j                    z            S |                     | j        t          j                               d S r   )r   r   r   r    r   VERSION_INTr&   r   s    r
   helper_zstd_version_numberz'BaseTestZSTD.helper_zstd_version_number;   sv     	S{  C  P  R  R  R  S  S  S)4+C+E+EFFFFFr   c                     t          j        d          }|                     |t          j        t          j        |                               d S )Ni   )osurandomr   r   loadsdumpsr   DATAs     r
   helper_compression_randomz&BaseTestZSTD.helper_compression_random@   sA    z*%%tz$*T*:*:;;<<<<<r   c                     t          j        t                    }|                     t          t          j        |                     d S r   r   compresstDATAr   
decompressr   CDATAs     r
    helper_compression_default_levelz-BaseTestZSTD.helper_compression_default_levelD   s7    e$$ 6 677777r   c                     t          j        t                    }|                     |t          j        t          d                     d S )Nr   r   r5   r6   r   r8   s     r
   %helper_compression_default_level_zeroz2BaseTestZSTD.helper_compression_default_level_zeroH   9    e$$eQ 7 788888r   c                     t          j        t                    }|                     |t          j        t          d                     d S )N   r<   r8   s     r
   (helper_compression_default_level_defaultz5BaseTestZSTD.helper_compression_default_level_defaultL   r>   r   c                    t          j                    dk     r#t          dt          j                    z            S t          j        t
          d          }|                     t
          t          j        |                     d S )N@(  fPyZstd was build with old version of ZSTD library (%s) without support of negative compression levels.)r   r&   r   r    r5   r6   r   r7   r8   s     r
   !helper_compression_negative_levelz.BaseTestZSTD.helper_compression_negative_levelP   s    #%%--  G  JN  J[  J]  J]  ]  ^  ^  ^eR(( 6 677777r   c                 
   t          j                    dk     r#t          dt          j                    z            S t          j        t
          d          }|                     |t          j        t
          d                     d S )NrC   rD   rE   r   )r   r&   r   r    r5   r6   assertNotEqualr8   s     r
   ,helper_compression_negative_level_notdefaultz9BaseTestZSTD.helper_compression_negative_level_notdefaultW   s    #%%--  G  JN  J[  J]  J]  ]  ^  ^  ^eR((E4=#:#:;;;;;r   c                 h    |                      t          j        t          j        t          d           d S )Nd   )assertRaisesr   Errorr5   r6   r   s    r
   helper_compression_wrong_levelz+BaseTestZSTD.helper_compression_wrong_level^   s&    $*dmUC@@@@@r   c                     t          j        t          dd          }|                     t          t          j        |                     d S )N      r4   r8   s     r
   #helper_compression_multi_thread_onez0BaseTestZSTD.helper_compression_multi_thread_onea   s;    eQ** 6 677777r   c                     t          j        t          dd          }|                     t          t          j        |                     d S )NrP      r4   r8   s     r
   $helper_compression_multi_thread_manyz1BaseTestZSTD.helper_compression_multi_thread_manye   s;    eQ++ 6 677777r   c           	          t           j        dk     rd}ndd                                z   }|                     |t	          j        t	          j        |d                               d S )Nr      This is must be very very long string to be compressed by zstd. AAAAAAAAAAAAARGGHHH!!! Just hope its enough length. И немного юникода.s   This is must be very very long string to be compressed by zstd. AAAAAAAAAAAAARGGHHH!!! Just hope its enough length.u!   И немного юникода.rQ   sys
hexversionencoder   r   r7   r5   r0   s     r
   helper_compression_level1z&BaseTestZSTD.helper_compression_level1i   s|    >J&& kDD J  Mp  Mw  Mw  My  My  yDtt}T1/E/EFFGGGGGr   c           	          t           j        dk     rd}ndd                                z   }|                     |t	          j        t	          j        |d                               d S )Nr   rW   rX   "    И немного юникода.rP   rY   r0   s     r
   helper_compression_level6z&BaseTestZSTD.helper_compression_level6p   s|    >J&& kDD J  Mq  Mx  Mx  Mz  Mz  zDtt}T1/E/EFFGGGGGr   c           	          t           j        dk     rd}ndd                                z   }|                     |t	          j        t	          j        |d                               d S )Nr   rW   rX   r_      rY   r0   s     r
   helper_compression_level20z'BaseTestZSTD.helper_compression_level20w   s|    >J&& kDD J  Mq  Mx  Mx  Mz  Mz  zDtt}T2/F/FGGHHHHHr   c                     d}t          dd          D ]@}|                     |t          j        t          j        ||dz                                  Ad S )Nr   r   rb   rQ   )ranger   r   r7   r5   )r   datar   s      r
   helper_compression_empty_stringz,BaseTestZSTD.helper_compression_empty_string~   sa     1b\\ 	T 	TET4?4=uqy3Q3Q#R#RSSSS	T 	Tr   c                     t           j        dk     rdd l}|                    dd          }d}nt                              d          }d}|                     |t          j        |                     d S )Nr   r   <28b52ffd200631000068656c6c6f0a28b52ffd2006310000776f726c640a	hex_codeczhello
world
s   hello
world
)	rZ   r[   codecsdecodebytesfromhexr   r   r7   )r   rk   rf   odatas       r
   "helper_compression_multiple_blocksz/BaseTestZSTD.helper_compression_multiple_blocks   ss     >J&&MMM==!_almmD$EE==!_``D%E 5 566666r   N)__name__
__module____qualname__r!   r)   r%   r   r   r"   r'   r*   r2   r:   r=   rA   rF   rI   rN   rR   rU   r]   r`   rc   rg   rp   r   r   r
   r   r   )   sK       GK1OK; ; ;< < <
Y Y YG G G
= = =8 8 89 9 99 9 98 8 8< < <A A A8 8 88 8 8H H HH H HI I IT T T7 7 7 7 7r   r   )r,   rZ   loggingr   version_infor   r   basicConfigINFO	getLoggerloginfor   bDATAuDATAr6   r[   r\   TestCaser   r   r   r
   <module>r~      s&   
			 



   f   % % %   ', ' ' ' 'g 		+ , , ,	x
H  	>ZLLNNEi7 i7 i7 i7 i78$ i7 i7 i7 i7 i7r   