def test_with_risk_jobs_we_can_trigger_hazard_only_on_exposure_sites(self): """When we have hazard and risk jobs, we can ask to trigger the hazard computation only on the sites specified in the exposure file.""" sections = [config.HAZARD_SECTION, config.GENERAL_SECTION, config.RISK_SECTION] input_region = "46.0, 9.0, 46.0, 10.0, 45.0, 10.0, 45.0, 9.0" exposure = "exposure-portfolio.xml" exposure_path = os.path.join(helpers.SCHEMA_EXAMPLES_DIR, exposure) params = { config.INPUT_REGION: input_region, config.REGION_GRID_SPACING: 0.1, config.EXPOSURE: exposure_path, config.COMPUTE_HAZARD_AT_ASSETS: True, } engine = helpers.create_job(params, sections=sections, base_path=".") expected_sites = [ shapes.Site(9.15000, 45.16667), shapes.Site(9.15333, 45.12200), shapes.Site(9.14777, 45.17999), ] self.assertEquals(expected_sites, engine.sites_to_compute())
def test_computes_sites_in_region_with_risk_jobs(self): """When we have hazard and risk jobs, we always use the region.""" sections = [config.HAZARD_SECTION, config.GENERAL_SECTION, config.RISK_SECTION] input_region = "2.0, 1.0, 2.0, 2.0, 1.0, 2.0, 1.0, 1.0" params = {config.INPUT_REGION: input_region, config.REGION_GRID_SPACING: 1.0} engine = helpers.create_job(params, sections=sections) expected_sites = [shapes.Site(1.0, 1.0), shapes.Site(2.0, 1.0), shapes.Site(1.0, 2.0), shapes.Site(2.0, 2.0)] self.assertEquals(expected_sites, engine.sites_to_compute())
def test_computes_specific_sites_when_specified(self): """When we have hazard jobs only, and we specify a list of sites (SITES parameter in the configuration file) we trigger the computation only on those sites. """ sections = [config.HAZARD_SECTION, config.GENERAL_SECTION] sites = "1.0, 1.5, 1.5, 2.5, 3.0, 3.0, 4.0, 4.5" params = {config.SITES: sites} engine = helpers.create_job(params, sections=sections) expected_sites = [shapes.Site(1.5, 1.0), shapes.Site(2.5, 1.5), shapes.Site(3.0, 3.0), shapes.Site(4.5, 4.0)] self.assertEquals(expected_sites, engine.sites_to_compute())
def test_computes_sites_in_region_when_specified(self): """When we have hazard jobs only, and we specify a region, we use the standard algorithm to split the region in sites. In this example, the region has just four sites (the region boundaries). """ sections = [config.HAZARD_SECTION, config.GENERAL_SECTION] input_region = "2.0, 1.0, 2.0, 2.0, 1.0, 2.0, 1.0, 1.0" params = {config.INPUT_REGION: input_region, config.REGION_GRID_SPACING: 1.0} engine = helpers.create_job(params, sections=sections) expected_sites = [shapes.Site(1.0, 1.0), shapes.Site(2.0, 1.0), shapes.Site(1.0, 2.0), shapes.Site(2.0, 2.0)] self.assertEquals(expected_sites, engine.sites_to_compute())
def test_computes_sites_in_region_with_risk_jobs(self): """When we have hazard and risk jobs, we always use the region.""" sections = [config.HAZARD_SECTION, config.GENERAL_SECTION, config.RISK_SECTION] input_region = "2.0, 1.0, 2.0, 2.0, 1.0, 2.0, 1.0, 1.0" params = {config.INPUT_REGION: input_region, config.REGION_GRID_SPACING: 1.0} engine = helpers.create_job(params, sections=sections) expected_sites = [shapes.Site(1.0, 1.0), shapes.Site(2.0, 1.0), shapes.Site(1.0, 2.0), shapes.Site(2.0, 2.0)] self.assertEqual(expected_sites, engine.sites_to_compute())
def test_computes_specific_sites_when_specified(self): """When we have hazard jobs only, and we specify a list of sites (SITES parameter in the configuration file) we trigger the computation only on those sites. """ sections = [config.HAZARD_SECTION, config.GENERAL_SECTION] sites = "1.0, 1.5, 1.5, 2.5, 3.0, 3.0, 4.0, 4.5" params = {config.SITES: sites} engine = helpers.create_job(params, sections=sections) expected_sites = [shapes.Site(1.5, 1.0), shapes.Site(2.5, 1.5), shapes.Site(3.0, 3.0), shapes.Site(4.5, 4.0)] self.assertEqual(expected_sites, engine.sites_to_compute())
def test_computes_sites_in_region_when_specified(self): """When we have hazard jobs only, and we specify a region, we use the standard algorithm to split the region in sites. In this example, the region has just four sites (the region boundaries). """ sections = [config.HAZARD_SECTION, config.GENERAL_SECTION] input_region = "2.0, 1.0, 2.0, 2.0, 1.0, 2.0, 1.0, 1.0" params = {config.INPUT_REGION: input_region, config.REGION_GRID_SPACING: 1.0} engine = helpers.create_job(params, sections=sections) expected_sites = [shapes.Site(1.0, 1.0), shapes.Site(2.0, 1.0), shapes.Site(1.0, 2.0), shapes.Site(2.0, 2.0)] self.assertEqual(expected_sites, engine.sites_to_compute())
def test_computes_sites_in_region_when_specified_workaround_1027041(self): class FakeJobProfile(object): @property def workaround_1027041(self): return True sections = [config.HAZARD_SECTION, config.GENERAL_SECTION] input_region = "2.0, 1.0, 2.0, 2.0, 1.0, 2.0, 1.0, 1.0" params = {config.INPUT_REGION: input_region, config.REGION_GRID_SPACING: 1.0} engine = helpers.create_job(params, sections=sections) engine.oq_job_profile = FakeJobProfile() expected_sites = [shapes.Site(1.0, 1.0), shapes.Site(2.0, 1.0), shapes.Site(1.0, 2.0), shapes.Site(2.0, 2.0)] self.assertEqual(expected_sites, engine.sites_to_compute())
def test_computes_sites_in_region_with_risk_jobs(self): """When we have hazard and risk jobs, we always use the region.""" class FakeJobProfile(object): @property def workaround_1027041(self): return False sections = [config.HAZARD_SECTION, config.GENERAL_SECTION, config.RISK_SECTION] input_region = "2.0, 1.0, 2.0, 2.0, 1.0, 2.0, 1.0, 1.0" params = {config.INPUT_REGION: input_region, config.REGION_GRID_SPACING: 1.0} engine = helpers.create_job(params, sections=sections) engine.oq_job_profile = FakeJobProfile() expected_sites = [shapes.Site(1.0, 1.0), shapes.Site(2.0, 1.0), shapes.Site(1.0, 2.0), shapes.Site(2.0, 2.0)] self.assertEqual(expected_sites, engine.sites_to_compute())
def test_computes_sites_in_region_when_specified(self): # When we have hazard jobs only, and we specify a region, #we use the standard algorithm to split the region in sites. In this # example, the region has just four sites (the region boundaries). class FakeJobProfile(object): @property def workaround_1027041(self): return False sections = [config.HAZARD_SECTION, config.GENERAL_SECTION] input_region = "2.0, 1.0, 2.0, 2.0, 1.0, 2.0, 1.0, 1.0" params = {config.INPUT_REGION: input_region, config.REGION_GRID_SPACING: 1.0} engine = helpers.create_job(params, sections=sections) engine.oq_job_profile = FakeJobProfile() expected_sites = [shapes.Site(1.0, 1.0), shapes.Site(2.0, 1.0), shapes.Site(1.0, 2.0), shapes.Site(2.0, 2.0)] self.assertEqual(expected_sites, engine.sites_to_compute())