
    wdX8                     `    d Z ddlmZmZmZ ddlZddlZddlmZ  G d dej                  Z	dS )z
Test the DataShape lexer.
    )absolute_importdivisionprint_functionN)lexerc                   :    e Zd Zd	dZd Zd Zd Zd Zd Zd Z	dS )
TestDataShapeLexerNc                     t          t          |          }|                     t          t          j        |                    t          j        ||dt          |          f|          g           d S )Nr   )getattrr   assertEquallistlexTokenlen)selfds_strtnamevaltids        :lib/python3.11/site-packages/datashape/tests/test_lexer.pycheck_isolated_tokenz'TestDataShapeLexer.check_isolated_token   sm    eU##ei//00+c51c&kk2BCHHI	K 	K 	K 	K 	K    c                 v    |                      t          j        t          t	          j        |                     d S N)assertRaises	datashapeDataShapeSyntaxErrorr   r   r   )r   r   s     r   check_failing_tokenz&TestDataShapeLexer.check_failing_token   s/     	)8$	&@Q@QRRRRRr   c                    |                      ddd           |                      ddd           |                      ddd           |                      dd           |                      d	d
           |                      dd           |                      dd           |                      dd           |                      dd           |                      dd           |                      dd           |                      dd           |                      dd           |                      dd           |                      dd           |                      dd            |                      d!d"d#           |                      dd           |                      d$d%d           |                      d&d%d           d S )'Ntesting
NAME_LOWERTesting
NAME_UPPER_testing
NAME_OTHER*ASTERISK,COMMA=EQUAL:COLON[LBRACKET]RBRACKET{LBRACE}RBRACE(LPAREN)RPARENz...ELLIPSISz->RARROW?QUESTIONMARK32102INTEGERif}  z	"testing"STRINGz	'testing')r   r   s    r   test_isolated_tokensz'TestDataShapeLexer.test_isolated_tokens   s   !!)\9EEE!!)\9EEE!!*lJGGG!!#z222!!#w///!!#w///!!#w///!!#z222!!#z222!!#x000!!#x000!!#x000!!#x000!!%444!!$111!!#~666!!'9e<<<!!$111!!+xCCC!!+xCCCCCr   c                    |                      ddd           |                      ddd           |                      ddd           |                      ddd	           |                      d
dd           |                      ddd           |                      ddd           |                      ddd           |                      ddd           |                      ddd           |                      ddd           |                      ddd           |                      ddd           |                      ddd           |                      ddd           |                      d dd!           |                      d"dd#           |                      d$dd%           |                      d&dd'           |                     d(           |                     d)           |                     d*           d S )+N0r>   r   1   2   3   4   5   6   7   8   9	   10
   102f   1024i   10246i(  102468iD 1024683i 10246835iZ 	102468357i
1024683579i;n=0001090r   r   r@   s    r   test_integerzTestDataShapeLexer.test_integer1   s   !!#y!444!!#y!444!!#y!444!!#y!444!!#y!444!!#y!444!!#y!444!!#y!444!!#y!444!!#y!444!!$	2666!!%C888!!&)T:::!!'9e<<<!!(Iv>>>!!)Y@@@!!*iBBB!!+y)DDD!!,	:FFF  &&&  &&&  '''''r   c                    |                      ddd           |                      ddd           |                      ddd           |                      ddd           |                      ddd	           |                      d
dd           |                     d           |                     d           |                     d           |                     d           |                     d           |                     d           |                     d           |                     d           |                     d           |                      ddd           d S )Nz""r?    z''z"test"testz'test'z"\"\b\f\n\r\t\ub155"u	   "
	녕z'\'\b\f\n\r\t\ub155'u	   '
	녕z"\'"z'\"'z'\a'z'\s'z'\R'z'\N'z'\U'z'\u123g'z'\u123'u   "안녕 \uc548\ub155"u   안녕 안녕rd   r@   s    r   test_stringzTestDataShapeLexer.test_stringL   s   !!$"555!!$"555!!(Hf===!!(Hf===!!"98"6	8 	8 	8!!"98"6	8 	8 	8 	  ---  ---  )))  )))  )))  )))  )))  ---  ,,,!!"BH">	@ 	@ 	@ 	@ 	@r   c                    |                      d           |                      d           |                      d           |                      d           |                      d           |                      d           |                      d           |                      d           |                      d	           |                      d
           |                      d           |                      d           |                      d           |                      d           |                      d           |                      d           |                      d           d S )N~`@$%^&-+;<>.z../|\)r   r@   s    r   test_failing_tokensz&TestDataShapeLexer.test_failing_tokense   s\     %%%  %%%  %%%  %%%  %%%  %%%  %%%  %%%  %%%  %%%  %%%  %%%  %%%  &&&  %%%  %%%  &&&&&r   c                 J   t           j        d ft           j        dft           j        dft           j        d ft           j        d ft           j        d ft           j        dfg}t          t          j	        d                    }| 
                    d |D             |           t          t          j	        d                    }| 
                    d |D             |           t          t          j	        d                    }| 
                    d	 |D             |           t          t          j	        d
                    }| 
                    d |D             |           t          t          j	        d                    }| 
                    d |D             |           d S )Nai90  _bz:"a"12345->=*_bc                 *    g | ]}|j         |j        fS  idr   .0toks     r   
<listcomp>z6TestDataShapeLexer.test_whitespace.<locals>.<listcomp>   !    <<<3637+<<<r   z : "a" 12345 -> = * _b c                 *    g | ]}|j         |j        fS r   r   r   s     r   r   z6TestDataShapeLexer.test_whitespace.<locals>.<listcomp>   r   r   z	:	"a"	12345	->	=	*	_b	c                 *    g | ]}|j         |j        fS r   r   r   s     r   r   z6TestDataShapeLexer.test_whitespace.<locals>.<listcomp>   r   r   z
:
"a"
12345
->
=
*
_b
c                 *    g | ]}|j         |j        fS r   r   r   s     r   r   z6TestDataShapeLexer.test_whitespace.<locals>.<listcomp>   r   r   z@# comment
: # X
 "a" # "b"	
	12345

->
=
*
_b # comment
 	 # endc                 *    g | ]}|j         |j        fS r   r   r   s     r   r   z6TestDataShapeLexer.test_whitespace.<locals>.<listcomp>   r   r   )r   r,   r?   r>   r:   r*   r&   r$   r   r   r   )r   expected_idvaltokss      r   test_whitespacez"TestDataShapeLexer.test_whitespacex   s    ;- <- =%0 <. ;- >40 +T24 EI/0011<<t<<<nMMMEI78899<<t<<<nMMMEI?@@AA<<t<<<nMMMEI?@@AA<<t<<<nMMMEI + , , - - 	<<t<<<nMMMMMr   r   )
__name__
__module____qualname__r   r   rA   re   ri   r{   r   r   r   r   r   r      s        K K K KS S S
D D D,( ( (6@ @ @2' ' '&N N N N Nr   r   )
__doc__
__future__r   r   r   unittestr   r   TestCaser   r   r   r   <module>r      s     A @ @ @ @ @ @ @ @ @           IN IN IN IN IN* IN IN IN IN INr   