def test_boundary_search(self): # Unit Square b1 = Boundary.objects.create( geom=MultiPolygon(make_simple_polygon(0)), name='whatever', category='whatever', sort_order=1) # Unit Square translated by (0.2,0.2) b2 = Boundary.objects.create( geom=MultiPolygon(make_simple_polygon(0.2)), name='whatever', category='whatever', sort_order=1) # Unit square translated by (-1,-1) b3 = Boundary.objects.create( geom=MultiPolygon(make_simple_polygon(-1)), name='whatever', category='whatever', sort_order=1) plot1 = Plot(geom=Point(0.9, 0.9), instance=self.instance) plot2 = Plot(geom=Point(1.1, 1.1), instance=self.instance) plot3 = Plot(geom=Point(2.5, 2.5), instance=self.instance) for p in (plot1, plot2, plot3): p.save_with_user(self.commander) boundary1_filter = json.dumps({'plot.geom': {'IN_BOUNDARY': b1.pk}}) plots = search.Filter(boundary1_filter, '', self.instance)\ .get_objects(Plot) self.assertEqual( {plot1.pk}, {p.pk for p in plots}) boundary2_filter = json.dumps({'plot.geom': {'IN_BOUNDARY': b2.pk}}) plots = search.Filter(boundary2_filter, '', self.instance)\ .get_objects(Plot) self.assertEqual( {plot1.pk, plot2.pk}, {p.pk for p in plots}) boundary3_filter = json.dumps({'plot.geom': {'IN_BOUNDARY': b3.pk}}) plots = search.Filter(boundary3_filter, '', self.instance)\ .get_objects(Plot) self.assertEqual( 0, len(plots))
def test_boundary_constraint(self): b = Boundary.objects.create(geom=MultiPolygon(make_simple_polygon(0)), name='whatever', category='whatever', sort_order=1) inparams = search._parse_dict_value({'IN_BOUNDARY': b.pk}) self.assertEqual(inparams, {'__within': b.geom})
def test_boundary_constraint(self): b = Boundary.objects.create( geom=MultiPolygon(make_simple_polygon(0)), name='whatever', category='whatever', sort_order=1) inparams = search._parse_dict_value({'IN_BOUNDARY': b.pk}) self.assertEqual(inparams, {'__within': b.geom})