예제 #1
0
    def test_recompute_counts(self):
        """Test we can recompute counts in a layer."""
        layer = load_test_vector_layer('gisv4',
                                       'exposure',
                                       'population.geojson',
                                       clone=True)

        self.assertIn(female_count_field['key'],
                      layer.keywords['inasafe_fields'])

        layer = prepare_vector_layer(layer)
        layer = from_counts_to_ratios(layer)

        self.assertIn(female_count_field['key'],
                      layer.keywords['inasafe_fields'])
        self.assertIn(female_ratio_field['key'],
                      layer.keywords['inasafe_fields'])

        # Check that each feature has correct ratio
        for feature in layer.getFeatures():
            manual_ratio = feature[female_count_field['field_name']] / feature[
                population_count_field['field_name']]
            diff = abs(manual_ratio -
                       feature[female_ratio_field['field_name']])

            self.assertTrue(diff < 10**-2, diff)
예제 #2
0
    def test_recompute_counts(self):
        """Test we can recompute counts in a layer."""
        layer = load_test_vector_layer(
            'gisv4', 'exposure', 'population.geojson',
            clone=True)

        self.assertIn(
            female_count_field['key'], layer.keywords['inasafe_fields'])

        layer = prepare_vector_layer(layer)
        layer = from_counts_to_ratios(layer)

        self.assertIn(
            female_count_field['key'], layer.keywords['inasafe_fields'])
        self.assertIn(
            female_ratio_field['key'], layer.keywords['inasafe_fields'])

        # Check that each feature has correct ratio
        for feature in layer.getFeatures():
            manual_ratio = feature[female_count_field['field_name']] / feature[
                population_count_field['field_name']]
            diff = abs(
                manual_ratio - feature[female_ratio_field['field_name']])

            self.assertTrue(diff < 10 ** -2, diff)
예제 #3
0
    def test_recompute_counts(self):
        """Test we can recompute counts in a layer."""
        layer = load_test_vector_layer('gisv4',
                                       'exposure',
                                       'population.geojson',
                                       clone=True)

        self.assertIn(female_count_field['key'],
                      layer.keywords['inasafe_fields'])

        layer = prepare_vector_layer(layer)
        layer = from_counts_to_ratios(layer)

        self.assertIn(female_count_field['key'],
                      layer.keywords['inasafe_fields'])
        self.assertIn(female_ratio_field['key'],
                      layer.keywords['inasafe_fields'])

        # Check that each feature has correct ratio
        for feature in layer.getFeatures():
            female_count = feature[female_count_field['field_name']]
            population_count = feature[population_count_field['field_name']]
            manual_ratio = female_count / float(population_count)

            computing_ratio = feature[female_ratio_field['field_name']]
            diff = abs(manual_ratio - computing_ratio)

            message = 'The ratio difference is too big, diff = %s' % diff
            self.assertTrue(diff < 10**-2, message)
예제 #4
0
    def test_recompute_counts(self):
        """Test we can recompute counts in a layer."""
        layer = load_test_vector_layer(
            'gisv4', 'exposure', 'population.geojson',
            clone=True)

        self.assertIn(
            female_count_field['key'], layer.keywords['inasafe_fields'])

        layer = prepare_vector_layer(layer)
        layer = from_counts_to_ratios(layer)

        self.assertIn(
            female_count_field['key'], layer.keywords['inasafe_fields'])
        self.assertIn(
            female_ratio_field['key'], layer.keywords['inasafe_fields'])

        # Check that each feature has correct ratio
        for feature in layer.getFeatures():
            female_count = feature[female_count_field['field_name']]
            population_count = feature[population_count_field['field_name']]
            manual_ratio = female_count / float(population_count)

            computing_ratio = feature[female_ratio_field['field_name']]
            diff = abs(manual_ratio - computing_ratio)

            message = 'The ratio difference is too big, diff = %s' % diff
            self.assertTrue(diff < 10 ** -2, message)
예제 #5
0
    def test_prepare_layer(self):
        """Test we can prepare a vector layer."""
        layer = load_test_vector_layer('exposure', 'building-points.shp')
        cleaned = prepare_vector_layer(layer)

        # Only 3 fields
        self.assertEqual(len(cleaned.fields().toList()), 2)

        # ET : I should check later the order.
        self.assertIn(cleaned.fieldNameIndex(exposure_id_field['field_name']),
                      [0, 1, 2])

        self.assertIn(
            cleaned.fieldNameIndex(exposure_type_field['field_name']),
            [0, 1, 2])
예제 #6
0
    def test_prepare_layer(self):
        """Test we can prepare a vector layer."""
        layer = load_test_vector_layer('exposure', 'building-points.shp')
        cleaned = prepare_vector_layer(layer)

        # Only 3 fields
        self.assertEqual(len(cleaned.fields().toList()), 2)

        # ET : I should check later the order.
        self.assertIn(
            cleaned.fieldNameIndex(exposure_id_field['field_name']),
            [0, 1, 2])

        self.assertIn(
            cleaned.fieldNameIndex(exposure_type_field['field_name']),
            [0, 1, 2])