
    ;dj                     d    d dl Zd dlmc mZ d dlZd dlZd dlm	Z	 d Z
d Zd Zd Zd Zd Zd	 Zy)
    N)tilemathc                  ^   t         j                  } d} | |      }t        j                  }d}t         j                  }||z  }d}||z  } ||      }	||	k(  }
|
st        j                  d|
fd||	f      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      t        j                  |      t        j                  |	      dz  }d	d
|iz  }t        t        j                  |            d x} x}x}x}
x}x}x}x}x}x}}	y )Nr         ==)z%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.resolution
}(%(py4)s)
} == %(py21)s
{%(py21)s = %(py10)s
{%(py10)s = %(py8)s.approx
}(((%(py12)s * %(py15)s
{%(py15)s = %(py13)s.ORIGIN
}) / %(py18)s))
}r   pytest)py0py2py4py6py8py10py12py13py15py18py21zassert %(py23)spy23)r   
resolutionr	   approxORIGIN
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)@py_assert1@py_assert3@py_assert5@py_assert9@py_assert11@py_assert14@py_assert16@py_assert17@py_assert19@py_assert20@py_assert7@py_format22@py_format24s                2/home/claude/oh9ab/pipeline/tests/test_tilemath.pytest_resolution_z0r/      s    MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM    c                  6   t        j                  ddd      \  } }| |f}d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd	|iz  }t        t        j                  |            d x}x}}y )
Ng ~:8@gHN@
   )iF  i(  r   )z%(py1)s == %(py4)s)py1r   assert %(py6)sr   )r   lonlat_to_tiler   r   r   r   r    )xy@py_assert0r"   @py_assert2@py_format5@py_format7s          r.   test_helsinki_tile_z10r<      sL    
 ""7GR8DAqr0   c                     t        j                  ddd      \  } }}}t         j                  }| |||f}t        j                  }| | ||f} ||      }||k(  }	|	st        j                  d|	fd||f      t        j                  |      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      t        j                  |      dz  }
dd|
iz  }t        t        j                  |            d x}x}	x}x}}y )Nr   r   zL%(py1)s == %(py9)s
{%(py9)s = %(py5)s
{%(py5)s = %(py3)s.approx
}(%(py7)s)
}r	   r3   py3py5py7py9assert %(py11)spy11)r   tile_bounds_3857r   r	   r   r   r   r   r   r   r   r   r    )minxminymaxxmaxyor8   @py_assert4@py_assert6@py_assert8r9   @py_format10@py_format12s               r.   test_tile_bounds_worldrQ      s    %66q!Q?D$dADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDr0   c            	      .   d\  } }dD ]  }t        j                  | ||      \  }}t        j                  |||      \  }}}}t        j                  | |      \  }	}
||	k  }|	|k  }|r|s	t	        j
                  d||fd||	|f      dt        j                         v st	        j                  |      rt	        j                  |      nddt        j                         v st	        j                  |	      rt	        j                  |	      nddt        j                         v st	        j                  |      rt	        j                  |      nddz  }d	d
|iz  }t        t	        j                  |            d x}}||
k  }|
|k  }|r|s	t	        j
                  d||fd||
|f      dt        j                         v st	        j                  |      rt	        j                  |      nddt        j                         v st	        j                  |
      rt	        j                  |
      nddt        j                         v st	        j                  |      rt	        j                  |      nddz  }d	d
|iz  }t        t	        j                  |            d x}} y )N)g7A`=@ǧO@)	         )<=rV   )z%(py0)s <= %(py3)sz%(py3)s <= %(py4)srG   mxrI   )r
   r@   r   r4   r   rH   myrJ   )r   r5   rF   lonlat_to_3857r   r   r   r   r   r   r   r    )lonlatzr6   r7   rG   rH   rI   rJ   rW   rX   r!   r9   r:   r;   s                  r.   test_tile_contains_its_pointr]      s=   HC "&&sC31!)!:!:1a!CdD$((c2B!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"r0   c                     t        j                  ddd      } t        j                  ddd      }| d   }t        j                  }|d   } ||      }||k(  }|st	        j
                  d|fd||f      t	        j                  |      dt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      t	        j                  |      t	        j                  |      d	z  }d
d|iz  }t        t	        j                  |            d x}x}x}x}}y )Nr2   rT      r   r   r   r>   r	   r?   rD   rE   )r   rF   r	   r   r   r   r   r   r   r   r   r    )	abr8   rL   rM   rN   r9   rO   rP   s	            r.   test_adjacent_tiles_share_edgerb   (   s    !!"b"-A!!"b"-A&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&r0   c                     t        j                  ddddd      \  } }}}g }| |k  }|}|r||k  }|}|st        j                  d|fd| |f      dt	        j
                         v st        j                  |       rt        j                  |       ndd	t	        j
                         v st        j                  |      rt        j                  |      nd	d
z  }dd|iz  }	|j                  |	       |rt        j                  dfd||f      dt	        j
                         v st        j                  |      rt        j                  |      nddt	        j
                         v st        j                  |      rt        j                  |      nddz  }
dd|
iz  }|j                  |       t        j                  |d      i z  }dd|iz  }t        t        j                  |            d x}x}x}}t        j                  ddd      \  }}t        j                  ddd      \  }}g }||k(  }|}|r||k(  }|}|st        j                  d|fd||f      dt	        j
                         v st        j                  |      rt        j                  |      nddt	        j
                         v st        j                  |      rt        j                  |      ndd
z  }dd|iz  }	|j                  |	       |rt        j                  d|fd||f      dt	        j
                         v st        j                  |      rt        j                  |      nddt	        j
                         v st        j                  |      rt        j                  |      nddz  }
dd|
iz  }|j                  |       t        j                  |d      i z  }dd|iz  }t        t        j                  |            d x}x}x}}y )Ng      8@g      N@g      :@g     N@r2   )rV   )z%(py2)s <= %(py4)sx0x1)r   r   z%(py6)sr   )z%(py8)s <= %(py10)sy0y1)r   r   z%(py12)sr   r   zassert %(py15)sr   g      9@r   )z%(py2)s == %(py4)sy_north)z%(py8)s == %(py10)sy_south)r   
tile_ranger   r   r   r   r   r   append_format_boolopr   r    r5   )rd   rf   re   rg   r!   r"   r8   r$   r:   r;   @py_format11@py_format13@py_format14@py_format16_rh   ri   s                    r.   test_tile_range_orientationrr   .   s   ((tT4DNBB                                                          ((tR8JAw((tR8JAw**********************************************************r0   c            	         t        j                  dd      \  } }t        j                  }t         j                  } ||      }| |k(  }|sSt        j                  d|fd| |f      dt        j                         v st        j                  |       rt        j                  |       nddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      t        j                  |      dz  }d	d
|iz  }t        t        j                  |            d x}x}x}}t        j                  }d}d}	 |||	      }
||
k(  }|st        j                  d|fd||
f      dt        j                         v st        j                  |      rt        j                  |      nddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      t        j                  |	      t        j                  |
      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}	}
y )Ng     f@g        r   )zh%(py0)s == %(py9)s
{%(py9)s = %(py4)s
{%(py4)s = %(py2)s.approx
}(%(py7)s
{%(py7)s = %(py5)s.ORIGIN
})
}rW   r	   r   )r
   r   r   rA   rB   rC   rD   rE   g&.>)abs)z[%(py0)s == %(py10)s
{%(py10)s = %(py4)s
{%(py4)s = %(py2)s.approx
}(%(py6)s, abs=%(py8)s)
}rX   )r
   r   r   r   r   r   zassert %(py12)sr   )r   rY   r	   r   r   r   r   r   r   r   r   r   r    )rW   rX   r"   rM   rN   r!   rO   rP   r#   r+   r$   rm   rn   s                r.   test_lonlat_to_3857_referenceru   7   s,   $$UC0FB//////////////////////////////////////////////////------------------------------------------r0   )builtinsr   _pytest.assertion.rewrite	assertionrewriter   mathr	   pipeliner   r/   r<   rQ   r]   rb   rr   ru    r0   r.   <module>r}      s7        N
 E"'+.r0   