
     i                          d dl Zd dlmZmZmZ d dlZd dlmZ d Z	 ej
        d          d             Z G d d	e          Zd
 Zd ZdS )    N)assert_array_equalassert_array_almost_equalassert_almost_equalGridc                 $    | | z   d| z  | dz   z  z
  S )Ng      @g333333@ )gs    b/srv/www/vhosts/g4struct/public_html/venv/lib/python3.11/site-packages/gridData/tests/test_grid.pyf_arithmeticr   	   s    q537a#g&&&    class)scopec                     t          t          j        dd                              ddd          t          j        d          t          j        d                    } t          | d         | d         | d                   | d	<   | S )
N         )griddataorigindeltar   r   r   r   r   grid)dictnparangereshapezerosonesr   )ds    r   datar       s    1b!!))!Q22x{{gajj	 	 	A Qz]1X;W:' ' 'AfIHr   c                      e Zd Zej        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ej                            dd          d             Zej        j         ej                            dd          d                         Z!ej                            dd          d             Z"ej                            dd           d!             Z#d"S )#TestGridc                     |d         }|                     d                              d          }|                    |           |S )Nr   zgrid.dat)mkdirjoinsave)selfr    tmpdirr
   fns        r   pklfilezTestGrid.pklfile   s>    L\\&!!&&z22	r


	r   c                 x    t          |d         |d         d          }t          |j        |d                    d S )Nr   r   r   r   r   )r   r   r   r'   r    r
   s      r   	test_initzTestGrid.test_init   sB    j!$x.  17DM22222r   c                     t          j        t                    5  t          |d         t	          j        d          |d                    d d d            d S # 1 swxY w Y   d S )Nr      r   r   pytestraises	TypeErrorr   r   r   r'   r    s     r   test_init_wrong_originzTestGrid.test_init_wrong_origin#   s    ]9%% 	K 	Kj!"'!**DMJJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K   1AAAc                     t          j        t                    5  t          |d         |d         t	          j        d                     d d d            d S # 1 swxY w Y   d S )Nr   r   r/   r   r0   r4   s     r   test_init_wrong_deltazTestGrid.test_init_wrong_delta'   s    ]9%% 	L 	Lj!$x.

KKKK	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	Lr6   c                 P    t                      }t          |t                     sJ d S )N)r   
isinstance)r'   r
   s     r   test_empty_GridzTestGrid.test_empty_Grid+   s'    FF!T"""""""r   c                     t          j        t                    5  t          |d         |d                    d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r1   r2   
ValueErrorr   r4   s     r   "test_init_missing_delta_ValueErrorz+TestGrid.test_init_missing_delta_ValueError/   s    ]:&& 	: 	:j!$x.9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:   AA	A	c                     t          j        t                    5  t          |d         |d                    d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r=   r4   s     r   #test_init_missing_origin_ValueErrorz,TestGrid.test_init_missing_origin_ValueError3   s    ]:&& 	8 	8j!g7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8r@   c                     t          j        t                    5  t          d           d d d            d S # 1 swxY w Y   d S )N__does_not_exist__)r1   r2   IOErrorr   r'   s    r   test_init_wrong_data_exceptionz'TestGrid.test_init_wrong_data_exception7   s    ]7## 	' 	'%&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   7;;c                     t          j        t                    5  t          dd           d d d            d S # 1 swxY w Y   d S )NTxxx)r   file_formatr=   rF   s    r   %test_load_wrong_fileformat_ValueErrorz.TestGrid.test_load_wrong_fileformat_ValueError;   s    ]:&& 	/ 	/d....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   9= =c                     |d         |d         k    sJ |d         dk    sJ t          |d         |d         dz   |d                   }|d         |k    sJ d S )Nr   foor   r   r   r   r   r   r,   s      r   test_equalityzTestGrid.test_equality?   sq    F|tF|++++F|u$$$$j!$x.1*<DMRRRF|q      r   c                 J   |d         |d         z   }t          |j        j        d|d         z  j                   d|d         z   }t          |j        j        d|d         z   j                   ||d         z   }t          |j        j        dd|d         z  z   j                   d S Nr      r   r   r   flatr,   s      r   test_additionzTestGrid.test_additionE   s    L4<'16;T*-=)=(CDDDV16;T*-=)=(CDDDV16;a$z2B.B)C(IJJJJJr   c                     |d         |d         z
  }t          |j        j        t          j        d                     d|d         z
  }t          |j        j        d|d         z
  j                   d S Nr      rQ   r   )r   r   rS   r   r   r,   s      r   test_subtractionzTestGrid.test_subtractionM   se    L4<'16;555V16;T*-=)=(CDDDDDr   c                     |d         |d         z  }t          |j        j        |d         dz  j                   d|d         z  }t          |j        j        d|d         z  j                   d S )Nr   r   rQ   rR   r,   s      r   test_multiplicationzTestGrid.test_multiplicationS   sj    L4<'16;j)9Q)>(DEEEV16;T*-=)=(CDDDDDr   c                     |d         |d         z  }t          |j        j        t          j        d                     d|d         z  }t          |j        j        d|d         z  j                   d S rV   )r   r   rS   r   r   r,   s      r   test_divisionzTestGrid.test_divisionY   se    L4<'16;444V16;T*-=)=(CDDDDDr   c                    |d                              |d                   }t          |j        j        t	          j        dt          j                             d|d         z  }t          |j        j        d|d         z  j                   d S )Nr   rW   )dtyperQ   r   )__floordiv__r   r   rS   r   r   int64r,   s      r   test_floordivisionzTestGrid.test_floordivision_   sw    L%%d6l3316;"((C(C(CDDDf16;d:.>)>(DEEEEEr   c                     |d         dz  }t          |j        j        |d         dz  j                   d|d         z  }t          |j        j        d|d         z  j                   d S rP   rR   r,   s      r   
test_powerzTestGrid.test_powere   sf    LA16;j)9Q)>(DEEEf16;d:.>)>(DEEEEEr   c                 L   |d                              |d                   sJ |d                              d          sJ t          |d         |d         |d                   }|d                              |          sJ |d                              |j                  sJ d S )Nr   r   r   r   r   r   )check_compatibler   r   r,   s      r   test_compatibility_typez TestGrid.test_compatibility_typek   s    F|,,T&\:::::F|,,Q/////j!$x.WNNNF|,,Q/////F|,,QV4444444r   c                    t          |d         |d         dz   |d                   }t          j        t                    5  |d                             |           d d d            n# 1 swxY w Y   t          j        |d         j        d         dz             }t          j        t                    5  |d                             |           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r   )r   r1   r2   r3   re   r   r   shape)r'   r    r
   arrs       r   test_wrong_compatibile_typez$TestGrid.test_wrong_compatibile_typer   sT   j!$x.1*<DMRRR]9%% 	- 	-L))!,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- htJ'-b1A566]9%% 	/ 	/L))#...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s$   A))A-0A-5CC"%C"c                     t          j        d          }t          j        t                    5  t          |d         |d         |           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   )r   eyer1   r2   NotImplementedErrorr   )r'   r    r   s      r   test_non_orthonormal_boxesz#TestGrid.test_non_orthonormal_boxes{   s    q		].// 	G 	Gj!$x.FFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gs   AA!Ac                    t          |d         t          j        d          |d                   }t          j        t	          |                                                    }t          |d         |j                   t          |d         |j        z
  t          j        |j        j	                  dz
  |d         z             d S )Nr   r   r   r   r   rh   r   )
r   r   r   arraylistcentersr   r   r   ri   )r'   r    r
   rs   s       r   test_centerszTestGrid.test_centers   s     j!"'!**DMJJJ(4		,,--71:qx00072;1HQV\22Q6$w-G	I 	I 	I 	I 	Ir   c                     t          j        d           t          j        t                    5  |d                             d          }d d d            d S # 1 swxY w Y   d S )Nscipyr   r   )r1   importorskipr2   r>   resample_factorr,   s      r   test_resample_factor_failurez%TestGrid.test_resample_factor_failure   s    G$$$]:&& 	0 	0V,,Q//A	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   AAAc                 z   t          j        d           |d                             d          }t          |j        t          j        d          dz             t          |j        j        t          j        d          dz             t          |j        d d dd d dd d df         |d         j                   d S )Nrv   r   rQ   r   g      ?   )
r1   rw   rx   r   r   r   r   r   ri   r   r,   s      r   test_resample_factorzTestGrid.test_resample_factor   s    G$$$L((++17BGAJJO444 	16<a888 	"!&1ccc33Q3"7"&v,"3	5 	5 	5 	5 	5r   c                     |d         }t          |                    d                              d                    }|                    |           t	                      }|                    |           ||k    sJ d S )Nr   zgrid.pkl)strr$   r%   r&   r   loadr'   r    r(   r
   r)   hs         r   test_load_picklezTestGrid.test_load_pickle   sj    Lf%%**:6677	r


FF	r


Avvvvvvr   c                     |d         }|                     d                              d          }|                    |           t          |          }||k    sJ d S )Nr   zgrid.pickle)r$   r%   r&   r   r   s         r   test_init_pickle_pathobjectsz%TestGrid.test_init_pickle_pathobjects   sU    L\\&!!&&}55	r


HHAvvvvvvr   
fileformat)pklPKLpicklepythonc                 D    t          |d          }||d         k    sJ d S )Nr   rJ   r   r   )r'   r    r*   r   r   s        r   test_load_fileformatzTestGrid.test_load_fileformat   s/    e,,,DL      r   )ccp4pltdxc                     t          j        d          5  t          ||           d d d            d S # 1 swxY w Y   d S )Nr>   r   )r1   r2   r   )r'   r    r*   r   s       r   test_load_wrong_fileformatz#TestGrid.test_load_wrong_fileformat   s     ]<(( 	2 	2j1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   488)r   r   c                     |d         }|                     d                              d                    |                    }|                    |           t	          |          }||k    sJ d S Nr   grid_exportzgrid.{})r$   r%   formatexportr   )r'   r    r   r(   r
   r)   r   s          r   test_exportzTestGrid.test_export   sc    L\\-((--i.>.>z.J.JKK	HHAvvvvvvr   )r   r   c                    |d         }|                     d                              d                    |                    }t          j        t
                    5  |                    |           d d d            d S # 1 swxY w Y   d S r   )r$   r%   r   r1   r2   r>   r   )r'   r    r   r(   r
   r)   s         r   test_export_not_supportedz"TestGrid.test_export_not_supported   s    L\\-((--i.>.>z.J.JKK]:&& 	 	HHRLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B  BBN)$__name__
__module____qualname__r1   fixturer*   r-   r5   r8   r;   r?   rB   rG   rK   rN   rT   rX   rZ   r\   ra   rc   rf   rk   ro   rt   ry   r|   r   r   markparametrizer   xfailr   r   r   r	   r   r   r"   r"      sr       ^  ^3 3 3
K K KL L L# # #: : :8 8 8' ' '/ / /! ! !K K KE E EE E EE E EF F FF F F5 5 5/ / /G G G
I I I0 0 05 5 5     [\+MNN! ! ON! [[\+@AA2 2 BA 2 [\=99  :9 [\?;;  <;  r   r"   c                     G d dt                     } || d         | d         | d                   }t          |          }t          ||          sJ t          | d                   }t          |j        |j                   d S )Nc                       e Zd ZdS )%test_inheritance.<locals>.DerivedGridN)r   r   r   r	   r   r   DerivedGridr      s        r   r   r   r   r   r   r   )r   r   r:   r   r   )r    r   dgresultrefs        r   test_inheritancer      s        d    
T*%d8n=
* 
* 
*B"Ffk*****
tF|
$
$CSX.....r   c                 @   t           j                            | d                   }t          || d         | d                   }t	          |j        |j                  sJ t          |          }t          | d                   }t          |j        |j                   d S )Nr   r   r   r   r   )	r   maMaskedArrayr   r:   r   	__class__r   r   )r    r   mgr   r   s        r   test_anyarrayr      s    			4
+	,	,B	bhtG}	=	=	=Bbgr|,,,,,"F
tF|
$
$CSX.....r   )numpyr   numpy.testingr   r   r   r1   gridDatar   r   r   r    objectr"   r   r   r	   r   r   <module>r      s       0 0 0 0 0 0 0 0 0 0       ' ' ' g  w w w w wv w w wt/ / /	/ 	/ 	/ 	/ 	/r   