
    _-Ph                     J    d Z ddlZddlmZ ddlmZmZ  G d de          ZdS )zTest stencil construction.    N)stencil_grid)TestCaseassert_equalc                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestStencilc                    t          j        g d          }t          |d                                          }t          j        g dg dg dg          }t	          ||           t          j        g d          }t          |d                                          }t          j        g dg dg dg d	g d
g          }t	          ||           d S )N         )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   nparrayr   toarrayr   selfstencilresultexpecteds       `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyamg/gallery/tests/test_stencil.pytest_1dzTestStencil.test_1d	   s    (999%%gt,,44668YYY&YY&YY( ) ) 	VX&&&(???++gt,,44668___,__,__,__,__	. / /
 	VX&&&&&    c           	          t          j        g dg dg dg          }t          |d                                          }t          j        g dg dg dg dg d	g d
g          }t	          ||           d S )Nr	   )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       r   test_2dzTestStencil.test_2d   s    (III$99$99& ' ' gv..66888//////////////////1 2 2 	VX&&&&&r   c           
         t          j        g d          }g }|                    dt          j        dgg          f           |                    dt          j        ddgddgg          f           |                    dt          j        g dg dg d	g d
g          f           |D ]7\  }}t          ||                                          }t          ||           8d S )N)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   appendr   r   r   r   r   casesgridr   r   s         r   test_poisson1dzTestStencil.test_poisson1d)   s   (;;;''dBHqcUOO,---dBHq"g')1g&/ 0 0 1 	2 	2 	2dBHmmm&4nn&4nn&3mm&5 6 6 7 	8 	8 	8
 $ 	+ 	+ND(!'40088::F****	+ 	+r   c           
         t          j        g dg dg dg          }g }|                    dt          j        dgg          f           |                    dt          j        ddgddgg          f           |                    dt          j        ddgddgg          f           |                    dt          j        g d	g dg d
g          f           |                    dt          j        g dg dg dg dg          f           |D ]7\  }}t          ||                                          }t          ||           8d S )N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         r   test_poisson2d_5ptzTestStencil.test_poisson2d_5pt9   s   (JJJ&;;%::' ( ( fbhuoo.///fbhB)+Q(1 2 2 3 	4 	4 	4fbhB)+Q(1 2 2 3 	4 	4 	4fbh


(3(2

(4 5 5 6 	7 	7 	7 	fbh(6(6(6(8 9 9 : 	; 	; 	;
 $ 	+ 	+ND(!'40088::F****	+ 	+r   c           
         t          j        g dg dg dg          }g }|                    dt          j        dgg          f           |                    dt          j        ddgddgg          f           |                    dt          j        ddgddgg          f           |                    dt          j        g d	g dg d
g          f           |                    dt          j        g dg dg dg dg          f           |D ]7\  }}t          ||                                          }t          ||           8d S )N)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         r   test_poisson2d_9ptzTestStencil.test_poisson2d_9ptP   s   (LLL'KK(LL* + + fbhuoo.///fbhB)+Q(1 2 2 3 	4 	4 	4fbhB)+Q(1 2 2 3 	4 	4 	4fbh


(3(2

(4 5 5 6 	7 	7 	7 	fbh(7(7(7(9 : : ; 	< 	< 	<
 $ 	+ 	+ND(!'40088::F****	+ 	+r   c                    t          j        g dg dg dgg dg dg dgg dg dg dgg          }g }|                    dt          j        dgg          f           |                    dt          j        ddgddgg          f           |                    dt          j        g d	g d
g dg dg          f           |                    dt          j        g dg dg dg dg dg dg dg dg          f           |D ]7\  }}t          ||                                          }t          ||           8d S )N)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   )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"   r   r   r"   )r   r   r   r"   r   r"   r"   r   r#   r%   s         r   test_poisson3d_7ptzTestStencil.test_poisson3d_7ptg   s   (YYY'ZZ&YY( (ZZ([['ZZ) 'YY'ZZ&YY() * * iA3%1222iAr7,.7+4 "5 "5 6 	7 	7 	7i>>>+9>>+9>>+9>>+; "< "< = 	> 	> 	> 	i+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+H "I "I J 	K 	K 	K $ 	+ 	+ND(!'40088::F****	+ 	+r   N)	__name__
__module____qualname__r   r    r(   r0   r2   r4    r   r   r   r      sn        ' ' '$' ' '+ + + + + +.+ + +.+ + + + +r   r   )	__doc__numpyr   pyamg.gallery.stencilr   numpy.testingr   r   r   r8   r   r   <module>r=      s            . . . . . . 0 0 0 0 0 0 0 0}+ }+ }+ }+ }+( }+ }+ }+ }+ }+r   