def test_exposure_summary_table(self): """Test we can produce the breakdown for the exposure type.""" aggregate_hazard = load_test_vector_layer( 'gisv4', 'intermediate', 'aggregate_classified_hazard_summary.geojson') aggregate_hazard.keywords['hazard_keywords'] = { 'classification': 'generic_hazard_classes' } # I need the number of unique exposure unique_exposure = read_dynamic_inasafe_field( aggregate_hazard.keywords['inasafe_fields'], exposure_count_field) # I need the number of unique hazard fields = aggregate_hazard.keywords['inasafe_fields'] hazard_class = fields[hazard_class_field['key']] hazard_class_index = aggregate_hazard.fieldNameIndex(hazard_class) unique_hazard = aggregate_hazard.uniqueValues(hazard_class_index) layer = exposure_summary_table(aggregate_hazard, None) check_inasafe_fields(layer) self.assertEqual(len(unique_exposure), layer.featureCount()) # We should have # one column per hazard # one for the exposure # one for total affected # one for total not affected # one for total not exposed # one for total self.assertEqual(layer.fields().count(), len(unique_hazard) + 5)
def test_exposure_summary_table_productivity(self): """Test we can produce the breakdown for the exposure type.""" aggregate_hazard = load_test_vector_layer( 'gisv4', 'intermediate', 'summaries', 'land_cover_aggregate_hazard_impacted.geojson') aggregate_hazard.keywords['hazard_keywords'] = { 'hazard': 'generic', 'classification': 'generic_hazard_classes' } aggregate_hazard.keywords['exposure_keywords'] = { 'exposure': 'land_cover' } exposure_summary = load_test_vector_layer( 'gisv4', 'intermediate', 'summaries', 'land_cover_exposure_summary.geojson' ) # I need the number of unique exposure unique_exposure = read_dynamic_inasafe_field( aggregate_hazard.keywords['inasafe_fields'], exposure_count_field) # I need the number of unique hazard fields = aggregate_hazard.keywords['inasafe_fields'] hazard_class = fields[hazard_class_field['key']] hazard_class_index = aggregate_hazard.fields().lookupField(hazard_class) unique_hazard = aggregate_hazard.uniqueValues(hazard_class_index) layer = exposure_summary_table(aggregate_hazard, exposure_summary) check_inasafe_fields(layer) self.assertEqual(len(unique_exposure), layer.featureCount()) # We should have # one column per hazard # 1. one for the exposure # 2. one for total affected # 3. one for total not affected # 4. one for total not exposed # 5. one for total # 6. one for affected productivity # 7. one for affected production cost # 8. one for affected production value self.assertEqual(layer.fields().count(), len(unique_hazard) + 8)
def test_exposure_summary_table_productivity(self): """Test we can produce the breakdown for the exposure type.""" aggregate_hazard = load_test_vector_layer( 'gisv4', 'intermediate', 'summaries', 'land_cover_aggregate_hazard_impacted.geojson') aggregate_hazard.keywords['hazard_keywords'] = { 'classification': 'generic_hazard_classes' } exposure_summary = load_test_vector_layer( 'gisv4', 'intermediate', 'summaries', 'land_cover_exposure_summary.geojson' ) # I need the number of unique exposure unique_exposure = read_dynamic_inasafe_field( aggregate_hazard.keywords['inasafe_fields'], exposure_count_field) # I need the number of unique hazard fields = aggregate_hazard.keywords['inasafe_fields'] hazard_class = fields[hazard_class_field['key']] hazard_class_index = aggregate_hazard.fieldNameIndex(hazard_class) unique_hazard = aggregate_hazard.uniqueValues(hazard_class_index) layer = exposure_summary_table(aggregate_hazard, exposure_summary) check_inasafe_fields(layer) self.assertEqual(len(unique_exposure), layer.featureCount()) # We should have # one column per hazard # one for the exposure # one for total affected # one for total not affected # one for total not exposed # one for total # one for affected productivity # one for affected production cost # one for affected production value self.assertEqual(layer.fields().count(), len(unique_hazard) + 8)