示例#1
0
    def test_mb_classes_ln(self):
        """
        Test the Maximum Breaks classifier for a line-based geographic model.
        """
        sld = generator.as_maximum_breaks(Pipeline.objects.filter(material='ceramic'), 'diameter', 5, geofield='path')
   
        # request 5, get 2 back.
        self.assertEqual(len(sld.NamedLayer.UserStyle.FeatureTypeStyle.Rules), 2)

        sld = generator.as_maximum_breaks(Pipeline.objects.filter(material='concrete'), 'diameter', 5, geofield='path')

        literals = sld._node.xpath('//ogc:PropertyIsLessThanOrEqualTo/ogc:Literal',namespaces=sld._nsmap)
        expected = ['0.5', '49.0']

        for i,n in enumerate(literals):
            self.assertEqual(n.text, expected[i], 'Class %d is not correct.' % i)
示例#2
0
    def test_mb_classes_poly(self):
        """
        Test the Maximum Breaks classifier for a polygon-based geographic model.
        """
        sld = generator.as_maximum_breaks(Reservoir.objects.filter(name__startswith='City'), 'volume', 5, geofield='coastline')
   
        # request 5, get 2 back.
        self.assertEqual(len(sld.NamedLayer.UserStyle.FeatureTypeStyle.Rules), 2)

        sld = generator.as_maximum_breaks(Reservoir.objects.filter(name__startswith='County'), 'volume', 5, geofield='coastline')

        literals = sld._node.xpath('//ogc:PropertyIsLessThanOrEqualTo/ogc:Literal',namespaces=sld._nsmap)
        expected = ['21625000.0', '22565000.0', '23525000.0', '24505000.0', '25000000.0']

        for i,n in enumerate(literals):
            self.assertEqual(n.text, expected[i], 'Class %d is not correct.' % i)
示例#3
0
    def test_mb_classes_pt(self):
        """
        Test the Maximum Breaks classifier for a point-based geographic model.
        """
        sld = generator.as_maximum_breaks(Hydrant.objects.filter(pressure=1), 'number', 5, geofield='location')
   
        # request 5, get 2 back.
        self.assertEqual(len(sld.NamedLayer.UserStyle.FeatureTypeStyle.Rules), 2)

        sld = generator.as_maximum_breaks(Hydrant.objects.filter(pressure=2), 'number', 5, geofield='location')

        literals = sld._node.xpath('//ogc:PropertyIsLessThanOrEqualTo/ogc:Literal',namespaces=sld._nsmap)
        expected = ['2070.5', '2162.5', '2256.5', '2352.5', '2401.0']

        for i,n in enumerate(literals):
            self.assertEqual(n.text, expected[i], 'Class %d is not correct.' % i)