
    -Ph0                         d dl mZ d dlmc mZ d dlT d dlT d dlT  G d de          Z G d de          Z	e
dk    rd dlZ ej                     dS dS )	    )
CythonTestN)*c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestBufferParsingc                 B                            fd          j        S )Nc                  .                                    S Nfragmentsselfs   `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/Cython/Compiler/Tests/TestBuffer.py<lambda>z)TestBufferParsing.parse.<locals>.<lambda>   s    DMM!,<,<     )should_not_failroot)r   r   s   ``r   parsezTestBufferParsing.parse   s(    ##$<$<$<$<$<==BBr   c                                             fdt          j                  }                     ||j                   d S )Nc                  .                                    S r	   r
   r   s   r   r   z1TestBufferParsing.not_parseable.<locals>.<lambda>   s    T]]1%5%5 r   )should_failErrorsCompileErrorassertEqualmessage_only)r   expected_errorr   es   ` ` r   not_parseablezTestBufferParsing.not_parseable   sG    555558KLL88888r   c                     |                      d          }|j        d         j        }|                     t	          |t
                               |                     dt          |j                             d S )Nz(cdef object[float, 4, ndim=2, foo=foo] xr      )	r   stats	base_type
assertTrue
isinstanceTemplatedTypeNoder   lenpositional_args)r   tbufnodes      r   
test_basiczTestBufferParsing.test_basic   sf    JJABB'!*&
7,=>>???C 78899999r   c                 0    |                      d           d S )Nz$cdef object[short unsigned int, 3] xr   r   s    r   test_type_poszTestBufferParsing.test_type_pos   s    

9:::::r   c                 0    |                      d           d S )Nz0cdef object[foo=foo, dtype=short unsigned int] xr,   r-   s    r   test_type_keywordz#TestBufferParsing.test_type_keyword    s    

EFFFFFr   c                 2    |                      dd           d S )Nz%Non-keyword arg following keyword argzcdef object[foo=1, 2] x)r   r-   s    r   test_pos_after_keyz$TestBufferParsing.test_pos_after_key#   s*    B4	6 	6 	6 	6 	6r   N)	__name__
__module____qualname__r   r   r*   r.   r0   r2    r   r   r   r      st        C C C9 9 9: : :; ; ;G G G6 6 6 6 6r   r   c                   :    e Zd Zd Zd
dZd Zd Zd Zd Zd Z	d	S )TestBufferOptionsc                 H    || _         |                     | j                   d S r	   )errorr#   expect_error)r   r:   s     r   nonfatal_errorz TestBufferOptions.nonfatal_error.   s$    
)*****r   Fc                 |   |dk    sJ d|z  }|| _         |                     |t          |           t          |           g          j        }|s|j        d         j        j        d         }t          |t                    sJ |j	        }| 
                    t          |t                               | 
                    t          |j        t                               |                     d|j        j                   |S | 
                    t!          |j        d         j        j                  dk               d S )N zdef f():
  cdef object[%s] xpipeliner   object)r;   r   NormalizeTree	PostParser   r!   bodyr$   CVarDefNoder"   r#   r%   base_type_nodeCSimpleBaseTypeNoder   namer&   )r   optsr;   r   r   vardefbuftypes          r   
parse_optszTestBufferOptions.parse_opts3   s   rzzzz+d2(}}Q-*=*=y)O}PPU 		@Z]'-a0Ffk22222&GOOJw0ABBCCCOOJw'=?RSSTTTXw'='BCCCNOOC
1 2 899Q>?????r   c                 t    |                      |d           |                     || j        j                   d S )NT)r;   )rL   r   r:   r   )r   expected_errrI   s      r   	non_parsezTestBufferOptions.non_parseC   s9    4000tz'>?????r   c                 &   |                      d          }|                     t          |j        t                               |                     |j        j        dk    o|j        j        dk               |                     d|j                   d S )Nzunsigned short int, 3r      	rL   r#   r$   
dtype_noderG   signedlongnessr   ndimr   bufs     r   __test_basiczTestBufferOptions.__test_basicH   s}    oo566
3>3FGGHHH-2Ts~7NRT7TUUUCH%%%%%r   c                 &   |                      d          }|                     t          |j        t                               |                     |j        j        dk    o|j        j        dk               |                     d|j                   d S )Nz ndim=3, dtype=unsigned short intr   rQ   rR   rS   rX   s     r   __test_dictzTestBufferOptions.__test_dictN   s}    oo@AA
3>3FGGHHH-2Ts~7NRT7TUUUCH%%%%%r   c                     |                      d           |                     t          d           |                     t          d           d S )Nzint, 2zint, 'a'zint, -34)rL   rO   ERR_BUF_NDIMr-   s    r   __test_ndimzTestBufferOptions.__test_ndimT   sB    !!!|Z000|Z00000r   c                 H   |                      dt          |           t          |           g          j        }|j        d         j        j        }|                     |d         j        j        dk               |                     |d         j        j        dk               d S )Nz
        DEF ndim = 3
        def f():
            cdef object[int, ndim] x
            cdef object[ndim=ndim, dtype=int] y
        r?   r   rR      )	r   rB   rC   r   r!   rD   r#   r"   rW   )r   r(   r!   s      r   __test_use_DEFz TestBufferOptions.__test_use_DEFY   s    MM 
 %T**IdOO<  > >
 ?C 	
 
%a*/14555a*/1455555r   N)F)
r3   r4   r5   r<   rL   rO   _TestBufferOptions__test_basic_TestBufferOptions__test_dict_TestBufferOptions__test_ndim _TestBufferOptions__test_use_DEFr6   r   r   r8   r8   +   s        + + +
@ @ @ @ @ @ @
& & && & &1 1 1
	6 	6 	6 	6 	6r   r8   __main__)Cython.TestUtilsr   Cython.Compiler.ErrorsCompilerr   Cython.Compiler.Nodes#Cython.Compiler.ParseTreeTransformsCython.Compiler.Bufferr   r8   r3   unittestmainr6   r   r   <module>rp      s    ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' # # # # 1 1 1 1 $ $ $ $6 6 6 6 6
 6 6 6F76 76 76 76 76
 76 76 76x zOOOHMOOOOO r   