def test_add_event_type_atts_to_sources(self): (handle, file_name) = tempfile.mkstemp('.xml', __name__ + '_') os.close(handle) handle = open(file_name, 'w') sample = '\n'.join([ '<?xml version="1.0" encoding="UTF-8"?>', '<event_type_controlfile>' ' <event_group event_type = "ham">' ' <GMPE fault_type = "more_ham">' ' <branch model = "food" weight = "1.0"/>' ' </GMPE>' ' <scaling scaling_rule = "y" />' ' </event_group>' ' <event_group event_type = "eggs">' ' <GMPE fault_type = "more_eggs">' ' <branch model = "Camp" weight = "0.33"/>' ' <branch model = "Tongs" weight = ".66"/>' ' </GMPE>' ' <scaling scaling_rule = "e" />' ' </event_group>' '</event_type_controlfile>' ]) handle.write(sample) handle.close() event_type = ['ham', 'eggs', 'ham', 'eggs', 'eggs'] dummy_list = [] for name in event_type: d = DummyEventSet() d.event_type = name dummy_list.append(d) source_mod = Source_Model(dummy_list, 'Mw') source_mod.add_event_type_atts_to_sources(file_name) for s in source_mod: if s.event_type == 'ham': self.failUnlessEqual(s.fault_type, "more_ham") else: self.failUnlessEqual(s.fault_type, "more_eggs") os.remove(file_name) max_num_atten_models = source_mod.get_max_num_atten_models() self.failUnlessEqual(max_num_atten_models, 2)
def _create_fault_sources(self): (handle, file_name) = tempfile.mkstemp('.xml', __name__ + '_') os.close(handle) handle = open(file_name, 'w') sample = '\n'.join([ '<?xml version="1.0" encoding="UTF-8"?>', '<event_type_controlfile>' ' <event_group event_type = "background">' ' <GMPE fault_type = "reverseft">' ' <branch model = "Campbel8" weight = "0.8"/>' ' <branch model = "Boore08" weight = "0.2"/>' ' </GMPE>' ' <scaling scaling_rule = "background" scaling_fault_type = "reverse" />' ' </event_group>' ' <event_group event_type = "intraslab">' ' <GMPE fault_type = "reverse2">' ' <branch model = "Zhao06" weight = "0.5"/>' ' <branch model = "Atkin" weight = "0.5"/>' ' </GMPE>' ' <scaling scaling_rule = "intraslab" scaling_fault_type = "unspecified" />' ' </event_group>' '</event_type_controlfile>' ]) handle.write(sample) handle.close() generation_min_mag = 7.9 recurrence_min_mag = 4 actual_generation_min_mag = max(generation_min_mag, recurrence_min_mag) recurrence_max_mag = 8.0 A_min = 10 b = 1.4 distribution = 'distribution' fsg_list = [] for i, event_type in enumerate( ['background', 'intraslab', 'intraslab']): dummy = DummyEventSet() dummy.magnitude_dist = {} dummy.magnitude_dist['minimum'] = actual_generation_min_mag + i dummy.magnitude_dist['maximum'] = recurrence_max_mag + i dummy.generation_min_mag = generation_min_mag + i dummy.event_type = event_type dummy.name = 'name' + str(i) dummyRm = DummyEventSet() dummyRm.max_magnitude = recurrence_max_mag + i dummyRm.min_magnitude = recurrence_min_mag + i dummyRm.A_min = A_min + i dummyRm.b = b + i dummyRm.recurrence_model_distribution = 'distribution' + str(i) dummyRm.raw_weight = 1.0 dummy.recurrence_models = [dummyRm] fsg_list.append(dummy) magnitude_type = 'Mw' source_model = create_fault_sources(file_name, fsg_list, magnitude_type) os.remove(file_name) return source_model