<s> from django . test import TestCase <EOL> from mongoengine import Document , fields <EOL> from rest_framework . compat import unicode_repr <EOL> from rest_framework_mongoengine . fields import GeoJSONField , GeoPointField <EOL> from rest_framework_mongoengine . serializers import DocumentSerializer <EOL> from . utils import FieldTest , dedent <EOL> class TestGeoPointField ( FieldTest , TestCase ) : <EOL> field = GeoPointField ( ) <EOL> valid_inputs = [ <EOL> ( [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ) , <EOL> ( [ <NUM_LIT:1> , <NUM_LIT:2> ] , [ <NUM_LIT:1.0> , <NUM_LIT> ] ) , <EOL> ( [ "<STR_LIT>" , "<STR_LIT>" ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ) <EOL> ] <EOL> invalid_inputs = [ <EOL> ( <NUM_LIT:0.1> , "<STR_LIT>" ) , <EOL> ( [ <NUM_LIT:0.1> , <NUM_LIT> , <NUM_LIT> ] , "<STR_LIT>" ) , <EOL> ( [ "<STR_LIT>" , "<STR_LIT>" ] , "<STR_LIT>" ) <EOL> ] <EOL> outputs = [ <EOL> ( [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ) <EOL> ] <EOL> class TestPointField ( FieldTest , TestCase ) : <EOL> field = GeoJSONField ( '<STR_LIT>' ) <EOL> valid_inputs = [ <EOL> ( [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ <NUM_LIT:0.1> , <NUM_LIT> ] } , [ <NUM_LIT:0.1> , <NUM_LIT> ] ) <EOL> ] <EOL> invalid_inputs = [ <EOL> ( <NUM_LIT:0.1> , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] } , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : <NUM_LIT:0.1> } , "<STR_LIT>" ) , <EOL> ( [ <NUM_LIT:0.1> , <NUM_LIT> , <NUM_LIT> ] , "<STR_LIT>" ) , <EOL> ( [ "<STR_LIT>" , "<STR_LIT>" ] , "<STR_LIT>" ) <EOL> ] <EOL> outputs = [ <EOL> ( [ <NUM_LIT:0.1> , <NUM_LIT> ] , { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ <NUM_LIT:0.1> , <NUM_LIT> ] } ) <EOL> ] <EOL> class TestMultiPointField ( FieldTest , TestCase ) : <EOL> field = GeoJSONField ( '<STR_LIT>' ) <EOL> valid_inputs = [ <EOL> ( [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] , [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] } , [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ) <EOL> ] <EOL> invalid_inputs = [ <EOL> ( <NUM_LIT:0.1> , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ <NUM_LIT:0.1> , <NUM_LIT> ] } , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : <NUM_LIT:0.1> } , "<STR_LIT>" ) , <EOL> ( [ <NUM_LIT:0.1> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , "<STR_LIT>" ) , <EOL> ( [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0.5> ] ] , "<STR_LIT>" ) , <EOL> ( [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ "<STR_LIT>" , "<STR_LIT>" ] ] , "<STR_LIT>" ) <EOL> ] <EOL> outputs = [ <EOL> ( [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] , { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] } ) <EOL> ] <EOL> class TestLineField ( FieldTest , TestCase ) : <EOL> field = GeoJSONField ( '<STR_LIT>' ) <EOL> valid_inputs = [ <EOL> ( [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] , [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] } , [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ) <EOL> ] <EOL> invalid_inputs = [ <EOL> ( <NUM_LIT:0.1> , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ <NUM_LIT:0.1> , <NUM_LIT> ] } , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : <NUM_LIT:0.1> } , "<STR_LIT>" ) , <EOL> ( [ <NUM_LIT:0.1> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , "<STR_LIT>" ) , <EOL> ( [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0.5> ] ] , "<STR_LIT>" ) , <EOL> ( [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ "<STR_LIT>" , "<STR_LIT>" ] ] , "<STR_LIT>" ) <EOL> ] <EOL> outputs = [ <EOL> ( [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] , { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] } ) <EOL> ] <EOL> class TestMultiLineField ( FieldTest , TestCase ) : <EOL> field = GeoJSONField ( '<STR_LIT>' ) <EOL> valid_inputs = [ <EOL> ( [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ] , [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ] ) , <EOL> ( { '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ] } , [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ] ) , <EOL> ] <EOL> invalid_inputs = [ <EOL> ( <NUM_LIT:0.1> , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ <NUM_LIT:0.1> , <NUM_LIT> ] } , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : <NUM_LIT:0.1> } , "<STR_LIT>" ) , <EOL> ( [ <NUM_LIT:0.1> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , "<STR_LIT>" ) , <EOL> ( [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0.5> ] ] ] , "<STR_LIT>" ) , <EOL> ( [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ "<STR_LIT>" , "<STR_LIT>" ] ] ] , "<STR_LIT>" ) , <EOL> ] <EOL> outputs = [ <EOL> ( [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ] , { '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ] } ) , <EOL> ] <EOL> class TestPolyField ( FieldTest , TestCase ) : <EOL> field = GeoJSONField ( '<STR_LIT>' ) <EOL> valid_inputs = [ <EOL> ( [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] , [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] ) , <EOL> ( { '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] } , [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] ) , <EOL> ] <EOL> invalid_inputs = [ <EOL> ( <NUM_LIT:0.1> , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ <NUM_LIT:0.1> , <NUM_LIT> ] } , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : <NUM_LIT:0.1> } , "<STR_LIT>" ) , <EOL> ( [ <NUM_LIT:0.1> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , "<STR_LIT>" ) , <EOL> ( [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0.5> ] ] ] , "<STR_LIT>" ) , <EOL> ( [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ "<STR_LIT>" , "<STR_LIT>" ] ] ] , "<STR_LIT>" ) , <EOL> ( [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ] , "<STR_LIT>" ) , <EOL> ] <EOL> outputs = [ <EOL> ( [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] , { '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] } ) , <EOL> ] <EOL> class TestMultiPolyField ( FieldTest , TestCase ) : <EOL> field = GeoJSONField ( '<STR_LIT>' ) <EOL> valid_inputs = [ <EOL> ( [ [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] ] , [ [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] ] ) , <EOL> ( { '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : [ [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] ] } , [ [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] ] ) , <EOL> ] <EOL> invalid_inputs = [ <EOL> ( <NUM_LIT:0.1> , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : [ <NUM_LIT:0.1> , <NUM_LIT> ] } , "<STR_LIT>" ) , <EOL> ( { '<STR_LIT:type>' : "<STR_LIT>" , '<STR_LIT>' : <NUM_LIT:0.1> } , "<STR_LIT>" ) , <EOL> ( [ <NUM_LIT:0.1> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , "<STR_LIT>" ) , <EOL> ( [ [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0.5> ] ] ] ] , "<STR_LIT>" ) , <EOL> ( [ [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ "<STR_LIT>" , "<STR_LIT>" ] ] ] ] , "<STR_LIT>" ) , <EOL> ( [ [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] ] ] ] , "<STR_LIT>" ) , <EOL> ] <EOL> outputs = [ <EOL> ( [ [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] ] , { '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : [ [ [ [ <NUM_LIT:0.1> , <NUM_LIT> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:0.5> , <NUM_LIT> ] , [ <NUM_LIT:0.1> , <NUM_LIT> ] ] ] ] } ) , <EOL> ] <EOL> class GeoDoc ( Document ) : <EOL> geo_point_field = fields . GeoPointField ( ) <EOL> point_field = fields . PointField ( ) <EOL> line_field = fields . LineStringField ( ) <EOL> poly_field = fields . PolygonField ( ) <EOL> multi_point_field = fields . MultiPointField ( ) <EOL> multi_line_field = fields . MultiLineStringField ( ) <EOL> multi_poly_field = fields . MultiPolygonField ( ) <EOL> class TestGeoMapping ( TestCase ) : <EOL> def test_mapping ( self ) : <EOL> class TestSerializer ( DocumentSerializer ) : <EOL> class Meta : <EOL> model = GeoDoc <EOL> expected = dedent ( """<STR_LIT>""" ) <EOL> assert unicode_repr ( TestSerializer ( ) ) == expected </s>
