
    shHR                     N   S r SSKrSSKJr  SSKrSSKJrJrJ	r	J
r
  SSKrSSKJrJrJrJrJrJrJr  SSKJr  SSKJrJr   " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r \!S:X  a  \RD                  " 5         gg)z
Tests for sub-components of parfors.
These tests are aimed to produce a good-enough coverage of parfor passes
so that refactoring on these passes are easier with faster testing turnaround.
    Nreduce)njittypeofprangepndindex)rewritestyped_passesuntyped_passesinline_closurecallcompilercpuerrors)
cpu_target)TestCaseis_parfors_unsupportedc                       \ rS rSrS rSrg)
MyPipeline   c                 @   [         R                  " 5       U l        XR                  l        X R                  l        X0R                  l        X@R                  l        S U R                  l        S U R                  l        S U R                  l	        0 U R                  l
        g N)r   	StateDictstate	typingctx	targetctxargsfunc_irtypemapreturn_type	calltypesmetadata)selfr   r   r   test_irs        s/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_parfors_passes.py__init__MyPipeline.__init__   si    '')
(

(



$

!

!%

#

 

    )r   N)__name__
__module____qualname____firstlineno__r%   __static_attributes__ r'   r$   r   r      s    	!r'   r   c                   d    \ rS rSr\SS j5       r\S 5       r\SS j5       rS rS r	S r
S	 rS
rg)BaseTest'   Nc                    [         R                  n[         R                  n[        R                  " U5      n[
        R                  " S5      n[        XEX&5      nUR                  5         UR                  5         [        R                  " UR                  R                  USS9n	U	R                  5         [        R                  R!                  SUR                  5        ["        R$                  " 5       R'                  UR                  5        [(        R*                  " UR                  R,                  UR                  R.                  UR                  R                  UR                  R0                  S 5      u  UR                  l        UR                  l        UR                  l        n
[(        R8                  " 5       R'                  UR                  5        [:        R<                  R>                  RA                  5       n[:        R<                  R>                  RC                  UR                  R                  UR                  R2                  UR                  R6                  UR                  R,                  UR                  R.                  UURD                  US9nUR                  5         [        R                  R!                  SUR                  5        XX4$ )NT)typedzbefore-inference)swappedreplace_functions_mapzafter-inference)#r   typing_contexttarget_contextr   run_frontendr   ParallelOptionsr   refreshr   InlineClosureCallPassr   r   runr	   rewrite_registryapplyr   ReconstructSSArun_passr
   type_inference_stager   r   r   r   r   r    PreLowerStripPhisnumbaparforsparforParforDiagnosticsPreParforPassreplaced_fns)cls	test_funcr   swap_mapr   r   r#   optionstpinline_pass_diagnosticspreparfor_passs                r$   _run_parforBaseTest._run_parfor(   s    --	--	''	2%%d+	d<(>>HHgT
 	!!''(:BHHE%%'00: --HH 2 2BHH4D4DHHMM4
	
HHHH HH 	&&(11"((;mm**<<>--;;HHHHHHHHHH,,"* < 	
 	!!''(9288DK77r'   c                 \   U R                  X5      u  p4pV[        R                  " 5       n[        R                  R
                  R                  UR                  R                  UR                  R                  UR                  R                  UR                  R                  UR                  R                  UR                  R                  UUUR                  R                  US9
nUR                  5         U R!                  U5      n	U	R#                  UR                  R$                  5        U	$ )N)rO   )rQ   r   FlagsrB   rC   rD   
ParforPassr   r   r   r    r   r   r   r!   _pre_runsub_pass_classr;   blocks)
rH   rI   r   rL   rK   rO   rN   flagsparfor_passsub_passs
             r$   run_parfor_sub_passBaseTest.run_parfor_sub_pass\   s    &)ooi&F#[ mm**55HHHHHHHH  HHHHHH# 6 
 	%%k2[((//0r'   c                 0    U R                  XU5      u  pEpgU$ r   )rQ   )rH   rI   r   rJ   rL   rK   rO   rP   s           r$   run_parfor_pre_passBaseTest.run_parfor_pre_passt   s"    36??X4
0[ r'   c                 F    [        SS9" U5      nU" U0 UD6nU" U0 UD6nXV4$ )NT)parallel)r   )r"   funcr   kwargscfuncexpectgots          r$   _run_parallelBaseTest._run_parallel{   s7    d#D)t&v&T$V${r'   c                 n    [         (       a  g U R                  " U/UQ70 UD6u  pEU R                  XE5        g r   )r   rh   assertPreciseEqualr"   rc   r   rd   rf   rg   s         r$   run_parallelBaseTest.run_parallel   s5    !!((???,r'   c                    [         (       a  g U R                  " U/UQ70 UD6u  pEU R                  U[        R                  5        U R                  U[        R                  5        U R                  UR                  UR                  5        g r   )r   rh   assertIsInstancenpndarrayassertEqualshaperl   s         r$   run_parallel_check_output_array(BaseTest.run_parallel_check_output_array   sg    !!((???fbjj1c2::.syy1r'   c                     U H:  nU R                  US   [        R                  R                  R                  5        M<     g )Nnew)rp   rB   rC   rD   Parfor)r"   recordsrecs      r$   check_recordsBaseTest.check_records   s0    C!!#e*emm.B.B.I.IJ r'   r-   r   )r(   r)   r*   r+   classmethodrQ   r\   r_   rh   rm   ru   r|   r,   r-   r'   r$   r/   r/   '   sR    18 18f  .  -2Kr'   r/   c                   r    \ rS rSr\R
                  R                  R                  rS r	S r
S rS rS rSrg)	TestConvertSetItemPass   c                    S nU R                  US5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R	                  UR                  5        U R                  U5        g )Nc                  @    Sn [         R                  " U 5      nSUS S & U$ )N
      rq   onesnas     r$   	test_implATestConvertSetItemPass.test_setitem_full_slice.<locals>.test_impl   s"    A
AAaDHr'   r-      reasonslicer\   rs   len	rewrittenr|   rm   r"   r   r[   records       r$   test_setitem_full_slice.TestConvertSetItemPass.test_setitem_full_slice   z    	 ++Ir:X//0!4%%)738--.)$r'   c                    S nU R                  US5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R	                  UR                  5        U R                  U5        g )Nc                  @    Sn [         R                  " U 5      nSUS S& U$ )Nr   r      r   r   s     r$   r   GTestConvertSetItemPass.test_setitem_slice_stop_bound.<locals>.test_impl   s$    A
AAbqEHr'   r-   r   r   r   r   r   s       r$   test_setitem_slice_stop_bound4TestConvertSetItemPass.test_setitem_slice_stop_bound   r   r'   c                    S nU R                  US5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R	                  UR                  5        U R                  U5        g )Nc                  @    Sn [         R                  " U 5      nSUSS & U$ )Nr   r      r   r   s     r$   r   HTestConvertSetItemPass.test_setitem_slice_start_bound.<locals>.test_impl   s$    A
AAabEHr'   r-   r   r   r   r   r   s       r$   test_setitem_slice_start_bound5TestConvertSetItemPass.test_setitem_slice_start_bound   r   r'   c                    S nU R                  US5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R	                  UR                  5        U R                  U5        g )Nc                      Sn [         R                  " U 5      n[         R                  " U[         R                  S9nSX'   U$ )Nr   dtyper   rq   r   	ones_likebool_)r   r   bs      r$   r   GTestConvertSetItemPass.test_setitem_gather_if_scalar.<locals>.test_impl   s4    A
AQbhh/AADHr'   r-   r   r   masked_assign_broadcast_scalarr   r   s       r$   test_setitem_gather_if_scalar4TestConvertSetItemPass.test_setitem_gather_if_scalar   s{    	 ++Ir:X//0!4%%)+KL8--.)$r'   c                    S nU R                  US5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R	                  UR                  5        U R                  U5        g )Nc                      Sn [         R                  " U 5      n[         R                  " U[         R                  S9n[         R                  " U5      nX2   X'   U$ )Nr   r   r   )r   r   r   cs       r$   r   FTestConvertSetItemPass.test_setitem_gather_if_array.<locals>.test_impl   sC    A
AQbhh/AQA4ADHr'   r-   r   r   masked_assign_arrayr   r   s       r$   test_setitem_gather_if_array3TestConvertSetItemPass.test_setitem_gather_if_array   s{    	 ++Ir:X//0!4%%)+@A8--.)$r'   r-   N)r(   r)   r*   r+   rB   rC   rD   ConvertSetItemPassrW   r   r   r   r   r   r,   r-   r'   r$   r   r      s0    ]]))<<N%%%% %r'   r   c                       \ rS rSr\R
                  R                  R                  rS r	S r
S rS rS rS rS rS	 rS
rg)TestConvertNumpyPass   c                   ^ U4S jnU R                  US5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R	                  UR                  5        U R                  U5        g )Nc                     > Sn T" U 5      nU$ Nr   r-   r   r   fns     r$   r   >TestConvertNumpyPass.check_numpy_allocators.<locals>.test_impl       A1AHr'   r-   r   r   numpy_allocatorr   r"   r   r   r[   r   s    `   r$   check_numpy_allocators+TestConvertNumpyPass.check_numpy_allocators   s|    	
 ++Ir:X//0!4%%)+<=8--.)$r'   c                   ^ U4S jnU R                  US5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R	                  UR                  5        U R                  U5        g )Nc                     > Sn T" U 5      nU$ r   r-   r   s     r$   r   :TestConvertNumpyPass.check_numpy_random.<locals>.test_impl   r   r'   r-   r   r   r   )r\   rs   r   r   r|   ru   r   s    `   r$   check_numpy_random'TestConvertNumpyPass.check_numpy_random   s|    	
 ++Ir:X//0!4%%)+<=8--.,,Y7r'   c                     [         R                  [         R                  /nU H8  nU R                  UR                  5         U R                  U5        S S S 5        M:     g ! , (       d  f       ML  = fr   )rq   r   zerossubTestr(   r   r"   fnsr   s      r$   test_numpy_allocators*TestConvertNumpyPass.test_numpy_allocators  sK    ww!Bbkk*++B/ +* **s   A  
A/	c                     [         R                  R                  /nU H8  nU R                  UR                  5         U R	                  U5        S S S 5        M:     g ! , (       d  f       ML  = fr   )rq   randomr   r(   r   r   s      r$   test_numpy_random&TestConvertNumpyPass.test_numpy_random  sK    yy Bbkk*''+ +* **s   A
A*	c                    S n[         R                  " S5      =p#X#4nU Vs/ s H  n[        U5      PM     nnU R                  X5      nU R	                  [        UR                  5      S5        UR                  u  nU R	                  US   S5        U R                  UR                  5        U R                  " U/UQ76   g s  snf )Nc                 
    X-   $ r   r-   r   r   s     r$   r   <TestConvertNumpyPass.test_numpy_arrayexpr.<locals>.test_impl  s	    5Lr'   r   r   r   	arrayexpr	rq   r   r   r\   rs   r   r   r|   rm   	r"   r   r   r   r   xargtypesr[   r   s	            r$   test_numpy_arrayexpr)TestConvertNumpyPass.test_numpy_arrayexpr  s    	 v'+,t!F1It,++I@X//0!4%%);78--.)+d+ -   Cc                    S n[         R                  " S5      =p#X#4nU Vs/ s H  n[        U5      PM     nnU R                  X5      nU R	                  [        UR                  5      S5        UR                  u  nU R	                  US   S5        U R                  UR                  5        U R                  " U/UQ76   g s  snf )Nc                     [         R                  " U * 5      [         R                  " S5      [         R                  " U5      -  -   $ Nr   )rq   sinfloat64sqrtr   s     r$   r   BTestConvertNumpyPass.test_numpy_arrayexpr_ufunc.<locals>.test_impl&  s,    661":

1
 :::r'   r   r   r   r   r   r   s	            r$   test_numpy_arrayexpr_ufunc/TestConvertNumpyPass.test_numpy_arrayexpr_ufunc%  s    	; v'+,t!F1It,++I@X//0!4%%);78--.)+d+ -r   c                    S n[         R                  " S5      n[         R                  " S5      nX#4nU Vs/ s H  n[        U5      PM     nnU R                  X5      nU R	                  [        UR                  5      S5        UR                  u  nU R	                  US   S5        U R                  UR                  5        U R                  " U/UQ76   g s  snf )Nc                 8    X-   [         R                  " S5      -   $ r   )rq   arrayr   s     r$   r   FTestConvertNumpyPass.test_numpy_arrayexpr_boardcast.<locals>.test_impl7  s    5288A;&&r'   r   )   r   r   r   r   r   r   s	            r$   test_numpy_arrayexpr_boardcast3TestConvertNumpyPass.test_numpy_arrayexpr_boardcast6  s    	' GGBKGGGv'+,t!F1It,++I@X//0!4%%);78--.)+d+ -   Cc                    S n[         R                  " S5      n[         R                  " S5      nX#4nU Vs/ s H  n[        U5      PM     nnU R                  X5      nU R	                  [        UR                  5      S5        UR                  u  nU R	                  US   S5        U R                  UR                  5        U R                  " U/UQ76   g s  snf )Nc                 B    U R                  SU R                  5      n X-   $ r   )reshapesizer   s     r$   r   ETestConvertNumpyPass.test_numpy_arrayexpr_reshaped.<locals>.test_implI  s    		!QVV$A5Lr'   r   r   r   r   r   r   s	            r$   test_numpy_arrayexpr_reshaped2TestConvertNumpyPass.test_numpy_arrayexpr_reshapedH  s    	 GGBKGGBKv'+,t!F1It,++I@X//0!4%%);78--.)+d+ -r   r-   N)r(   r)   r*   r+   rB   rC   rD   ConvertNumpyPassrW   r   r   r   r   r   r   r   r   r,   r-   r'   r$   r   r      s?    ]]))::N%80,,",",$,r'   r   c                   `    \ rS rSr\R
                  R                  R                  rS r	S r
Srg)TestConvertReducePassi\  c                    S n[         R                  " S5      nU4nU Vs/ s H  n[        U5      PM     nnU R                  X5      nU R	                  [        UR                  5      S5        UR                  u  nU R	                  US   S5        U R                  UR                  5        U R                  " U/UQ76   g s  snf )Nc                     [        S U S5      $ )Nc                     [        X5      $ r   maxr   ys     r$   <lambda>PTestConvertReducePass.test_reduce_max_basic.<locals>.test_impl.<locals>.<lambda>a      s1yr'           r   arrs    r$   r   >TestConvertReducePass.test_reduce_max_basic.<locals>.test_impl`  s    0#s;;r'   r   r   r   r   r   r"   r   r   r   r   r[   r   s          r$   test_reduce_max_basic+TestConvertReducePass.test_reduce_max_basic_  s    	< GGBKt'+,t!F1It,++I@X//0!4%%)848--.)+d+ -   C c                    S n[         R                  " S5      nU4nU Vs/ s H  n[        U5      PM     nnU R                  X5      nU R	                  [        UR                  5      S5        UR                  u  nU R	                  US   S5        U R                  UR                  5        U R                  " U/UQ76   g s  snf )Nc                 (    [        S X S:     S5      $ )Nc                     [        X5      $ r   r   r  s     r$   r  QTestConvertReducePass.test_reduce_max_masked.<locals>.test_impl.<locals>.<lambda>q  r  r'   r   r  r   r  s    r$   r   ?TestConvertReducePass.test_reduce_max_masked.<locals>.test_implp  s    0#Ag,DDr'   r   r   r   r   r   r  s          r$   test_reduce_max_masked,TestConvertReducePass.test_reduce_max_maskedo  s    	E GGBKt'+,t!F1It,++I@X//0!4%%)848--.)+d+ -r  r-   N)r(   r)   r*   r+   rB   rC   rD   ConvertReducePassrW   r  r  r,   r-   r'   r$   r   r   \  s!    ]]));;N, ,r'   r   c                       \ rS rSr\R
                  R                  R                  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)TestConvertLoopPassi  c                    S nU R                  US5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R	                  UR                  5        U R                  U5        g )Nc                  :    Sn Sn[        U 5       H  nX-  nM	     U$ N   r   )r   )r   r   is      r$   r   @TestConvertLoopPass.test_prange_reduce_simple.<locals>.test_impl  s&    AAAY Hr'   r-   r   r   loopr   r   s       r$   test_prange_reduce_simple-TestConvertLoopPass.test_prange_reduce_simple  sz    	 ++Ir:X//0!4%%)628--.)$r'   c                    S nU R                  US5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R	                  UR                  5        U R                  U5        g )Nc                  r    Sn [         R                  " U 5      n[        U 5       H  nX==   U-  ss'   M     U$ Nr  rq   r   r   r   r	  r  s      r$   r   =TestConvertLoopPass.test_prange_map_simple.<locals>.test_impl  s2    A''!*CAY! Jr'   r-   r   r   r  r   r   s       r$   test_prange_map_simple*TestConvertLoopPass.test_prange_map_simple  z    	 ++Ir:X//0!4%%)628--.)$r'   c                    S nU R                  US5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R	                  UR                  5        U R                  U5        g )Nc                  t    Sn [         R                  " U 5      n[        SU 5       H  nX==   U-  ss'   M     U$ )Nr  r   r%  r&  s      r$   r   ;TestConvertLoopPass.test_prange_two_args.<locals>.test_impl  s4    A''!*CAq\! "Jr'   r-   r   r   r  r   r   s       r$   test_prange_two_args(TestConvertLoopPass.test_prange_two_args  r*  r'   c                     S nU R                  [        R                  5       nU R                  US5        S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  v    Sn [         R                  " U 5      n[        SU S5       H  nX==   U-  ss'   M     U$ )Nr  r      r%  r&  s      r$   r   =TestConvertLoopPass.test_prange_three_args.<locals>.test_impl  s6    A''!*CAq!_! %Jr'   r-   z4Only constant step size of 1 is supported for prangeassertRaisesr   UnsupportedRewriteErrorr\   assertInstr	exceptionr"   r   raisess      r$   test_prange_three_args*TestConvertLoopPass.test_prange_three_args  sZ    	 v==>&$$Y3 ?B  !	
 ?>   A$$
A2c                    S nU R                  US5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R	                  UR                  5        U R                  U5        g )Nc                      Sn [         R                  " X 45      n[        U 5       H(  n[        U5       H  nXU4==   X#U -  -   -  ss'   M     M*     U$ r$  )rq   r   r   ranger   r	  r  js       r$   r   ATestConvertLoopPass.test_prange_map_inner_loop.<locals>.test_impl  sO    A''1&/CAYqA1IU*I "  Jr'   r-   r   r   r  r   r   s       r$   test_prange_map_inner_loop.TestConvertLoopPass.test_prange_map_inner_loop  sz    	 ++Ir:X//0!4%%)628--.)$r'   c                     S nU R                  US5      nU R                  [        UR                  5      S5        U R	                  UR                  5        UR                   H  nU R                  US   S5        M     U R                  U5        g )Nc                      Sn [         R                  " X 45      n[        U 5       H(  n[        U5       H  nXU4==   X#U -  -   -  ss'   M     M*     U$ r$  r%  rB  s       r$   r   DTestConvertLoopPass.test_prange_map_nested_prange.<locals>.test_impl  sO    A''1&/CAYA1IU*I #  Jr'   r-   r2  r   r  r   r   s       r$   test_prange_map_nested_prange1TestConvertLoopPass.test_prange_map_nested_prange  s    	 ++Ir:X//0!48--.((FVH-v6 ) 	)$r'   c                    S nU R                  US5      nU R                  [        UR                  5      S5        U R	                  UR                  5        UR                  u  nU R                  US   S5        U R                  U5        g )Nc                      Sn [         R                  " U 5      n[        U 5       H  nXUS-    nUS==   S-  ss'   M     U$ )Nr  r   r-   r%  )r   r	  r  inners       r$   r   ATestConvertLoopPass.test_prange_map_none_index.<locals>.test_impl  sC    A''!*CAYAb	Q	  Jr'   r-   r   r   r  r   r   s       r$   test_prange_map_none_index.TestConvertLoopPass.test_prange_map_none_index  sz    	 ++Ir:X//0!48--.%%)62)$r'   c                     S nU R                  [        R                  5       nU R                  US5        S S S 5        U R	                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                  r    Sn [         R                  " U 5      n[        U 5       H  nUS-  nX!US-
  '   M     U$ )Nr  r   r%  r&  s      r$   r   FTestConvertLoopPass.test_prange_map_overwrite_index.<locals>.test_impl  s=    A''!*CAYQAE
  Jr'   r-   z Overwrite of parallel loop indexr4  r:  s      r$   test_prange_map_overwrite_index3TestConvertLoopPass.test_prange_map_overwrite_index  sZ    	 v==>&$$Y3 ?.  !	
 ?>r>  c                    S nU R                  US5      nU R                  [        UR                  5      S5        U R	                  UR                  5        UR                  u  nU R                  US   S5        U R                  U5        g )Nc                  
   Sn [         R                  " U 5      n[        R                  R                  R                  5         Sn[        R                  R                  R                  [        U5      5       H
  nX!U   -  nM     U$ r  )rq   r   rB   rC   rD   init_prangeinternal_pranger   )r   r	  valr  s       r$   r   7TestConvertLoopPass.test_init_prange.<locals>.test_impl  sc    A''!*CMM  ,,.C]]))99#c(C1v DJr'   r-   r   r   r  r   r   s       r$   test_init_prange$TestConvertLoopPass.test_init_prange  sz    	 ++Ir:X//0!48--.%%)62)$r'   c                    S nU R                  US5      nU R                  [        UR                  5      S5        U R	                  UR                  5        UR                  u  nU R                  US   S5        U R                  U5        g )Nc                      Sn [         R                  " X 45      nSn[        UR                  5       H  nX#S   US   -  -  nM     U$ )Nr  r   r   )rq   r   r   rt   )r   r	  r[  idxs       r$   r   4TestConvertLoopPass.test_pndindex.<locals>.test_impl  sG    A''1&/CC		*1vA& +Jr'   r-   r   r   r  r   r   s       r$   test_pndindex!TestConvertLoopPass.test_pndindex  sz    	 ++Ir:X//0!48--.%%)62)$r'   c                    S nSn[         R                  " [         R                  " U5      5      R                  U5      nU4nU Vs/ s H  n[	        U5      PM     nnU R                  X5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R                  UR                  5        U R                  " U/UQ76   g s  snf )Nc                 .    [         R                  " U 5      $ r   rq   sumr  s    r$   r   5TestConvertLoopPass.test_numpy_sum.<locals>.test_impl*  s    66#;r'         r   r   r  rq   arangeprodr   r   r\   rs   r   r   r|   rm   	r"   r   rt   r	  r   r   r   r[   r   s	            r$   test_numpy_sum"TestConvertLoopPass.test_numpy_sum)  s    	 ii'//6v'+,t!F1It,++I@X//0!4%%)628--.)+d+ -   C%c                    S nSn[         R                  " [         R                  " U5      5      R                  U5      nU4nU Vs/ s H  n[	        U5      PM     nnU R                  X5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R                  UR                  5        U R                  " U/UQ76   g s  snf )Nc                 R    U S S 2S4   n[         R                  " XS:  SS24   5      $ )Nr   r   r   r2  rg  )r	  sliceds     r$   r   GTestConvertLoopPass.test_numpy_sum_bool_array_masked.<locals>.test_impl:  s.    AYF66#k1Q3./00r'   rj  r   r   r  rm  rp  s	            r$    test_numpy_sum_bool_array_masked4TestConvertLoopPass.test_numpy_sum_bool_array_masked9  s    	1 ii'//6v'+,t!F1It,++I@X//0!4%%)628--.)+d+ -rs  c                    S nSn[         R                  " [         R                  " U5      5      R                  U5      nU4nU Vs/ s H  n[	        U5      PM     nnU R                  X5      nU R                  [        UR                  5      S5        UR                   H  nU R                  US   S5        M     U R                  UR                  5        U R                  " U/UQ76   g s  snf )Nc                     [         R                  " U R                  S   5      n[         R                  " U S S 2U4   5      $ r   )rq   rn  rt   rh  )r	  sels     r$   r   FTestConvertLoopPass.test_numpy_sum_int_array_masked.<locals>.test_implK  s/    ))CIIaL)C66#af+&&r'   rj  r2  r   r  rm  rp  s	            r$   test_numpy_sum_int_array_masked3TestConvertLoopPass.test_numpy_sum_int_array_maskedJ  s    	' ii'//6v'+,t!F1It,++I@X//0!4((FVH-v6 )8--.)+d+ -s   C*c                    S nSn[         R                  " [         R                  " U5      5      R                  U5      nU4nU Vs/ s H  n[	        U5      PM     nnU R                  X5      nU R                  [        UR                  5      S5        UR                  u  nU R                  US   S5        U R                  UR                  5        U R                  " U/UQ76   g s  snf )Nc                 (    U R                  S5        U $ )Nr   )fillr  s    r$   r   =TestConvertLoopPass.test_numpy_fill_method.<locals>.test_impl]  s    HHQKJr'   rj  r   r   r  rm  rp  s	            r$   test_numpy_fill_method*TestConvertLoopPass.test_numpy_fill_method\  s    	 ii'//6v'+,t!F1It,++I@X//0!4%%)628--.)+d+ -rs  r-   N)r(   r)   r*   r+   rB   rC   rD   ConvertLoopPassrW   r   r(  r.  r<  rE  rJ  rP  rU  r]  rc  rq  rx  r~  r  r,   r-   r'   r$   r  r    s]    ]]))99N% % % 
%"%"%"
 %$%$, ,",$,r'   r  c                   :    \ rS rSr " S S5      rS rS rS rSrg)	TestPreParforPassio  c                        \ rS rSrS rS rSrg) TestPreParforPass.sub_pass_classip  c                     g r   r-   )r"   pass_statess     r$   r%   )TestPreParforPass.sub_pass_class.__init__q      r'   c                     g r   r-   )r"   rX   s     r$   r;   $TestPreParforPass.sub_pass_class.runt  r  r'   r-   N)r(   r)   r*   r+   r%   r;   r,   r-   r'   r$   rW   r  p  s    		r'   rW   c                 @   S n[         R                  " S5      nU4nU Vs/ s H  n[        U5      PM     nnU R                  X5      nU R	                  UR
                  S   S5        U R	                  UR
                  S   S5        U R                  " U/UQ76   g s  snf )Nc                 D    [         R                  " SU R                  S9nU$ )Nr  r   )rq   r   r   r   s     r$   r   :TestPreParforPass.test_dtype_conversion.<locals>.test_imply  s    !''*AHr'   r   replaced_funcr   replaced_dtyper   rq   rn  r   r_   rs   statsrm   r"   r   r	  r   r   r   pre_passs          r$   test_dtype_conversion'TestPreParforPass.test_dtype_conversionw  s    	 iimv'+,t!F1It,++I@8!<(891=)+d+ -   Bc                 @   S n[         R                  " S5      nU4nU Vs/ s H  n[        U5      PM     nnU R                  X5      nU R	                  UR
                  S   S5        U R	                  UR
                  S   S5        U R                  " U/UQ76   g s  snf )Nc                 .    [         R                  " U 5      $ r   rg  r   s    r$   r   9TestPreParforPass.test_sum_replacement.<locals>.test_impl      66!9r'   r   r  r   r  r   r  r  s          r$   test_sum_replacement&TestPreParforPass.test_sum_replacement  s    	 iimv'+,t!F1It,++I@8!<(891=)+d+ -r  c                    S n[         R                  " S5      nU4nU Vs/ s H  n[        U5      PM     nn[        R                  R
                  R                  R                  5       nUR                  S5        U R                  XU5      nU R                  UR                  S   S5        U R                  UR                  S   S5        U R                  " U/UQ76   g s  snf )Nc                 .    [         R                  " U 5      $ r   rg  r  s    r$   r   9TestPreParforPass.test_replacement_map.<locals>.test_impl  r  r'   r   )rh  numpyr  r   r  )rq   rn  r   rB   rC   rD   swap_functions_mapcopypopr_   rs   r  rm   )r"   r   r	  r   r   r   rJ   r  s           r$   test_replacement_map&TestPreParforPass.test_replacement_map  s    	 iimv'+,t!F1It,==''::??A%&++IJ8!<(891=)+d+ -s   Cr-   N)	r(   r)   r*   r+   rW   r  r  r  r,   r-   r'   r$   r  r  o  s     ,,,r'   r  __main__)#__doc__unittest	functoolsr   r  rq   rB   r   r   r   r   numba.parfors.parfor
numba.corer	   r
   r   r   r   r   r   numba.core.registryr   numba.tests.supportr   r   objectr   r/   r   r   r   r  r  r(   mainr-   r'   r$   <module>r     s   
    0 0    + B
! 
!mKx mK`O%X O%dp,8 p,f!,H !,Hl,( l,^1, 1,h zMMO r'   