
    _-PhB
                     N    d Z ddlZddlmZ ddlmZmZmZ  G d de          Z	dS )zTest diffusion example.    N)diffusion_stencil_2d)TestCaseassert_equalassert_almost_equalc                   &    e Zd Zd Zd Zd Zd ZdS )TestDiffusionStencil2Dc                 "   g dg dg dg}t          t          ddd          |           g dg dg dg}t          t          ddd          |           g d	g d
g d	g}t          t          dt          j        dz  d          |           d S )N)              r
   )r   g      @r         ?r
   FDepsilonthetatype)            @r   g      ?)r
   r   r
   )r   r   r      )r   r   r   nppiselfstencils     b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyamg/gallery/tests/test_diffusion.pytest_simple_finite_differencez4TestDiffusionStencil2D.test_simple_finite_difference	   s   ###$$$###% 	)#S/35 5 56=	? 	? 	? $##$$$###% 	0C6:< < <=D	F 	F 	F $##$$$###% 	0BE!G6:< < <=D	F 	F 	F 	F 	F    c                     t          j        g dg dg dg          dz  }t          t          ddd          |           d S )N)r   r   r   )r   g       @r   r   r   r
   FEr   )r   arrayr   r   r   s     r   test_simple_finite_elementz1TestDiffusionStencil2D.test_simple_finite_element   sz    (...---...0 1 1367 	0C6:< < <=D	F 	F 	F 	F 	Fr   c                 .   dD ]}t           j        dz  t           j        dz  t           j        dz  t           j        dz  t           j        dz  t           j        fD ];}dD ]6}t          |||          }t          |                                d	           7<d
S )z&Test that stencil entries sum to zero.r   r               r   )gMbP?g{Gz?r   r   r
   N)r   r   r   r   sum)r   r   r   r   r   s        r   test_zero_sumz$TestDiffusionStencil2D.test_zero_sum/   s      	< 	<D%'257BE!GRU1WbeAgruM < <1 < <G279>TK K KG's;;;;<<	< 	<r   c                    dD ]~}t          dd|          }t          j        dz  t          j        dz  t          j        dz  t          j        dz  t          j        fD ]$}t          d||          }t          ||           %d	S )
z*Test invariance to theta when epsilon=1.0.r"   r   r
   r   r#   r%   r&   r   N)r   r   r   r   )r   r   expectedr   results        r   test_rotation_invariancez/TestDiffusionStencil2D.test_rotation_invariance8   s      	6 	6D+CsNNNH%'257BE!GRU1WbeD 6 6-c49F F F#FH55556	6 	6r   N)__name__
__module____qualname__r   r    r(   r,    r   r   r   r      sV        F F F,F F F < < <6 6 6 6 6r   r   )
__doc__numpyr   pyamg.gallery.diffusionr   numpy.testingr   r   r   r   r0   r   r   <module>r5      s{          8 8 8 8 8 8 E E E E E E E E E E76 76 76 76 76X 76 76 76 76 76r   