
     YHh0                         d dl mZ d dlmc mZ d dl d dl d dl  G d de      Z G d de      Z	e
dk(  rd dlZ ej                          yy)	    )
CythonTestN)*c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestBufferParsingc                 D      j                   fd      j                  S )Nc                  &    j                         S Nfragmentsselfs   Y/var/www/html/planif/env/lib/python3.12/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BBr   c                       j                   fdt        j                        } j                  ||j                         y )Nc                  &    j                         S r	   r
   r   s   r   r   z1TestBufferParsing.not_parseable.<locals>.<lambda>   s    T]]1%5 r   )should_failErrorsCompileErrorassertEqualmessage_only)r   expected_errorr   es   ` ` r   not_parseablezTestBufferParsing.not_parseable   s0    58K8KL8r   c                     | j                  d      }|j                  d   j                  }| j                  t	        |t
                     | j                  dt        |j                               y )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   sS    JJAB''!*&&
7,=>?C 7 789r   c                 &    | j                  d       y )Nz$cdef object[short unsigned int, 3] xr   r   s    r   test_type_poszTestBufferParsing.test_type_pos   s    

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

EFr   c                 (    | j                  dd       y )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	6r   N)	__name__
__module____qualname__r   r   r*   r.   r0   r2    r   r   r   r      s"    C9:;G6r   r   c                   8    e Zd Zd Zd	dZd Zd Zd Zd Zd Z	y)
TestBufferOptionsc                 H    || _         | j                  | j                         y r	   )errorr#   expect_error)r   r:   s     r   nonfatal_errorz TestBufferOptions.nonfatal_error.   s    
))*r   c                 t   |dk7  sJ d|z  }|| _         | j                  |t        |       t        |       g      j                  }|s|j
                  d   j                  j
                  d   }t        |t              sJ |j                  }| j                  t        |t                     | j                  t        |j                  t                     | j                  d|j                  j                         |S | j                  t!        |j
                  d   j                  j
                        dk(         y )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    rzz+d2(}}Q-*=y)O}PUUZZ]''--a0Ffk222&&GOOJw0ABCOOJw'='=?RSTXw'='='B'BCNOOC

1 2 2 8 89Q>?r   c                 v    | j                  |d       | j                  || j                  j                         y )NT)r;   )rL   r   r:   r   )r   expected_errrI   s      r   	non_parsezTestBufferOptions.non_parseC   s,    40tzz'>'>?r   c                 6   | j                  d      }| j                  t        |j                  t                     | j                  |j                  j
                  dk(  xr |j                  j                  dk(         | j                  d|j                         y )Nzunsigned short int, 3r      	rL   r#   r$   
dtype_noderG   signedlongnessr   ndimr   bufs     r   __test_basiczTestBufferOptions.__test_basicH   sm    oo56
3>>3FGH--2Ts~~7N7NRT7TUCHH%r   c                 6   | j                  d      }| j                  t        |j                  t                     | j                  |j                  j
                  dk(  xr |j                  j                  dk(         | j                  d|j                         y )Nz ndim=3, dtype=unsigned short intr   rQ   rR   rS   rX   s     r   __test_dictzTestBufferOptions.__test_dictN   sm    oo@A
3>>3FGH--2Ts~~7N7NRT7TUCHH%r   c                 ~    | j                  d       | j                  t        d       | j                  t        d       y )Nzint, 2zint, 'a'zint, -34)rL   rO   ERR_BUF_NDIMr-   s    r   __test_ndimzTestBufferOptions.__test_ndimT   s*    !|Z0|Z0r   c                 X   | j                  dt        |       t        |       g      j                  }|j                  d   j
                  j                  }| j                  |d   j                  j                  dk(         | j                  |d   j                  j                  dk(         y )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*IdO<  >
 ?Cd 	
 
%%a**//145a**//14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
	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      sN    ' ' ' # 1 $6
 6F76
 76x zHMMO r   