
    xKgUB                        d dl Zd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ dddZd	diZd
 Zd Zd Zd Zd Zd Zd Zd Zd*dZd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z! G d de
e	      Z"d Z#d  Z$ G d! d"e
e	      Z% G d# d$e	      Z& G d% d&e
e	      Z' G d' d( e             Z(e)d)k(  r ejT                          yy)+    N)jitnjit)types)TestCaseMemoryLeakMixin)test_factoryFT)nopythonforceobjr	   c                       fd}|S )Nc                 0    d} |       D ]  }||z  }	 |S )Ng         )xresygen_funcs      _/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_generators.pyconsumerzmake_consumer.<locals>.consumer   s$    !A1HC 
    r   )r   r   s   ` r   make_consumerr      s     Or   c              #   4   K   t        |       D ]  }|  y wNrange)r   is     r   gen1r      s     1X s   c              #   d   K   t        |       D ]  }| t        dd      D ]	  }||z       y w)N      r   )r   r   js      r   gen2r       s2     1Xq!Aa%K  s   .0c              #   0   K   |  | dz    | dz    y w)Ng      ?              ?r   r   s    r   gen3r$   #   s     
G
c'M
b&L   c              #   B   K   t        d      D ]  }| ||z     y w)Nr   r   )r   r   zr   s       r   gen4r(   *   s'     1X!e  s   c               #      K   y wr   r   r   r   r   gen5r*   2   s      	s   c              #   0   K   | dz   }	 |dz   }||z    w)Nr      r   )abr   r   s       r   gen6r/   :   s)     	AA
E!e r%   c              #   N   K   t        | j                        D ]	  }| |     y wr   r   sizearrr   s     r   gen7r5   B   s!     388_!f s   #%c              #   :   K   | }|  |r| |r| |z    y y wr   r   )r   r   r.   bbs       r   gen8r8   I   s+     B
G	!e 	s   c              #   (   K   t                |  y wr   )objectr#   s    r   genobjr;   R   s     
H
Gs   c                     d | D        S )Nc              3   &   K   | ]	  }|d z    yw)r,   Nr   ).0r   s     r   	<genexpr>z(return_generator_expr.<locals>.<genexpr>X   s     1aAE1s   r   r#   s    r   return_generator_exprr@   W   s    1r   c              #   H   K   t        j                  |       D ]  }|  y wr   )npndindex)shapeinds     r   gen_ndindexrF   [   s     zz% 	 !    "c              #   6   K   | j                   D ]  }|  y wr   )flat)r4   vals     r   gen_flatrK   `   s     xx	 s   c              #   H   K   t        j                  |       D ]  }|  y wr   )rB   ndenumerate)r4   tups     r   gen_ndenumeraterO   e   s     ~~c"	 #rG   c               #      K   d y w)NTr   r   r   r   gen_boolrQ   j   s     
J   c               #      K   d  d y w)Nr"   r   r   r   r   gen_unification_errorrT   n   s     
J
H   
c               #   "   K   d} d 	 | } w)Nr   r"   r   )r   s    r   'gen_optional_and_type_unification_errorrW   s   s     	A
H
G    c               #      K   d d y w)N)r   r,   )r      r   r   r   r   gen_changing_tuple_typer[   {   s     
J
JrU   c               #   $   K   d d d y w)Nr   g      @y        33333P@r   r   r   r   gen_changing_number_typer]      s     
G
I
Ks   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-y,)-TestGeneratorsc                 *   | j                  t        |      t        |             |D cg c]  }| }}|D cg c]  }| }}| j                  ||       | j                  t              5  t        |       d d d        y c c}w c c}w # 1 sw Y   y xY wr   )assertEqualnextassertRaisesStopIteration)selfpygencgenr   expectedgots         r   check_generatorzTestGenerators.check_generator   s    dT%[1  %%u!Au%$Qq$3'}-J .- &--s   	A?	B*B		Bc                     t         } t        t        j                  ffi ||      } |d      } |d      }| j	                  ||       y N   )r   r   r   int32rj   re   kwargspyfunccrrf   rg   s         r   
check_gen1zTestGenerators.check_gen1   E    *S%++*6*62q	!uUD)r   c                 0     | j                   di t         y Nr   )rs   nopython_flagsre   s    r   	test_gen1zTestGenerators.test_gen1       ).)r   c                 0     | j                   di t         y rv   )rs   forceobj_flagsrx   s    r   test_gen1_objmodez TestGenerators.test_gen1_objmode   rz   r   c                     t         } t        t        j                  ffi ||      } |d      } |d      }| j	                  ||       y rl   )r    r   r   rn   rj   ro   s         r   
check_gen2zTestGenerators.check_gen2   rt   r   c                 0     | j                   di t         y rv   )r   rw   rx   s    r   	test_gen2zTestGenerators.test_gen2   rz   r   c                 0     | j                   di t         y rv   )r   r|   rx   s    r   test_gen2_objmodez TestGenerators.test_gen2_objmode   rz   r   c                     t         } t        t        j                  ffi ||      } |d      } |d      }| j	                  ||       y rl   )r$   r   r   rn   rj   ro   s         r   
check_gen3zTestGenerators.check_gen3   rt   r   c                 0     | j                   di t         y rv   )r   rw   rx   s    r   	test_gen3zTestGenerators.test_gen3   rz   r   c                 0     | j                   di t         y rv   )r   r|   rx   s    r   test_gen3_objmodez TestGenerators.test_gen3_objmode   rz   r   c                     t         } t        t        j                  fdz  fi ||      } |ddd      } |ddd      }| j	                  ||       y )Nr            )r(   r   r   rn   rj   ro   s         r   
check_gen4zTestGenerators.check_gen4   sR    .S%++!#.v.v6q!Q!Q{UD)r   c                 0     | j                   di t         y rv   )r   rw   rx   s    r   	test_gen4zTestGenerators.test_gen4   rz   r   c                 0     | j                   di t         y rv   )r   r|   rx   s    r   test_gen4_objmodez TestGenerators.test_gen4_objmode   rz   r   c                     | j                         5 } t        di t        t               d d d        | j	                  dt        j                               y # 1 sw Y   /xY w)Nz2Cannot type generator: it does not yield any valuer   )assertTypingErrorr   rw   r*   assertInstr	exception)re   raisess     r   	test_gen5zTestGenerators.test_gen5   sM    ##%%C%n%d+ &J&**+	- &%s   AA"c                       t        di t        t                     }| j                  t	        |      g        | j                  t              5  t        |       d d d        y # 1 sw Y   y xY wNr   )r   r|   r*   ra   listrc   rd   rb   )re   rg   s     r   test_gen5_objmodez TestGenerators.test_gen5_objmode   sQ    .(s((.0dR(}-J .--s   A$$A-c                      t        t        j                  fdz  fi |t              } |dd      }g }t	        d      D ]  }|j                  t        |              | j                  |dgdz         y )Nr,   r   r   r      )r   r   rn   r/   r   appendrb   ra   )re   rp   rr   rg   lr   s         r   
check_gen6zTestGenerators.check_gen6   sg    .S%++!#.v.t4!QxqAHHT$Z  RD1H%r   c                 0     | j                   di t         y rv   )r   rw   rx   s    r   	test_gen6zTestGenerators.test_gen6   rz   r   c                 0     | j                   di t         y rv   )r   r|   rx   s    r   test_gen6_objmodez TestGenerators.test_gen6_objmode   rz   r   c                 
   t         } t        t        j                  t        j                  dd      ffi ||      }t        j                  ddd      } ||j                               } ||      }| j                  ||       y )Nr   C
   r   )	r5   r   r   Arrayfloat64rB   linspacecopyrj   )re   rp   rq   rr   r4   rf   rg   s          r   
check_gen7zTestGenerators.check_gen7   sl    AS%++emmQ46A&A&Ikk!R#sxxz"#wUD)r   c                 0     | j                   di t         y rv   )r   rw   rx   s    r   	test_gen7zTestGenerators.test_gen7   rz   r   c                 0     | j                   di t         y rv   )r   r|   rx   s    r   test_gen7_objmodez TestGenerators.test_gen7_objmode   rz   r   c                      t          t        d
i |       fd} |dd        |d        |d        |dd	       y )Nc                  B    j                   | i | | i |       y r   )rj   )argsrp   cfuncrq   re   s     r   checkz(TestGenerators.check_gen8.<locals>.check   s*      !8!8!&!7!79r   r,   r   rZ   r   )r   r   T)r   r.   r   )r8   r   )re   jit_argsr   r   rq   s   `  @@r   
check_gen8zTestGenerators.check_gen8   sB    h'	9 	aa
Tr   c                 (    | j                  d       y )NTr	   r   rx   s    r   	test_gen8zTestGenerators.test_gen8       &r   c                 (    | j                  d       y )NT)r
   r   rx   s    r   test_gen8_objmodez TestGenerators.test_gen8_objmode   r   r   c                 r    t         } t        di ||      } |       } |       }| j                  ||       y r   )rQ   r   rj   ro   s         r   
check_gen9zTestGenerators.check_gen9  s9    Svv&tUD)r   c                 0     | j                   di t         y rv   )r   rw   rx   s    r   	test_gen9zTestGenerators.test_gen9	  rz   r   c                 0     | j                   di t         y rv   )r   r|   rx   s    r   test_gen9_objmodez TestGenerators.test_gen9_objmode  rz   r   c                      t        d      |      } t        d      t        |            }t        |      } |d      } |d      }| j                  ||       y )NTr   r   )r   r   assertPreciseEqual)re   r   rg   r   rq   rh   ri   s          r   check_consume_generatorz&TestGenerators.check_consume_generator  sU    !sD!(+"T"=#67x(!9AhX.r   c                 .    | j                  t               y r   )r   r   rx   s    r   test_consume_gen1z TestGenerators.test_consume_gen1      $$T*r   c                 .    | j                  t               y r   )r   r    rx   s    r   test_consume_gen2z TestGenerators.test_consume_gen2  r   r   c                 .    | j                  t               y r   )r   r$   rx   s    r   test_consume_gen3z TestGenerators.test_consume_gen3  r   r   c                     t         } t        t        j                  t        j                  d      ffi ||      }d} ||      } ||      }| j                  ||       y )Nr,   r,   r   )rF   r   r   UniTupleintprj   )re   rp   rq   rr   rD   rf   rg   s          r   check_ndindexzTestGenerators.check_ndindex"  sV    <S%..Q/1<V<VDu%yUD)r   c                 0     | j                   di t         y rv   )r   rw   rx   s    r   test_ndindexzTestGenerators.test_ndindex*      ,^,r   c                 0     | j                   di t         y rv   )r   r|   rx   s    r   test_ndindex_objmodez#TestGenerators.test_ndindex_objmode-  r   r   c                     t        t        j                  t        j                  dd      ffi ||      }t	        j
                  dt        j                        j                  d      }| j                   ||       ||              t        t        j                  t        j                  dd      ffi ||      }|j                  }| j                   ||       ||             y )Nr,   r   r   dtyper   A)	r   r   r   rn   rB   arangereshaperj   T)re   rq   rp   rr   r4   crAs         r   check_np_flatzTestGenerators.check_np_flat0  s    ?S%++ekk1c24??Gii*226:VC["S'2@c5;;u{{As35@@HeeVC[#c(3r   c                 :     | j                   t        fi t         y r   )r   rK   rw   rx   s    r   test_np_flatzTestGenerators.test_np_flat8      86~6r   c                 :     | j                   t        fi t         y r   )r   rK   r|   rx   s    r   test_np_flat_objmodez#TestGenerators.test_np_flat_objmode;  r   r   c                 :     | j                   t        fi t         y r   )r   rO   rw   rx   s    r   test_ndenumeratezTestGenerators.test_ndenumerate>      ?=n=r   c                 :     | j                   t        fi t         y r   )r   rO   r|   rx   s    r   test_ndenumerate_objmodez'TestGenerators.test_ndenumerate_objmodeA  r   r   c                     t         }| j                         5 } t        di t        |       d d d        d}| j	                  |t        j                               y # 1 sw Y   1xY w)NzACan't unify yield type from the following types: complex128, noner   )rT   r   r   rw   r   r   r   re   rq   r   msgs       r   test_type_unification_errorz*TestGenerators.test_type_unification_errorD  sU    &##%%C%n%f- &c3v//01 &%s   AA&c                    t         }| j                         5 } t        di t        |       d d d        d}| j	                  |t
        j                  j                  z  t        j                               y # 1 sw Y   LxY w)NzHCan't unify yield type from the following types: complex128, int%s, noner   )
rW   r   r   rw   r   r   r   bitwidthr   r   r   s       r   .test_optional_expansion_type_unification_errorz=TestGenerators.test_optional_expansion_type_unification_errorM  sd    8##%%C%n%f- &cEJJ///V5E5E1FG &%s   A88Bc                     t         }t         |             }t         t        |                   }| j                  ||       y r   )r[   r   r   ra   re   rq   rh   ri   s       r   test_changing_tuple_typez'TestGenerators.test_changing_tuple_typeV  s4    (><4<>"3'r   c                     t         }t         |             }t         t        |                   }| j                  ||       y r   )r]   r   r   ra   r   s       r   test_changing_number_typez(TestGenerators.test_changing_number_type]  s4    )><4<>"3'r   N).__name__
__module____qualname__rj   rs   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   r   r   r_   r_      s    ************-&*****''***/+++
*--477>>2H((r   r_   c              #   "   K   | D ]  }|  y wr   r   )aryelems     r   nrt_gen0r  e  s     
 rX   c              #   D   K   t        | |      D ]  \  }}| |  y wr   )zip)ary1ary2e1e2s       r   nrt_gen1r  j  s$     dD/B "s    c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestNrtArrayGenc                 J   t         } t        d      |      }t        j                  d      }|j	                         }t         ||            }t         ||            }t        j                  j                  ||       | j                  ||       | j                  ||       y )NTr   r   )
r  r   rB   r   r   r   testingassert_equalra   assertRefCountEqual)re   rf   rg   py_aryc_arypy_resc_ress          r   test_nrt_gen0zTestNrtArrayGen.test_nrt_gen0q  s    !sD!%(2eFm$T%[!


.'  /r   c                    t         } t        d      |      }t        j                  d      }|dz   }|j	                         }|j	                         }t         |||            }t         |||            }t        j                  j                  ||       t        j                  j                  ||       | j                  ||       | j                  ||       | j                  ||       y )NTr   r   d   )
r  r   rB   r   r   r   r  r  ra   r  )	re   rf   rg   py_ary1py_ary2c_ary1c_ary2r  r  s	            r   test_nrt_gen1zTestNrtArrayGen.test_nrt_gen1  s    !sD!%())B-C-eGW-.T&&)*


0


0'  &1  &1r   c                 D    | j                          | j                          y)a2  
        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)r  r  rx   s    r   test_combine_gen0_gen1z&TestNrtArrayGen.test_combine_gen0_gen1  s     	r   c                 *   t         } t        d      |      }t        j                  d      }|j	                         } ||      } ||      }t        |      }t        |      }| j                  t              5  t        |      }ddd       | j                  t              5  t        |      }ddd       ~~t        j                  j                  ||       | j                  ||       | j                  ||       y# 1 sw Y   yxY w# 1 sw Y   \xY w)z/
        Test cleanup on StopIteration
        Tr   r   N)r  r   rB   r   r   rb   rc   rd   r  r  ra   r  )	re   rf   rg   r  r  py_iterc_iterr  r  s	            r   test_nrt_gen0_stop_iterationz,TestNrtArrayGen.test_nrt_gen0_stop_iteration  s     !sD!%(1-egV}-']F . }-LE . 


.'  / .- .-s   9C="D	=D	Dc                    t         } t        d      |      }t        j                  d      }|j	                         } ||      } ||      }~~t        j
                  j                  ||       | j                  ||       y)zj
        Test cleanup for a initialized but never iterated (never call next())
        generator.
        Tr   r   N)r  r   rB   r   r   r  r  r  )re   rf   rg   r  r  r  r  s          r   test_nrt_gen0_no_iterz%TestNrtArrayGen.test_nrt_gen0_no_iter  sp    
 !sD!%(1-e


. 	  /r   N)r   r   r   r  r  r  r   r"  r   r   r   r
  r
  p  s    02(0<0r   r
  c                   <    e Zd Zd Zej
                  d        Zd Zy)TestNrtNestedGenc                    d }d }t        j                  d      }|j                         }  ||      |      \  }} t        d       | t        d      |                  } ||      \  }}	| j	                  ||       | j                  ||       | j                  |	|       t         j                  j                  ||       | j                  ||       y )Nc              3   H   K   t        | j                        D ]  }|   y wr   r1   r3   s     r   gen0z2TestNrtNestedGen.test_nrt_nested_gen.<locals>.gen0  s     388_	 %rG   c                       fd}|S )Nc                 Z    t        j                  |       } |       D ]  }||z   }	 || fS r   )rB   
zeros_like)r4   outr   r'  s      r   r   zCTestNrtNestedGen.test_nrt_nested_gen.<locals>.factory.<locals>.gen1  s1    mmC(cA'C #Cxr   r   r'  r   s   ` r   factoryz5TestNrtNestedGen.test_nrt_nested_gen.<locals>.factory  s      Kr   r   Tr   )	rB   r   r   r   assertIsNotassertIsr  r  r  )
re   r'  r-  py_arrc_arrr  py_oldc_genr  c_olds
             r   test_nrt_nested_genz$TestNrtNestedGen.test_nrt_nested_gen  s    		 2&v."T"7+=3+=d+C#DEU|u'ff%eU#


.  /r   c                 f   d }d }t        j                  d      }|j                         }  ||      |      } t        d       | t        d      |                  } ||      }| j	                  ||       | j                  ||       | j                  ||       | j                  ||       y )Nc              3      K   |  y wr   r   )r4   s    r   r'  z8TestNrtNestedGen.test_nrt_nested_gen_refct.<locals>.gen0  s     IrR   c                       fd}|S )Nc                 &     |       D ]  }|c S  y r   r   )r4   r+  r'  s     r   r   zITestNrtNestedGen.test_nrt_nested_gen_refct.<locals>.factory.<locals>.gen1  s    9CJ %r   r   r,  s   ` r   r-  z;TestNrtNestedGen.test_nrt_nested_gen_refct.<locals>.factory  s     Kr   r   Tr   )rB   r   r   r   r.  r/  r  )re   r'  r-  r0  r1  r2  r3  r4  s           r   test_nrt_nested_gen_refctz*TestNrtNestedGen.test_nrt_nested_gen_refct  s    		 2v&"T"7+=3+=d+C#DEe'ff%eU#  /r   c                     d fd} |       } |t        d            }t         |d            }t         |d            }| j                  ||       y)z/
        Test nesting three generators
        c                     | S r   r   r#   s    r   <lambda>z?TestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.<lambda>  s    Ar   c                 B    | d        | fd       | fd       }|S )Nc              3   T   K   t        |      D ]  }| |    | |xx   |z  cc<    y wr   r   )r-   nr   s      r   foozKTestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory.<locals>.foo  s*     qAA$JaDAID "s   &(c              3      K   t        j                  |       } ||       D ]	  }|dz    t        |j                        D ]	  }||     y w)Nr,   )rB   r   r   r2   )r@  r-   r   rA  s      r   barzKTestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory.<locals>.bar  sH     IIaLQAa%K #qvvAA$J 's   AAc              3   6   K    |       D ]	  }||z     y wr   r   )r@  r   rC  s     r   catzKTestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory.<locals>.cat$  s     QAa%K  s   r   )decorrE  rC  rA  s     @@r   r-  z>TestNrtNestedGen.test_nrt_nested_nopython_gen.<locals>.factory  sD     
       Jr   Tr   r   N)r   r   ra   )re   r-  py_genr3  r  r  s         r   test_nrt_nested_nopython_genz-TestNrtNestedGen.test_nrt_nested_nopython_gen  sO    
 & 	, T*+fRj!U2Y'r   N)r   r   r   r5  unittestexpectedFailurer:  rH  r   r   r   r$  r$    s'    0F 0 0.!(r   r$  c                       e Zd Zd Zd Zd Zy)TestGeneratorWithNRTc                    t        d      d        }t         |d            }| j                  t        |      d       t	        j
                  d      }d|dd |D ]"  }t        j                  j                  ||       $ y)z9
        Missing environment for returning array
        Tr   c              3   h   K   t        |       D ]   }t        j                  d      }d|d d  | " y w)Nr      )r   rB   empty)r@  r   vecs      r   random_directionsz?TestGeneratorWithNRT.test_issue_1254.<locals>.random_directions:  s/     1XhhqkA	 s   02r   r   rO  N)r   r   ra   lenrB   rP  r  r  )re   rR  outputsexpectri   s        r   test_issue_1254z$TestGeneratorWithNRT.test_issue_12545  su    
 
d		 
	 (+,Wq)!q	CJJ##FC0 r   c                 B   d  t        d            t         ddd            }t         ddd            }| j                  ||       fd}t        d      fd       }d}dd	|f} ||      } ||      }t        j                  j                  ||       y
)zM
        Double-free for locally allocated, non escaping NRT objects
        c              3   V   K   t        j                  | ||      }|d    |d    y w)Nr   r   )rB   r   )rminrmaxnrr-   s       r   rG  z4TestGeneratorWithNRT.test_issue_1265.<locals>.py_genN  s*     D$+AA$JA$Js   ')Tr   r,   r  c                     | \  }}}t        j                  |t         j                        }t         |||            D ]
  \  }}|||<    |S Nr   rB   rP  
complex128	enumerate)r   rY  rZ  r[  pointsr   crG  s          r   	py_driverz7TestGeneratorWithNRT.test_issue_1265.<locals>.py_driverZ  sN    !ND$XXb6F!&tR"891q	 : Mr   c                     | \  }}}t        j                  |t         j                        }t         |||            D ]
  \  }}|||<    |S r^  r_  )r   rY  rZ  r[  rb  r   rc  r3  s          r   c_driverz6TestGeneratorWithNRT.test_issue_1265.<locals>.c_driverb  sN    !ND$XXb6F!%dB"781q	 9 Mr   N)r   r   ra   rB   r  r  )	re   r  r  rd  rf  r@  patchesr3  rG  s	          @@r   test_issue_1265z$TestGeneratorWithNRT.test_issue_1265I  s    
	
 #T"6*fRC()U2q#&''	 
d		 
	 r1+7#!


.r   c                     dt         fd       t         fd       t         fd       }| j                   |              y)z-
        Incorrect return data model
        l   >[= c               3      K     y wr   r   )magics   r   	generatorz7TestGeneratorWithNRT.test_issue_1808.<locals>.generatorz  s     Ks   	c                               S r   r   )rm  s   r   get_generatorz;TestGeneratorWithNRT.test_issue_1808.<locals>.get_generator~  s    ;r   c                  .    d}         D ]  }| |z  } 	 | S )Nr   r   )r+  r   ro  s     r   mainz2TestGeneratorWithNRT.test_issue_1808.<locals>.main  s$    C"_q % Jr   N)r   ra   )re   rq  rm  ro  rl  s     @@@r   test_issue_1808z$TestGeneratorWithNRT.test_issue_1808t  sX     		 
	 
	 
	 
	 
	 	'r   N)r   r   r   rV  ri  rr  r   r   r   rL  rL  4  s    1()/V(r   rL  c            
           e Zd Z ej                  dej
                  ej                  ej                  gej                  ej                  ddd   gd      Z	y)TestGeneratorModelNr   F)r   
yield_type	arg_typesstate_typeshas_finalizer)
r   r   r   r   	Generatorrn   int64float32r   fe_typer   r   r   rt  rt    sE    eoot).emm(D+0::uzz#A#*G,13Gr   rt  __main__)r   r,   F)+numpyrB   rI  numbar   r   
numba.corer   numba.tests.supportr   r   numba.core.datamodel.testingr   r|   rw   r   r   r    r$   r(   r*   r/   r5   r8   r;   r@   rF   rK   rO   rQ   rT   rW   r[   r]   r_   r  r  r
  r$  rL  rt  r   rq  r   r   r   <module>r     s        9 5#6d#





Z(_h Z(z
`0ox `0H](x ](@V(?H V(r3 3 zHMMO r   