
    shUB                        S SK rS SKrS SKJrJr  S SKJr  S SKJ	r	J
r
  S SKJr  SSS.rS	S0rS
 rS rS rS rS rS rS rS rS*S jrS rS rS rS rS rS rS rS rS r S r! " S S\
\	5      r"S r#S  r$ " S! S"\
\	5      r% " S# S$\	5      r& " S% S&\
\	5      r' " S' S(\" 5       5      r(\)S):X  a  \RT                  " 5         gg)+    N)jitnjit)types)TestCaseMemoryLeakMixin)test_factoryFT)nopythonforceobjr	   c                    ^  U 4S jnU$ )Nc                 2   > SnT" U 5       H  nX-  nM	     U$ )Ng         )xresygen_funcs      o/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_generators.pyconsumermake_consumer.<locals>.consumer   s"    !AHC 
    r   )r   r   s   ` r   make_consumerr      s     Or   c              #   8   #    [        U 5       H  nUv   M	     g 7fNrange)r   is     r   gen1r      s     1X s   c              #   j   #    [        U 5       H   nUv   [        SS5       H	  nX-   v   M     M"     g 7f)N      r   )r   r   js      r   gen2r!      s/     1Xq!A%K  s   13c              #   0   #    U v   U S-   v   U S-   v   g 7f)Ng      ?              ?r   r   s    r   gen3r%   #   s     
G
c'M
b&L   c              #   D   #    [        S5       H  nUv   X-   v   M     g 7f)Nr   r   )r   r   zr   s       r   gen4r)   *   s$     1Xe      c               #      #    g 7fr   r   r   r   r   gen5r,   2   s
      	s   c              #   0   #    U S-   n US-   nX#-   v   M  7f)Nr      r   )abr   r   s       r   gen6r1   :   s&     	AA
Ee r&   c              #   P   #    [        U R                  5       H	  nX   v   M     g 7fr   r   sizearrr   s     r   gen7r7   B   s     388_f s   $&c              #   T   #    U(       + nU v   U(       a  Uv   U(       a  X-   v   g g 7fr   r   )r   r   r0   bbs       r   gen8r:   I   s(     B
G	e 	   &(c              #   (   #    [        5         U v   g 7fr   )objectr$   s    r   genobjr>   R   s     
H
Gs   c                     S U  5       $ )Nc              3   *   #    U  H	  oS -  v   M     g7f)r.   Nr   ).0r   s     r   	<genexpr>(return_generator_expr.<locals>.<genexpr>X   s     1aE1s   r   r$   s    r   return_generator_exprrD   W   s    1r   c              #   N   #    [         R                  " U 5       H  nUv   M	     g 7fr   )npndindex)shapeinds     r   gen_ndindexrJ   [   s     zz% 	 !   #%c              #   :   #    U R                    H  nUv   M	     g 7fr   )flat)r6   vals     r   gen_flatrO   `   s     xx	 s   c              #   N   #    [         R                  " U 5       H  nUv   M	     g 7fr   )rF   ndenumerate)r6   tups     r   gen_ndenumeraterS   e   s     ~~c"	 #rK   c               #      #    Sv   g 7f)NTr   r   r   r   gen_boolrU   j   s
     
J   c               #      #    S v   Sv   g 7f)Nr#   r   r   r   r   gen_unification_errorrX   n   s     
J
H   
c               #   $   #    Sn Sv    U v n M  7f)Nr   r#   r   )r   s    r   'gen_optional_and_type_unification_errorr[   s   s     	A
H
G    c               #      #    Sv   Sv   g 7f)N)r   r.   )r      r   r   r   r   gen_changing_tuple_typer_   {   s     
J
JrY   c               #   $   #    Sv   Sv   Sv   g 7f)Nr   g      @y        33333P@r   r   r   r   gen_changing_number_typera      s     
G
I
Kr\   c                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S-r/g.)/TestGenerators   c                 :   U R                  [        U5      [        U5      5        U Vs/ s H  o3PM     nnU Vs/ s H  o3PM     nnU R                  XE5        U R                  [        5         [        U5        S S S 5        g s  snf s  snf ! , (       d  f       g = fr   )assertEqualnextassertRaisesStopIteration)selfpygencgenr   expectedgots         r   check_generatorTestGenerators.check_generator   s~    dT%[1  %%u!Au%$Qq$'}-J .- &--s   BB-B
Bc                     [         n[        [        R                  440 UD6" U5      nU" S5      nU" S5      nU R	                  XE5        g N   )r   r   r   int32ro   rj   kwargspyfunccrrk   rl   s         r   
check_gen1TestGenerators.check_gen1   A    %++*6*62q	!uU)r   c                 0    U R                   " S0 [        D6  g Nr   )ry   nopython_flagsrj   s    r   	test_gen1TestGenerators.test_gen1       ).)r   c                 0    U R                   " S0 [        D6  g r}   )ry   forceobj_flagsr   s    r   test_gen1_objmode TestGenerators.test_gen1_objmode   r   r   c                     [         n[        [        R                  440 UD6" U5      nU" S5      nU" S5      nU R	                  XE5        g rr   )r!   r   r   rt   ro   ru   s         r   
check_gen2TestGenerators.check_gen2   r{   r   c                 0    U R                   " S0 [        D6  g r}   )r   r~   r   s    r   	test_gen2TestGenerators.test_gen2   r   r   c                 0    U R                   " S0 [        D6  g r}   )r   r   r   s    r   test_gen2_objmode TestGenerators.test_gen2_objmode   r   r   c                     [         n[        [        R                  440 UD6" U5      nU" S5      nU" S5      nU R	                  XE5        g rr   )r%   r   r   rt   ro   ru   s         r   
check_gen3TestGenerators.check_gen3   r{   r   c                 0    U R                   " S0 [        D6  g r}   )r   r~   r   s    r   	test_gen3TestGenerators.test_gen3   r   r   c                 0    U R                   " S0 [        D6  g r}   )r   r   r   s    r   test_gen3_objmode TestGenerators.test_gen3_objmode   r   r   c                     [         n[        [        R                  4S-  40 UD6" U5      nU" SSS5      nU" SSS5      nU R	                  XE5        g )Nr            )r)   r   r   rt   ro   ru   s         r   
check_gen4TestGenerators.check_gen4   sN    %++!#.v.v6q!Q!Q{U)r   c                 0    U R                   " S0 [        D6  g r}   )r   r~   r   s    r   	test_gen4TestGenerators.test_gen4   r   r   c                 0    U R                   " S0 [        D6  g r}   )r   r   r   s    r   test_gen4_objmode TestGenerators.test_gen4_objmode   r   r   c                     U R                  5        n[        S0 [        D6" [        5        S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nz2Cannot type generator: it does not yield any valuer   )assertTypingErrorr   r~   r,   assertInstr	exception)rj   raisess     r   	test_gen5TestGenerators.test_gen5   sK    ##%%n%d+ &J&**+	- &%s   A
A'c                     [        S0 [        D6" [        5      " 5       nU R                  [	        U5      / 5        U R                  [        5         [        U5        S S S 5        g ! , (       d  f       g = fNr   )r   r   r,   rf   listrh   ri   rg   )rj   rl   s     r   test_gen5_objmode TestGenerators.test_gen5_objmode   sL    ((.0dR(}-J .--s   A$$
A2c                     [        [        R                  4S-  40 UD6" [        5      nU" SS5      n/ n[	        S5       H  nUR                  [        U5      5        M     U R                  US/S-  5        g )Nr.   r   r   r      )r   r   rt   r1   r   appendrg   rf   )rj   rv   rx   rl   lr   s         r   
check_gen6TestGenerators.check_gen6   se    %++!#.v.t4!QxqAHHT$Z  RD1H%r   c                 0    U R                   " S0 [        D6  g r}   )r   r~   r   s    r   	test_gen6TestGenerators.test_gen6   r   r   c                 0    U R                   " S0 [        D6  g r}   )r   r   r   s    r   test_gen6_objmode TestGenerators.test_gen6_objmode   r   r   c                    [         n[        [        R                  " [        R                  SS5      440 UD6" U5      n[
        R                  " SSS5      nU" UR                  5       5      nU" U5      nU R                  XV5        g )Nr   C
   r   )	r7   r   r   Arrayfloat64rF   linspacecopyro   )rj   rv   rw   rx   r6   rk   rl   s          r   
check_gen7TestGenerators.check_gen7   sh    %++emmQ46A&A&Ikk!R#sxxz"#wU)r   c                 0    U R                   " S0 [        D6  g r}   )r   r~   r   s    r   	test_gen7TestGenerators.test_gen7   r   r   c                 0    U R                   " S0 [        D6  g r}   )r   r   r   s    r   test_gen7_objmode TestGenerators.test_gen7_objmode   r   r   c                    ^ ^^ [         m[        S
0 UD6" T5      mUUU 4S jnU" SS5        U" S5        U" SS9  U" SSS	9  g )Nc                  B   > TR                  T" U 0 UD6T" U 0 UD65        g r   )ro   )argsrv   cfuncrw   rj   s     r   check(TestGenerators.check_gen8.<locals>.check   s*      !8!8!&!7!79r   r.   r   r^   r   )r   r   T)r   r0   r   )r:   r   )rj   jit_argsr   r   rw   s   `  @@r   
check_gen8TestGenerators.check_gen8   s@    h'	9 	aa
Tr   c                 "    U R                  SS9  g )NTr	   r   r   s    r   	test_gen8TestGenerators.test_gen8       &r   c                 "    U R                  SS9  g )NT)r
   r   r   s    r   test_gen8_objmode TestGenerators.test_gen8_objmode   r   r   c                 p    [         n[        S0 UD6" U5      nU" 5       nU" 5       nU R                  XE5        g r   )rU   r   ro   ru   s         r   
check_gen9TestGenerators.check_gen9  s5    vv&tU)r   c                 0    U R                   " S0 [        D6  g r}   )r   r~   r   s    r   	test_gen9TestGenerators.test_gen9	  r   r   c                 0    U R                   " S0 [        D6  g r}   )r   r   r   s    r   test_gen9_objmode TestGenerators.test_gen9_objmode  r   r   c                     [        SS9" U5      n[        SS9" [        U5      5      n[        U5      nU" S5      nU" S5      nU R                  Xe5        g )NTr   r   )r   r   assertPreciseEqual)rj   r   rl   r   rw   rm   rn   s          r   check_consume_generator&TestGenerators.check_consume_generator  sO    D!(+T"=#67x(!9Ah.r   c                 .    U R                  [        5        g r   )r   r   r   s    r   test_consume_gen1 TestGenerators.test_consume_gen1      $$T*r   c                 .    U R                  [        5        g r   )r   r!   r   s    r   test_consume_gen2 TestGenerators.test_consume_gen2  r   r   c                 .    U R                  [        5        g r   )r   r%   r   s    r   test_consume_gen3 TestGenerators.test_consume_gen3  r   r   c                     [         n[        [        R                  " [        R                  S5      440 UD6" U5      nSnU" U5      nU" U5      nU R                  XV5        g )Nr.   r.   r   )rJ   r   r   UniTupleintpro   )rj   rv   rw   rx   rH   rk   rl   s          r   check_ndindexTestGenerators.check_ndindex"  sR    %..Q/1<V<VDu%yU)r   c                 0    U R                   " S0 [        D6  g r}   )r   r~   r   s    r   test_ndindexTestGenerators.test_ndindex*      ,^,r   c                 0    U R                   " S0 [        D6  g r}   )r   r   r   s    r   test_ndindex_objmode#TestGenerators.test_ndindex_objmode-  r   r   c                    [        [        R                  " [        R                  SS5      440 UD6" U5      n[        R
                  " S[        R                  S9R                  S5      nU R                  U" U5      U" U5      5        [        [        R                  " [        R                  SS5      440 UD6" U5      nUR                  nU R                  U" U5      U" U5      5        g )Nr.   r   r   dtyper   A)	r   r   r   rt   rF   arangereshapero   T)rj   rw   rv   rx   r6   crAs         r   check_np_flatTestGenerators.check_np_flat0  s    %++ekk1c24??Gii*226:VC["S'25;;u{{As35@@HeeVC[#c(3r   c                 :    U R                   " [        40 [        D6  g r   )r  rO   r~   r   s    r   test_np_flatTestGenerators.test_np_flat8      86~6r   c                 :    U R                   " [        40 [        D6  g r   )r  rO   r   r   s    r   test_np_flat_objmode#TestGenerators.test_np_flat_objmode;  r  r   c                 :    U R                   " [        40 [        D6  g r   )r  rS   r~   r   s    r   test_ndenumerateTestGenerators.test_ndenumerate>      ?=n=r   c                 :    U R                   " [        40 [        D6  g r   )r  rS   r   r   s    r   test_ndenumerate_objmode'TestGenerators.test_ndenumerate_objmodeA  r  r   c                     [         nU R                  5        n[        S0 [        D6" U5        S S S 5        SnU R	                  U[        WR                  5      5        g ! , (       d  f       N6= f)NzACan't unify yield type from the following types: complex128, noner   )rX   r   r   r~   r   r   r   rj   rw   r   msgs       r   test_type_unification_error*TestGenerators.test_type_unification_errorD  sS    &##%%n%f- &c3v//01 &%s   A
A+c                    [         nU R                  5        n[        S0 [        D6" U5        S S S 5        SnU R	                  U[
        R                  R                  -  [        WR                  5      5        g ! , (       d  f       NQ= f)NzHCan't unify yield type from the following types: complex128, int%s, noner   )
r[   r   r   r~   r   r   r   bitwidthr   r   r  s       r   .test_optional_expansion_type_unification_error=TestGenerators.test_optional_expansion_type_unification_errorM  sb    8##%%n%f- &cEJJ///V5E5E1FG &%s   A88
Bc                     [         n[        U" 5       5      n[        [        U5      " 5       5      nU R                  X#5        g r   )r_   r   r   rf   rj   rw   rm   rn   s       r   test_changing_tuple_type'TestGenerators.test_changing_tuple_typeV  s0    (>4<>"'r   c                     [         n[        U" 5       5      n[        [        U5      " 5       5      nU R                  X#5        g r   )ra   r   r   rf   r&  s       r   test_changing_number_type(TestGenerators.test_changing_number_type]  s0    )>4<>"'r   r   N)0__name__
__module____qualname____firstlineno__ro   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r#  r'  r*  __static_attributes__r   r   r   rc   rc      s    ************-&*****''***/+++
*--477>>2H((r   rc   c              #   &   #    U  H  nUv   M	     g 7fr   r   )aryelems     r   nrt_gen0r4  e  s     
 s   c              #   D   #    [        X5       H  u  p#Uv   Uv   M     g 7fr   )zip)ary1ary2e1e2s       r   nrt_gen1r;  j  s     d/ "r*   c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestNrtArrayGenip  c                 @   [         n[        SS9" U5      n[        R                  " S5      nUR	                  5       n[        U" U5      5      n[        U" U5      5      n[        R                  R                  X45        U R                  XV5        U R                  X45        g )NTr   r   )
r4  r   rF   r  r   r   testingassert_equalrf   assertRefCountEqual)rj   rk   rl   py_aryc_arypy_resc_ress          r   test_nrt_gen0TestNrtArrayGen.test_nrt_gen0q  sx    D!%(2eFm$T%[!


.'  /r   c                    [         n[        SS9" U5      n[        R                  " S5      nUS-   nUR	                  5       nUR	                  5       n[        U" X45      5      n[        U" XV5      5      n[        R                  R                  X55        [        R                  R                  XF5        U R                  Xx5        U R                  X55        U R                  XF5        g )NTr   r   d   )
r;  r   rF   r  r   r   r?  r@  rf   rA  )	rj   rk   rl   py_ary1py_ary2c_ary1c_ary2rD  rE  s	            r   test_nrt_gen1TestNrtArrayGen.test_nrt_gen1  s    D!%())B-C-eG-.T&)*


0


0'  1  1r   c                 D    U R                  5         U R                  5         g)a
  
Issue #1163 is observed when two generator with NRT object arguments
is ran in sequence.  The first one does a invalid free and corrupts
the NRT memory subsystem.  The second generator is likely to segfault
due to corrupted NRT data structure (an invalid MemInfo).
N)rF  rN  r   s    r   test_combine_gen0_gen1&TestNrtArrayGen.test_combine_gen0_gen1  s     	r   c                 4   [         n[        SS9" U5      n[        R                  " S5      nUR	                  5       nU" U5      nU" U5      n[        U5      n[        U5      nU R                  [        5         [        U5      nSSS5        U R                  [        5         [        U5      nSSS5        AA[        R                  R                  X45        U R                  Xx5        U R                  X45        g! , (       d  f       N{= f! , (       d  f       Nc= f)z
Test cleanup on StopIteration
Tr   r   N)r4  r   rF   r  r   rg   rh   ri   r?  r@  rf   rA  )	rj   rk   rl   rB  rC  py_iterc_iterrD  rE  s	            r   test_nrt_gen0_stop_iteration,TestNrtArrayGen.test_nrt_gen0_stop_iteration  s     D!%(1-egV}-']F . }-LE . 


.'  / .- .-s   7C8 D	8
D	
Dc                     [         n[        SS9" U5      n[        R                  " S5      nUR	                  5       nU" U5      nU" U5      nAA[        R
                  R                  X45        U R                  X45        g)zR
Test cleanup for a initialized but never iterated (never call next())
generator.
Tr   r   N)r4  r   rF   r  r   r?  r@  rA  )rj   rk   rl   rB  rC  rT  rU  s          r   test_nrt_gen0_no_iter%TestNrtArrayGen.test_nrt_gen0_no_iter  sj    
 D!%(1-e


. 	  /r   r   N)
r,  r-  r.  r/  rF  rN  rQ  rV  rY  r0  r   r   r   r=  r=  p  s    02(0<0r   r=  c                   D    \ rS rSrS r\R                  S 5       rS rSr	g)TestNrtNestedGeni  c                    S nS n[         R                  " S5      nUR                  5       nU" U5      " U5      u  pV[        SS9" U" [        SS9" U5      5      5      nU" U5      u  pU R	                  X45        U R                  Xc5        U R                  X5        [         R                  R                  XX5        U R                  XX5        g )Nc              3   L   #    [        U R                  5       H  nU v   M	     g 7fr   r3   r5   s     r   gen02TestNrtNestedGen.test_nrt_nested_gen.<locals>.gen0  s     388_	 %s   "$c                    ^  U 4S jnU$ )Nc                 \   > [         R                  " U 5      nT" U 5       H  nX-   nM	     X4$ r   )rF   
zeros_like)r6   outr   r_  s      r   r   CTestNrtNestedGen.test_nrt_nested_gen.<locals>.factory.<locals>.gen1  s-    mmC(cA'C #xr   r   r_  r   s   ` r   factory5TestNrtNestedGen.test_nrt_nested_gen.<locals>.factory  s      Kr   r   Tr   )	rF   r  r   r   assertIsNotassertIsr?  r@  rA  )
rj   r_  rg  py_arrc_arrrD  py_oldc_genrE  c_olds
             r   test_nrt_nested_gen$TestNrtNestedGen.test_nrt_nested_gen  s    		 2 v.T"73+=d+C#DEU|'f%e#


.  /r   c                 T   S nS n[         R                  " S5      nUR                  5       nU" U5      " U5      n[        SS9" U" [        SS9" U5      5      5      nU" U5      nU R	                  X45        U R                  XS5        U R                  Xt5        U R                  XW5        g )Nc              3      #    U v   g 7fr   r   )r6   s    r   r_  8TestNrtNestedGen.test_nrt_nested_gen_refct.<locals>.gen0  s
     IrV   c                    ^  U 4S jnU$ )Nc                 (   > T" U 5       H  nUs  $    g r   r   )r6   rd  r_  s     r   r   ITestNrtNestedGen.test_nrt_nested_gen_refct.<locals>.factory.<locals>.gen1  s    9CJ %r   r   rf  s   ` r   rg  ;TestNrtNestedGen.test_nrt_nested_gen_refct.<locals>.factory  s     Kr   r   Tr   )rF   r  r   r   ri  rj  rA  )rj   r_  rg  rk  rl  rm  rn  ro  s           r   test_nrt_nested_gen_refct*TestNrtNestedGen.test_nrt_nested_gen_refct  s    		 2v&T"73+=d+C#DEe'f%e#  /r   c                     S 4S jnU" 5       nU" [        SS95      n[        U" S5      5      n[        U" S5      5      nU R                  XE5        g)z
Test nesting three generators
c                     U $ r   r   r$   s    r   <lambda>?TestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.<lambda>  s    Ar   c                 F   ^^ U S 5       mU U4S j5       mU U4S j5       nU$ )Nc              3   T   #    [        U5       H  nX   v   X==   U-  ss'   M     g 7fr   r   )r/   nr   s      r   fooKTestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory.<locals>.foo  s%     qA$JDAID "r;   c              3      >#    [         R                  " U 5      nT" X5       H
  nUS-  v   M     [        UR                  5       H	  nX   v   M     g 7f)Nr.   )rF   r  r   r4   )r  r/   r   r  s      r   barKTestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory.<locals>.bar  sC     IIaLQAa%K #qvvA$J 's   AAc              3   8   >#    T" U 5       H	  nX-   v   M     g 7fr   r   )r  r   r  s     r   catKTestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory.<locals>.cat$  s     QA%K  s   r   )decorr  r  r  s     @@r   rg  >TestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory  sD     
       Jr   Tr   r   N)r   r   rf   )rj   rg  py_genrn  rD  rE  s         r   test_nrt_nested_nopython_gen-TestNrtNestedGen.test_nrt_nested_nopython_gen  sM    
 & 	, T*+fRj!U2Y'r   r   N)
r,  r-  r.  r/  rp  unittestexpectedFailurery  r  r0  r   r   r   r\  r\    s'    0F 0 0.!(r   r\  c                   &    \ rS rSrS rS rS rSrg)TestGeneratorWithNRTi4  c                     [        SS9S 5       n[        U" S5      5      nU R                  [        U5      S5        [        R
                  " S5      nSUSS& U H"  n[        R                  R                  X45        M$     g)z)
Missing environment for returning array
Tr   c              3   n   #    [        U 5       H"  n[        R                  " S5      nSUS S & Uv   M$     g 7f)Nr      )r   rF   empty)r  r   vecs      r   random_directions?TestGeneratorWithNRT.test_issue_1254.<locals>.random_directions:  s.     1XhhqkA	 s   35r   r   r  N)r   r   rf   lenrF   r  r?  r@  )rj   r  outputsexpectrn   s        r   test_issue_1254$TestGeneratorWithNRT.test_issue_12545  ss    
 
d		 
	 (+,Wq)!q	CJJ##F0 r   c                 6  ^^ S m[        SS9" T5      m[        T" SSS5      5      n[        T" SSS5      5      nU R                  X5        U4S jn[        SS9U4S j5       nSnSS	U4nU" U5      nU" U5      n[        R                  R                  X5        g
)z=
Double-free for locally allocated, non escaping NRT objects
c              3   V   #    [         R                  " XU5      nUS   v   US   v   g 7f)Nr   r   )rF   r   )rminrmaxnrr/   s       r   r  4TestGeneratorWithNRT.test_issue_1265.<locals>.py_genN  s'     D+AA$JA$Js   ')Tr   r.   rI  c                    > U u  pn[         R                  " U[         R                  S9n[        T" XU5      5       H	  u  pVXdU'   M     U$ Nr  rF   r  
complex128	enumerate)r   r  r  r  pointsr   cr  s          r   	py_driver7TestGeneratorWithNRT.test_issue_1265.<locals>.py_driverZ  sF    !NDXXb6F!&R"89q	 : Mr   c                    > U u  pn[         R                  " U[         R                  S9n[        T" XU5      5       H	  u  pVXdU'   M     U$ r  r  )r   r  r  r  r  r   r  rn  s          r   c_driver6TestGeneratorWithNRT.test_issue_1265.<locals>.c_driverb  sF    !NDXXb6F!%B"78q	 9 Mr   N)r   r   rf   rF   r?  r@  )	rj   rD  rE  r  r  r  patchesrn  r  s	          @@r   test_issue_1265$TestGeneratorWithNRT.test_issue_1265I  s    
	
 T"6*fRC()U2q#&''	 
d		 
	 r1+7#!


.r   c                    ^^^ Sm[         U4S j5       m[         U4S j5       m[         U4S j5       nU R                  U" 5       T5        g)z
Incorrect return data model
l   >[= c               3      >#    T v   g 7fr   r   )magics   r   	generator7TestGeneratorWithNRT.test_issue_1808.<locals>.generatorz  s     Ks   	c                     > T " 5       $ r   r   )r  s   r   get_generator;TestGeneratorWithNRT.test_issue_1808.<locals>.get_generator~  s    ;r   c                  0   > Sn T" 5        H  nX-  n M	     U $ )Nr   r   )rd  r   r  s     r   main2TestGeneratorWithNRT.test_issue_1808.<locals>.main  s"    C"_ % Jr   N)r   rf   )rj   r  r  r  r  s     @@@r   test_issue_1808$TestGeneratorWithNRT.test_issue_1808t  sX     		 
	 
	 
	 
	 
	 	'r   r   N)r,  r-  r.  r/  r  r  r  r0  r   r   r   r  r  4  s    1()/V(r   r  c            
           \ rS rSr\R
                  " S\R                  \R                  \R                  /\R                  \R                  SSS2   /SS9r
Srg)TestGeneratorModeli  Nr   F)r   
yield_type	arg_typesstate_typeshas_finalizerr   )r,  r-  r.  r/  r   	Generatorrt   int64float32r   fe_typer0  r   r   r   r  r    sC    oot).emm(D+0::uzz#A#*G,13Gr   r  __main__)r   r.   F)+numpyrF   r  numbar   r   
numba.corer   numba.tests.supportr   r   numba.core.datamodel.testingr   r   r~   r   r   r!   r%   r)   r,   r1   r7   r:   r>   rD   rJ   rO   rS   rU   rX   r[   r_   ra   rc   r4  r;  r=  r\  r  r  r,  r  r   r   r   <module>r     s        9 5#6d#





Z(_h Z(z
`0ox `0H](x ](@V(?H V(r3 3 zMMO r   