o
    8ήcP                     @   s\   d dl Z d dlmZmZ d dlmZ d dlmZ eG dd deZedkr,e 	  dS dS )    N)captured_stdoutskip_parfors_unsupportedset_parallel_chunksize)TestCasec                   @   s8   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdS )ChunksizeExamplesTestFc                 C      t d d S Nr   r   self r   W/tmp/pip-target-vg8gfxp4/lib/python/numba/tests/doc_examples/test_parallel_chunksize.pysetUp      zChunksizeExamplesTest.setUpc                 C   r   r	   r   r
   r   r   r   tearDown   r   zChunksizeExamplesTest.tearDownc                    sr   t  , ddlm}m dd l |dd fdd}| }| ||  W d    d S 1 s2w   Y  d S )Nr   )njitprangeTparallelc                     s`   d}   | }| D ]"}|d }t|D ]}|d dkr"|d }q|d d }q|||< q|S )Nd         r      )emptyrange)nvalsicurjnpr   r   r   func1   s   


z<ChunksizeExamplesTest.test_unbalanced_example.<locals>.func1)r   numbar   r   numpyassertPreciseEqualpy_func)r   r   r"   resultr   r    r   test_unbalanced_example   s   "z-ChunksizeExamplesTest.test_unbalanced_examplec                    s   t  ] ddlm}mmm  |dd fdd}|dd fdd}d	}|d
}|d
}|d
}| | ||d
 | ||d
 | ||d
 W d    d S 1 scw   Y  d S )Nr   )r   r   r   get_parallel_chunksizeTr   c                    s<   d}t    | D ]}t    ||7 }qt    |S r	   )printr   accr   )r)   r   r   r   r"   :   s   



z:ChunksizeExamplesTest.test_chunksize_manual.<locals>.func1c                    s4   d}  }d | D ]}||7 }q| |S Nr      r   )r   r,   old_chunksizer   r)   r   r   r   r   func2D   s   
z:ChunksizeExamplesTest.test_chunksize_manual.<locals>.func2      )r   r#   r   r   r   r)   r%   r&   )r   r   r"   r1   r/   result1result2result3r   r0   r   test_chunksize_manual1   s   	"z+ChunksizeExamplesTest.test_chunksize_manualc              	      s   t  e ddlm}mm  |ddfdd}|dd fdd} d	 |d
}|d
}|d
}W d    n1 s@w   Y  | ||d
 | ||d
 | ||d
 W d    d S 1 skw   Y  d S )Nr   )r   r   parallel_chunksizeTr   c                    s   d} | D ]}||7 }q|S r	   r   r+   )r   r   r   r"   `   s   
z8ChunksizeExamplesTest.test_chunksize_with.<locals>.func1c                    sH   d} d | D ]}||7 }qW d    |S 1 sw   Y  |S r-   r   r+   r8   r   r   r   r1   g   s   


z8ChunksizeExamplesTest.test_chunksize_with.<locals>.func2r2   r3   )r   r#   r   r   r8   r%   r&   )r   r   r"   r1   r4   r5   r6   r   r9   r   test_chunksize_with[   s   

"z)ChunksizeExamplesTest.test_chunksize_withN)	__name__
__module____qualname___numba_parallel_test_r   r   r(   r7   r:   r   r   r   r   r   
   s    *r   __main__)
unittestnumba.tests.supportr   r   r#   r   r   r   r;   mainr   r   r   r   <module>   s   n