
    hK                        d dl Z d dlZd dlZd dlmZmZ d dlmZm	Z	 d dl
mZmZ d dlmZ d dlmZ d dlZd dlmZmZ  e e	g d       e	g d	      g      Z e e	g d
       e	g d	      g      Z e e	g d
       e	g d	      g      Z e e	g d
       e	g d	      g      Z ee      Z eddged      Z eddged      Zej9                         Zdej:                  _        ej9                         Zdej:                  _         e e	g d       e	g d	      g      Z  eddgej9                         ej9                         ej9                         dd      Z! eddgej9                         ej9                         ej9                         dd      Z"ejF                  jI                  d      d        Z%d Z&d Z'd Z(ejF                  jS                  e d      d        Z*d Z+d Z,d Z-y)     N)	DataFrameSeries)PointPolygon)GeoDataFrame	GeoSeries)
HAS_PYPROJ)from_shapely)assert_geodataframe_equalassert_geoseries_equal)r   r      r   r   r   r   r   )r   )   r   )r   r   )r   r   )r   r   r   r      r   col1geometryi  i4l  ))r      r   r   r   )r   r   geom2geom3  crs)r   r   r   r   zignore::UserWarningc                     t        t        t               t        t        t        dd       t        t        t        dd       t        t        t        d       t        j                  t              5 } t        t        t        d       d d d        dt         j                        v sJ dt        | j                        v sJ t        j                  t              5 } t        t        t        d       d d d        dt        | j                        v sJ d	t        | j                        v sJ y # 1 sw Y   xY w# 1 sw Y   HxY w)
NF)check_series_typecheck_dtype)r   Tcheck_less_precisez*1 out of 2 geometries are not almost equalznot almost equal: [0]z#1 out of 2 geometries are not equalznot equal: [0])r   s1s2s3s4pytestraisesAssertionErrorstrvalues6)errors    O/var/www/html/immo/lib/python3.12/site-packages/geopandas/tests/test_testing.pytest_geoseriesr.   G   s    2r"2rUN2rUN2rU;	~	& @%r2$?@73u{{;KKKK"c%++&6666	~	& A%r2%@A0C4DDDDs5;;////@ @
A As   2D.D:.D7:Ec                  P   t        t        t               t        j                  t
              5  t        t        t        d       d d d        t        j                  t
              5  t        t        t        ddg          d d d        t        t        t        ddg   d       t        j                         } d| j                  d<   t        j                  t
              5  t        t        |        d d d        t        t        t        d       t        rat        j                  j                  dd	      t        d
<   t        j                  t
              5  t        t        t        d       d d d        y y # 1 sw Y   3xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NTr    r   r   )
check_like
   )r   r   r   )allow_overrider   )r   df1df2r&   r'   r(   copylocdf5df4r	   r   set_crs)df3s    r-   test_geodataframer;   Y   s>   c3'	~	& E!#stDE 
~	& B!#sJ+?'@AB c3
F';#<N
((*CCGGI	~	& ,!#s+, c348yy((d(CG]]>* 	A%c34@	A 	A E EB B, ,	A 	As/   E6&FFF6F FFF%c                      t        t        dd      t        j                  g      } t	        | | j                                t	        | | j                         d       y )Nr   Tr    )r   r   npnanr   r5   )ss    r-   test_equal_nansr@   p   s=    5A;'(A1affh'1affh4@    c                  t    t        ddgt        dd       } t        ddgt        di       }t        | |       y )Nr   r   r   r   )r   r"   r   )r3   r4   s     r-   test_no_crsrC   v   s6    
AB7T
BC
AB7R
@Cc3'rA   zpyproj not available)reasonc                  ~   t        ddgt        j                         dd      } t        ddgt        dd      }t        j                  t
              5  t        | |       d d d        t        j                  d      5 }t        | |d	
       d d d        t              dk(  sJ y # 1 sw Y   GxY w# 1 sw Y   &xY w)Nr   r   r   z	EPSG:4326r   z
EPSG:31370T)recordF)	check_crsr   )
r   r"   r5   r&   r'   r(   r   warningscatch_warningslen)r3   r4   rF   s      r-   test_ignore_crs_mismatchrK   |   s    
ABGGI>K
PC
AB7\
JC	~	& ,!#s+,
 
	 	 	- =!#se<= v;!, ,
= =s   B'?B3'B03B<c                      t        t        dd      g      } t        t        dd      g      }t        | |d       t        j                  t
              5  t        | |       d d d        y # 1 sw Y   y xY w)Nr   gHz>Tr    )r   r   r   r&   r'   r(   )s_origins_almost_origins     r-   test_almost_equal_but_not_equalrO      s_    %1+'Hy!!4 56O8_N	~	& :x9: : :s   A**A3c                  
   d }  |        }d |_          |        }d |_         t        ||        |        ddg   } |        ddg   }t        ||       t         |        dg         }t         |        dg         }t        ||       y )Nc                      t        ddgt        dd      t        dd      gd      } t        t        dd      t        dd      g      | d<   | S )Nr   r   )r*   r   r   r   r   )r   r   r   gdfs    r-   create_dataframezEtest_geodataframe_no_active_geometry_column.<locals>.create_dataframe   sK    aV%1+uQPQ{9STU %1+uQ{!;<G
rA   r*   r   )_geometry_column_namer   r   rT   r3   r4   s      r-   +test_geodataframe_no_active_geometry_columnrW      s     
C $C

C $Cc3' 
gw/
0C

gw/
0Cc3'
')7)4
5C
')7)4
5Cc3'rA   c                      d }  |        } |        }t        ||        |        }d |_         |        }d |_        t        ||       y )Nc                      t        t        dd      t        dd      gt        dd      t        dd      gg      } t        | j                  d            } t        j
                  j                  dgddgg      | _        | S )Nr   r   r   r   r   )r   r   r   astypepd
MultiIndexfrom_productcolumnsrR   s    r-   rT   z6test_geodataframe_multiindex.<locals>.create_dataframe   sl    %1+uQ{3eAqk5A;5OPQ3::j12mm00:,A1GH
rA   )r   rU   rV   s      r-   test_geodataframe_multiindexr_      sM     
C

Cc3'

C $C

C $Cc3'rA   ).rH   numpyr=   pandasr[   r   r   shapely.geometryr   r   	geopandasr   r   geopandas._compatr	   geopandas.arrayr
   r&   geopandas.testingr   r   r"   r#   r$   ar%   r3   r4   r5   arrayr   s5r+   r8   r7   markfilterwarningsr.   r;   r@   rC   skipifrK   rO   rW   r_    rA   r-   <module>rn      s      $ + - ( (  O0101 0101 0101 0101 AYQF34QF34WWYWWY0101 VRWWYS VRWWYS 120 30"A.A( 
N+AB C:(.(rA   