def test_compute_uhs_with_site_model(self): the_job = helpers.prepare_job_context( helpers.demo_file('uhs/config_with_site_model.gem')) the_job.to_kvs() site = Site(0, 0) helpers.store_hazard_logic_trees(the_job) get_sm_patch = helpers.patch( 'openquake.calculators.hazard.general.get_site_model') get_closest_patch = helpers.patch( 'openquake.calculators.hazard.general.get_closest_site_model_data') compute_patch = helpers.patch( 'openquake.calculators.hazard.uhs.core._compute_uhs') get_sm_mock = get_sm_patch.start() get_closest_mock = get_closest_patch.start() compute_mock = compute_patch.start() get_closest_mock.return_value = SiteModel( vs30=800, vs30_type='measured', z1pt0=100, z2pt5=200) try: compute_uhs(the_job, site) self.assertEqual(1, get_sm_mock.call_count) self.assertEqual(1, get_closest_mock.call_count) self.assertEqual(1, compute_mock.call_count) finally: get_sm_patch.stop() get_closest_patch.stop() compute_patch.stop()
def test_compute_uhs(self): # Test the :function:`openquake.hazard.uhs.core.compute_uhs` # function. This function makes use of the Java `UHSCalculator` and # performs the main UHS computation. # The results of the computation are a sequence of Java `UHSResult` # objects. the_job = helpers.job_from_file(UHS_DEMO_CONFIG_FILE) site = Site(0.0, 0.0) helpers.store_hazard_logic_trees(the_job) uhs_results = compute_uhs(the_job, site) for i, result in enumerate(uhs_results): poe = result.getPoe() uhs = result.getUhs() self.assertEquals(self.UHS_RESULTS[i][0], poe) self.assertTrue(numpy.allclose(self.UHS_RESULTS[i][1], [x.value for x in uhs]))