def test_set_creation(self): polygon = GEOSGeometry('SRID=4326;MULTIPOLYGON(((0 0,10 0,10 10,0 10,'\ '0 0)))') main_area = Area(label=u'Test', polygon=polygon) main_area.save() self.assertEqual(main_area.default_location.point, GEOSGeometry('SRID=4326;POINT (5 5)'))
def test_set_creation(self): with self.assertRaises(ValidationError): location = Location(label=u'Test', point=None, area=None) location.save() point = GEOSGeometry('SRID=4326;POINT(-8.88 53.81)') location = Location(label=u'Test point', point=point, area=None) location.save() polygon = GEOSGeometry('SRID=4326;MULTIPOLYGON(((-8.88 53.81,'\ '-1.41 55.84,-5.54 53.29,0.34 54.69, -8.88 53.81)))') area = Area(label=u'Test', polygon=polygon) area.save() location = Location.objects.create(label=u'Test point', point=None, area=area) location.save()
def test_set_creation(self): # verify if no point and no area is set # validation test removed? #with self.assertRaises(ValidationError): # location = Location(label=u'Test', point=None, area=None) # location.save() point = GEOSGeometry('SRID=4326;POINT(-8.88 53.81)') location = Location(adr1=u'Test point', point=point, area=None) location.save() self.assertEqual(location.adr1, location.label) polygon = GEOSGeometry('SRID=4326;MULTIPOLYGON(((-8.88 53.81,'\ '-1.41 55.84,-5.54 53.29,0.34 54.69, -8.88 53.81)))') area = Area(label=u'Test', polygon=polygon, area_type=self.area_types[0]) area.save() location = Location.objects.create(label=u'Test point', point=None, area=area) location.save()
def test_relations_levels(self): polygon = GEOSGeometry('SRID=4326;MULTIPOLYGON(((-8.88 53.81'\ ',-1.41 55.84,-5.54 53.29,0.34 54.69, -8.88 53.81)))') """ area_1 > area_2 > > area_3 > > > area_4 > > > area_6 > > area_8 > area_5 > > area_7 """ area_1 = Area.objects.create(label=u'Area 1', polygon=polygon, area_type=self.area_types[0]) area_2 = Area.objects.create(label=u'Area 2', polygon=polygon, area_type=self.area_types[0]) area_1.add_child(area_2) area_3 = Area.objects.create(label=u'Area 3', polygon=polygon, area_type=self.area_types[0]) area_3.add_parent(area_2) area_4 = Area.objects.create(label=u'Area 4', polygon=polygon, area_type=self.area_types[0]) area_5 = Area.objects.create(label=u'Area 5', polygon=polygon, area_type=self.area_types[0]) area_5.add_parent(area_1) area_6 = Area.objects.create(label=u'Area 6', polygon=polygon, area_type=self.area_types[0]) area_3.add_childs([area_4, area_6]) area_7 = Area.objects.create(label=u'Area 7', polygon=polygon, area_type=self.area_types[0]) area_5.add_childs([area_7]) area_8 = Area.objects.create(label=u'Area 8', polygon=polygon, area_type=self.area_types[0]) area_2.add_child(area_8) self.assertEqual(area_1.level, 0) self.assertEqual(area_2.level, 1) self.assertEqual(area_3.level, 2) self.assertEqual(area_4.level, 3) self.assertEqual(area_5.level, 1) self.assertEqual(area_6.level, 3) self.assertEqual(area_7.level, 2) self.assertEqual(area_8.level, 2) # reinitialise for idx in xrange(1,9): locals()['area_%d'%idx]._level = None areas = Area.get_all() self.assertEqual(areas, [area_1, area_2, area_3, area_4, area_6, area_8, area_5, area_7]) areas_dct = {1:areas[0], 2:areas[1], 3:areas[2], 4:areas[3], 6:areas[4], 8:areas[5], 5:areas[6], 7:areas[7], } # for readability self.assertEqual(areas_dct[1].level, 0) self.assertEqual(areas_dct[2].level, 1) self.assertEqual(areas_dct[3].level, 2) self.assertEqual(areas_dct[4].level, 3) self.assertEqual(areas_dct[5].level, 1) self.assertEqual(areas_dct[6].level, 3) self.assertEqual(areas_dct[7].level, 2) self.assertEqual(areas_dct[8].level, 2) self.assertEqual(areas_dct[1].leaf, True) self.assertEqual(areas_dct[2].leaf, True) self.assertEqual(areas_dct[3].leaf, True) self.assertEqual(areas_dct[6].end_leaf, 1) self.assertEqual(areas_dct[8].end_leaf, 1) self.assertEqual(areas_dct[5].leaf, True) self.assertEqual(areas_dct[7].end_leaf, 2)
def test_relations_levels(self): polygon = GEOSGeometry('SRID=4326;MULTIPOLYGON(((-8.88 53.81'\ ',-1.41 55.84,-5.54 53.29,0.34 54.69, -8.88 53.81)))') """ area_1 > area_2 > > area_3 > > > area_4 > > > area_6 > > area_8 > area_5 > > area_7 """ area_1 = Area.objects.create(label=u'Area 1', polygon=polygon) area_2 = Area.objects.create(label=u'Area 2', polygon=polygon) area_1.add_child(area_2, DEFAULT_RELATION_TYPE) area_3 = Area.objects.create(label=u'Area 3', polygon=polygon) area_3.add_parent(area_2, DEFAULT_RELATION_TYPE) area_4 = Area.objects.create(label=u'Area 4', polygon=polygon) area_5 = Area.objects.create(label=u'Area 5', polygon=polygon) area_5.add_parent(area_1, DEFAULT_RELATION_TYPE) area_6 = Area.objects.create(label=u'Area 6', polygon=polygon) area_3.add_childs([area_4, area_6], DEFAULT_RELATION_TYPE) area_7 = Area.objects.create(label=u'Area 7', polygon=polygon) area_5.add_childs([area_7], DEFAULT_RELATION_TYPE) area_8 = Area.objects.create(label=u'Area 8', polygon=polygon) area_2.add_child(area_8, DEFAULT_RELATION_TYPE) self.assertEqual(area_1.level, 0) self.assertEqual(area_2.level, 1) self.assertEqual(area_3.level, 2) self.assertEqual(area_4.level, 3) self.assertEqual(area_5.level, 1) self.assertEqual(area_6.level, 3) self.assertEqual(area_7.level, 2) self.assertEqual(area_8.level, 2) # reinitialise for idx in xrange(1,9): locals()['area_%d'%idx]._level = None areas = Area.get_all() self.assertEqual(areas, [area_1, area_2, area_3, area_4, area_6, area_8, area_5, area_7]) areas_dct = {1:areas[0], 2:areas[1], 3:areas[2], 4:areas[3], 6:areas[4], 8:areas[5], 5:areas[6], 7:areas[7], } # for readability self.assertEqual(areas_dct[1].level, 0) self.assertEqual(areas_dct[2].level, 1) self.assertEqual(areas_dct[3].level, 2) self.assertEqual(areas_dct[4].level, 3) self.assertEqual(areas_dct[5].level, 1) self.assertEqual(areas_dct[6].level, 3) self.assertEqual(areas_dct[7].level, 2) self.assertEqual(areas_dct[8].level, 2) self.assertEqual(areas_dct[1].leaf, True) self.assertEqual(areas_dct[2].leaf, True) self.assertEqual(areas_dct[3].leaf, True) self.assertEqual(areas_dct[6].end_leaf, 1) self.assertEqual(areas_dct[8].end_leaf, 1) self.assertEqual(areas_dct[5].leaf, True) self.assertEqual(areas_dct[7].end_leaf, 2)