B
    18\K                 @   s   d dl mZ d dlZd dlmZ d dlZd dlmZmZ dZ	de d e	 Z
dd	 ZG d
d deZdd Zdd Zdd Zdd Zdd ZG dd dejZedkre  dS )    )open_urlresourceN)HTTPException)	normalizeunidata_versionzNormalizationTest.txtz"http://www.pythontest.net/unicode//c             C   s   |   }t|kS )N)readliner   )Ztestfilehdr r	   [/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/test/test_normalization.pycheck_version   s    r   c               @   s   e Zd ZdS )
RangeErrorN)__name__
__module____qualname__r	   r	   r	   r
   r      s   r   c             C   s
   t d| S )NNFC)r   )strr	   r	   r
   r      s    r   c             C   s
   t d| S )NNFKC)r   )r   r	   r	   r
   r      s    r   c             C   s
   t d| S )NNFD)r   )r   r	   r	   r
   r      s    r   c             C   s
   t d| S )NNFKD)r   )r   r	   r	   r
   r      s    r   c             C   sD   dd |  dD } x| D ]}|tjkrtqW ddd | D S )Nc             S   s   g | ]}t |d qS )   )int).0xr	   r	   r
   
<listcomp>   s    zunistr.<locals>.<listcomp>  c             S   s   g | ]}t |qS r	   )chr)r   r   r	   r	   r
   r   #   s    )splitsys
maxunicoder   join)datar   r	   r	   r
   unistr   s
    

r"   c               @   s$   e Zd Zdd Zdd Zdd ZdS )NormalizationTestc          	   C   s~   yt tdtd}W nL tk
r8   | dt d Y n( ttfk
r^   | dt  Y nX | | | W d Q R X d S )Nzutf-8)encodingcheckz"Permission error when downloading z into the test data directoryzCould not retrieve )	r   TESTDATAURLr   PermissionErrorskipTestOSErrorr   failrun_normalization_tests)selftestdatar	   r	   r
   	test_main&   s    zNormalizationTest.test_mainc             C   s  d }i }xP|D ]F}d|kr,| dd }| }|s:q|drR|  d }qy*dd | dd d D \}}}}}	W nR tk
r   |dkryt| dd }W n tk
r   Y n
X d	||< wY nX | |t|  kot|  kot|kn  | | |t|  ko&t|	kn  | | |t|  ko`t|  ko`t|kn  | | |	t|  kot|	kn  | | |t|  kot|  kot|  kot|  kot|	kn  | | |	t	|  ko>t	|  ko>t	|  ko>t	|  ko>t	|	kn  | |dkrd	||< qW xxt
tjd	 D ]f}
t|
}||krql| |t|  kot|  kot|  kot	|kn  |
 qlW d S )
N#r   z@Partc             S   s   g | ]}t |qS r	   )r"   )r   r   r	   r	   r
   r   B   s    z=NormalizationTest.run_normalization_tests.<locals>.<listcomp>;z@Part1   )r   strip
startswithr   r"   
assertTruer   r   r   r   ranger   r   r   )r,   r-   partZ
part1_datalineZc1Zc2Zc3Zc4Zc5cXr	   r	   r
   r+   4   sL    
*6*:*&.&.
z)NormalizationTest.run_normalization_testsc             C   s   t dd d S )Nr   u   한글)r   )r,   r	   r	   r
   test_bug_834676f   s    z!NormalizationTest.test_bug_834676N)r   r   r   r.   r+   r;   r	   r	   r	   r
   r#   %   s   2r#   __main__)Ztest.supportr   unittesthttp.clientr   r   Zunicodedatar   r   ZTESTDATAFILEr&   r   	Exceptionr   r   r   r   r   r"   TestCaser#   r   mainr	   r	   r	   r
   <module>   s    F