
    h0                         S SK Jr  S SKJs  Jr  S SK7  S SK7  S SK7   " S S\5      r " S S\5      r	\
S:X  a  S SKr\R                  " 5         gg)	    )
CythonTestN)*c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestBufferParsing   c                 F   ^ ^ T R                  UU 4S j5      R                  $ )Nc                  &   > TR                  T 5      $ Nfragmentsselfs   Z/var/www/fran/franai/venv/lib/python3.13/site-packages/Cython/Compiler/Tests/TestBuffer.py<lambda>)TestBufferParsing.parse.<locals>.<lambda>   s    DMM!,<    )should_not_failroot)r   r   s   ``r   parseTestBufferParsing.parse   s    ##$<=BBBr   c                    ^ ^ T R                  UU 4S j[        R                  5      nT R                  XR                  5        g )Nc                  &   > TR                  T 5      $ r
   r   r   s   r   r   1TestBufferParsing.not_parseable.<locals>.<lambda>   s    T]]1%5r   )should_failErrorsCompileErrorassertEqualmessage_only)r   expected_errorr   es   ` ` r   not_parseableTestBufferParsing.not_parseable   s.    58K8KL8r   c                     U R                  S5      nUR                  S   R                  nU R                  [	        U[
        5      5        U R                  S[        UR                  5      5        g )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_basicTestBufferParsing.test_basic   sS    JJAB''!*&&
7,=>?C 7 789r   c                 &    U R                  S5        g )Nz$cdef object[short unsigned int, 3] xr   r   s    r   test_type_posTestBufferParsing.test_type_pos   s    

9:r   c                 &    U R                  S5        g )Nz0cdef object[foo=foo, dtype=short unsigned int] xr2   r3   s    r   test_type_keyword#TestBufferParsing.test_type_keyword    s    

EFr   c                 (    U R                  SS5        g )Nz%Non-keyword arg following keyword argzcdef object[foo=1, 2] x)r"   r3   s    r   test_pos_after_key$TestBufferParsing.test_pos_after_key#   s    B4	6r    N)__name__
__module____qualname____firstlineno__r   r"   r/   r4   r7   r:   __static_attributes__r<   r   r   r   r      s"    C9:;G6r   r   c                   B    \ rS rSrS rSS jrS rS rS rS r	S r
S	rg
)TestBufferOptions+   c                 F    Xl         U R                  U R                  5        g r
   )errorr(   expect_error)r   rF   s     r   nonfatal_error TestBufferOptions.nonfatal_error.   s    
))*r   c                    US:w  d   eSU-  nX l         U R                  U[        U 5      [        U 5      /S9R                  nU(       d  UR
                  S   R                  R
                  S   n[        U[        5      (       d   eUR                  nU R                  [        U[        5      5        U R                  [        UR                  [        5      5        U R                  SUR                  R                  5        U$ U R                  [!        UR
                  S   R                  R
                  5      S:H  5        g )N zdef f():
  cdef object[%s] xpipeliner   object)rG   r   NormalizeTree	PostParser   r&   bodyr)   CVarDefNoder'   r(   r*   base_type_nodeCSimpleBaseTypeNoder   namer+   )r   optsrG   r   r   vardefbuftypes          r   
parse_optsTestBufferOptions.parse_opts3   s    rzz+d2(}}Q-*=y)O}PUUZZ]''--a0Ffk2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                 n    U R                  USS9  U R                  XR                  R                  5        g )NT)rG   )rY   r   rF   r   )r   expected_errrV   s      r   	non_parseTestBufferOptions.non_parseC   s*    40zz'>'>?r   c                 @   U R                  S5      nU R                  [        UR                  [        5      5        U R                  UR                  R
                  S:H  =(       a    UR                  R                  S:H  5        U R                  SUR                  5        g )Nzunsigned short int, 3r      	rY   r(   r)   
dtype_noderT   signedlongnessr   ndimr   bufs     r   __test_basicTestBufferOptions.__test_basicH   sm    oo56
3>>3FGH--2Ts~~7N7NRT7TUCHH%r   c                 @   U R                  S5      nU R                  [        UR                  [        5      5        U R                  UR                  R
                  S:H  =(       a    UR                  R                  S:H  5        U R                  SUR                  5        g )Nz ndim=3, dtype=unsigned short intr   r`   ra   rb   rg   s     r   __test_dictTestBufferOptions.__test_dictN   sm    oo@A
3>>3FGH--2Ts~~7N7NRT7TUCHH%r   c                 ~    U R                  S5        U R                  [        S5        U R                  [        S5        g )Nzint, 2zint, 'a'zint, -34)rY   r]   ERR_BUF_NDIMr3   s    r   __test_ndimTestBufferOptions.__test_ndimT   s*    !|Z0|Z0r   c                 R   U R                  S[        U 5      [        U 5      /S9R                  nUR                  S   R
                  R                  nU R                  US   R                  R                  S:H  5        U R                  US   R                  R                  S:H  5        g )Nz
        DEF ndim = 3
        def f():
            cdef object[int, ndim] x
            cdef object[ndim=ndim, dtype=int] y
        rL   r   ra      )	r   rO   rP   r   r&   rQ   r(   r'   rf   )r   r-   r&   s      r   __test_use_DEF TestBufferOptions.__test_use_DEFY   s    MM 
 %T*IdO<  >
 ?Cd 	
 
%%a**//145a**//145r   )rF   rG   N)F)r=   r>   r?   r@   rH   rY   r]   _TestBufferOptions__test_basic_TestBufferOptions__test_dict_TestBufferOptions__test_ndim _TestBufferOptions__test_use_DEFrA   r<   r   r   rC   rC   +   s'    +
@ @
&&1
	6r   rC   __main__)Cython.TestUtilsr   Cython.Compiler.ErrorsCompilerr   Cython.Compiler.Nodes#Cython.Compiler.ParseTreeTransformsCython.Compiler.Bufferr   rC   r=   unittestmainr<   r   r   <module>r      sL    ' ' ' # 1 $6
 6F76
 76x zMMO r   