ó
:ÏOc           @   sQ  d  d l  Td  d l m Z d  d l m 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 g  e ƒ  j ƒ  D]0 \ Z Z e e d ƒ rÓ e j d ƒ rÓ e ^ qÓ Z d e j f d „  ƒ  YZ d „  Z d d „ Z  e! d k rMe  ƒ  n  d S(   iÿÿÿÿ(   t   *(   t   GEOSIndexError(   t   unittestc         C   s   |  | S(   N(    (   t   ot   i(    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   getItem	   s    c         C   s   |  | =d  S(   N(    (   R   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   delItem
   s    c         C   s   | |  | <d  S(   N(    (   R   R   t   v(    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   setItem   s    c         C   s   |  j  t d d ƒ ƒ S(   Ni8ÿÿÿ(   t   distancet   Point(   t   x(    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_distance   s    c         C   s   |  j  d ƒ S(   Ni
   (   t   buffer(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_buffer   s    c         C   s   |  j  S(   N(   t   geom_typeid(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_geom_typeid   s    c         C   s   |  j  S(   N(   t
   num_coords(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_num_coords   s    c         C   s   |  j  S(   N(   t   centroid(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_centroid   s    c         C   s   |  j  S(   N(   t   empty(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_empty   s    c         C   s   |  j  S(   N(   t   valid(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_valid   s    c         C   s   |  j  S(   N(   t   simple(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_simple   s    c         C   s   |  j  S(   N(   t   ring(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_ring   s    c         C   s   |  j  S(   N(   t   boundary(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_boundary   s    c         C   s   |  j  S(   N(   t   convex_hull(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_convex_hull   s    c         C   s   |  j  S(   N(   t   extent(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_extent   s    c         C   s   |  j  S(   N(   t   area(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_area   s    c         C   s   |  j  S(   N(   t   length(   R   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   api_get_length   s    t   __call__t   api_get_t   GEOSMutationTestc           B   sM   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   sx   
    Tests Pythonic Mutability of Python GEOS geometry wrappers
    get/set/delitem on a slice, normal list methods
    c         C   sf   t  d d ƒ } x$ t d d ƒ D] } | j | ƒ q W|  j t | j d ƒ |  j t | j d ƒ d S(   s   Testing Geometry GEOSIndexErrori   i   iþÿÿÿiýÿÿÿN(   R
   t   ranget   _checkindext   assertRaisesR   (   t   selft   pR   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   test00_GEOSIndexException&   s
     c         C   s•   xŽ t  d d d ƒ t d ƒ f D]n } |  j | j d ƒ d d ƒ | j d d ƒ |  j | j d d ƒ | j d d ƒ |  j | j d d ƒ q Wd S(   s   Testing Point mutationsi   i   i   s   POINT (1 2 3)g       @s   Point _get_single_externali    id   g      Y@g      @s   Point _set_singlei2   iE  g      I@g     Š¨@s   Point _set_listN(   g      Y@g       @g      @(   i2   iE  (   g      I@g     Š¨@(   R
   t   fromstrt   assertEqualt   _get_single_externalt   _set_singlet   coordst	   _set_list(   R-   R.   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   test01_PointMutations-   s    %c         C   s6   |  j  t t t d ƒ ƒ |  j  t t t d ƒ ƒ d S(   s   Testing Point exceptionsi   i   N(   R,   t	   TypeErrorR
   R*   (   R-   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   test02_PointExceptions:   s    c         C   s‰   t  d d d ƒ } xp t  d d d ƒ t d ƒ f D]P } d d g | d d +x4 t D], } |  j | | ƒ | | ƒ d | j ƒ qQ Wq1 Wd	 S(
   s   Testing Point APIi   i   i   i   i   s   POINT (1 2 3)i    s   Point N(   R
   R0   t   geos_function_testsR1   t   __name__(   R-   t   qR.   t   f(    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   test03_PointApi?   s
    %c         C   sð   xé t  d d d ƒ t d ƒ f D]É } |  j | j d ƒ d d	 ƒ | j d d ƒ |  j | j d d d f d ƒ | j d d d f ƒ |  j | j d d  f d ƒ t  | j ƒ } x4 t D], } |  j | | ƒ | | ƒ d | j ƒ q¸ Wq Wd S(!   s   Testing LineString mutationsi   i    i   i   iÿÿÿÿs   LINESTRING (1 0,4 1,6 -1)g      @g      ð?s   LineString _get_single_externaliÎÿÿÿi   g      IÀg      9@g      @g      ð¿s   LineString _set_singlei   s   LineString _set_lists   LineString N(   i   i    (   i   i   (   i   iÿÿÿÿ(   g      @g      ð?(   iÎÿÿÿi   (   g      IÀg      9@(   g      @g      ð?(   g      @g      ð¿(   g      IÀg      9@(   g      @g      ð¿(   g      IÀg      9@(   g      @g      ð¿(	   t
   LineStringR0   R1   R2   R3   R4   R5   R9   R:   (   R-   t   lst   lsaR<   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   test04_LineStringMutationsG   s    c      
   C   sL  xEt  d d  d! d" d# f d$ d% d& d' f ƒ t d
 ƒ f D]} |  j | j d ƒ t d( d) d* d+ d, ƒ d ƒ |  j | j d ƒ t d- d. d/ d0 ƒ d ƒ | j d d1 d2 d3 d4 d5 f d6 d7 d8 d9 f f ƒ |  j | j d: d; d< d= d> f d? d@ dA dB f f d ƒ t  | j Œ  } x4 t D], } |  j | | ƒ | | ƒ d | j ƒ qWq7 Wd S(C   s   Testing Polygon mutationsi   i    i   i   iÿÿÿÿi   i
   i   i   s3   POLYGON ((1 0,4 1,6 -1,8 10,1 0),(5 4,6 4,6 3,5 4))s   Polygon _get_single_external(0)s   Polygon _get_single_external(1)i   i   i	   i   g      ð?g       @g      $@g        g      (@g      "@g      ð¿g      .@g      @g      @g      @s   Polygon _set_lists   Polygon N(   i   i    (   i   i   (   i   iÿÿÿÿ(   i   i
   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    (   i   i   (   i   iÿÿÿÿ(   i   i
   (   i   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i
   i    (   i   i	   (   iÿÿÿÿi   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   g      ð?g       @(   g      $@g        (   g      (@g      "@(   g      ð¿g      .@(   g      ð?g       @(   g      @g       @(   g      @g       @(   g      @g      @(   g      @g       @(	   t   PolygonR0   R1   R2   t
   LinearRingR5   R4   R9   R:   (   R-   t   pgR@   R<   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   test05_PolygonY   s$    c      	   C   s÷   xð t  t t d d d d f ƒ Œ  t d ƒ f D]Á } |  j | j d ƒ t d d ƒ d	 ƒ | j d t t d d d f ƒ ƒ |  j | j d d d f d ƒ t  t t d d d  f ƒ Œ  } x4 t D], } |  j | | ƒ | | ƒ d | j	 ƒ q¿ Wq. Wd S(!   s   Testing Collection mutationsi   i   iÿÿÿÿi   i   iüÿÿÿi   s   MULTIPOINT (3 4,-1 2,5 -4,2 8)s   Collection _get_single_externaliþÿÿÿi   g      @g      @g       Àg       @g      ð?s   Collection _set_lists   MultiPoint N(   i   i   (   iÿÿÿÿi   (   i   iüÿÿÿ(   i   i   (   i   i   (   i   iþÿÿÿ(   i   i   (   g      @g      @(   g      @g       À(   g       @g      ð?(   i   i   (   i   iþÿÿÿ(   i   i   (
   t
   MultiPointt   mapR
   R0   R1   R2   R5   R4   R9   R:   (   R-   t   mpR@   R<   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   test06_Collectionq   s    !%"(
   R:   t
   __module__t   __doc__R/   R6   R8   R=   RA   RE   RI   (    (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyR)       s   						c          C   s&   t  j ƒ  }  |  j t  j t ƒ ƒ |  S(   N(   R   t	   TestSuitet   addTestt	   makeSuiteR)   (   t   s(    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   suite~   s    i   c         C   s    t  j d |  ƒ j t ƒ  ƒ d  S(   Nt	   verbosity(   R   t   TextTestRunnert   runRP   (   RQ   (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyRS   ƒ   s    t   __main__N("   t   django.contrib.gis.geost   django.contrib.gis.geos.errorR   t   django.utilsR   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R"   R$   R&   t   varst   itemst   namet   valt   hasattrt
   startswithR9   t   TestCaseR)   RP   RS   R:   (    (    (    sI   ../Django//lib/python/django/contrib/gis/geos/tests/test_geos_mutation.pyt   <module>   s6   
																	^	