def test_initialize_site_model(self): # we need a slightly different config file for this test cfg = helpers.get_data_path( 'simple_fault_demo_hazard/job_with_site_model.ini') self.job = helpers.get_hazard_job(cfg) self.calc = core.ClassicalHazardCalculator(self.job) self.calc.initialize_site_model() # If the site model isn't valid for the calculation geometry, a # `RuntimeError` should be raised here # Okay, it's all good. Now check the count of the site model records. sm_nodes = models.SiteModel.objects.filter(job=self.job) self.assertEqual(2601, len(sm_nodes)) num_pts_to_compute = len( self.job.hazard_calculation.points_to_compute()) hazard_site = models.HazardSite.objects.filter( hazard_calculation=self.job.hazard_calculation) # The site model is good. Now test that `hazard_site` was computed. # For now, just test the length. self.assertEqual(num_pts_to_compute, len(hazard_site))
def test_get_site_collection_with_site_model(self): cfg = helpers.get_data_path( 'simple_fault_demo_hazard/job_with_site_model.ini') job = helpers.get_job(cfg) models.JobStats.objects.create(oq_job=job) calc = cls_core.ClassicalHazardCalculator(job) # Bootstrap the `hazard_site` table: calc.initialize_site_collection() calc.initialize_sources() site_coll = calc.site_collection # Since we're using a pretty big site model, it's a bit excessive to # check each and every value. # Instead, we'll just test that the lenth of each site collection attr # is equal to the number of points of interest in the calculation. expected_len = len(site_coll) self.assertEqual(expected_len, len(site_coll.vs30)) self.assertEqual(expected_len, len(site_coll.vs30measured)) self.assertEqual(expected_len, len(site_coll.z1pt0)) self.assertEqual(expected_len, len(site_coll.z2pt5))
def _setup_a_new_calculator(self): cfg = helpers.get_data_path('simple_fault_demo_hazard/job.ini') job = helpers.get_hazard_job(cfg, username=getpass.getuser()) calc = core.ClassicalHazardCalculator(job) return job, calc