def store_exposure_assets(self): """Load exposure assets and write them to database.""" [emdl] = models.inputs4job(self.job_ctxt.job_id, "exposure") path = os.path.join(self.job_ctxt.base_path, emdl.path) exposure_parser = exposure.ExposureModelFile(path) writer = ExposureDBWriter(emdl) writer.serialize(exposure_parser)
class ExposureDBWriterTestCase(unittest.TestCase, helpers.DbTestMixin): """ Test the code to serialize exposure model to DB. """ def setUp(self): self.writer = ExposureDBWriter(self.default_user()) def test_read_exposure(self): path = os.path.join(helpers.SCHEMA_EXAMPLES_DIR, TEST_FILE) parser = ExposurePortfolioFile(path) # call tested function self.writer.serialize(parser) # test results model = self.writer.model self.assertFalse(model is None) # check model fields self.assertEquals('Collection of existing building in downtown Pavia', model.description) self.assertEquals('buildings', model.category) self.assertEquals('EUR', model.unit) # check asset instances assets = sorted(model.exposuredata_set.all(), key=lambda e: e.value) def _to_site(pg_point): return shapes.Site(pg_point.x, pg_point.y) self.assertEquals('asset_01', assets[0].asset_ref) self.assertEquals(150000, assets[0].value) self.assertEquals('RC/DMRF-D/LR', assets[0].vf_ref) self.assertEquals('RC-LR-PC', assets[0].structure_type) self.assertEquals(shapes.Site(9.15000, 45.16667), _to_site(assets[0].site)) self.assertEquals('asset_02', assets[1].asset_ref) self.assertEquals(250000, assets[1].value) self.assertEquals('RC/DMRF-D/LR', assets[1].vf_ref) self.assertEquals('RC-HR-PC', assets[1].structure_type) self.assertEquals(shapes.Site(9.15333, 45.12200), _to_site(assets[1].site)) self.assertEquals('asset_03', assets[2].asset_ref) self.assertEquals(500000, assets[2].value) self.assertEquals('RC/DMRF-D/LR', assets[2].vf_ref) self.assertEquals('RC-LR-PC', assets[2].structure_type) self.assertEquals(shapes.Site(9.14777, 45.17999), _to_site(assets[2].site))
def setUp(self): path = os.path.join(helpers.SCHEMA_EXAMPLES_DIR, TEST_FILE) inputs = [("exposure", path)] self.job = self.setup_classic_job(inputs=inputs) [input] = models.inputs4job(self.job.id, input_type="exposure", path=path) writer = ExposureDBWriter(input) exposure_parser = exposure.ExposureModelFile(path) writer.serialize(exposure_parser) self.model = writer.model self.epsilon_provider = general.EpsilonProvider(dict())
def store_exposure_assets(self): """Load exposure assets and write them to database.""" [emi] = models.inputs4job(self.job_ctxt.job_id, "exposure") if emi.exposuremodel_set.all().count() > 0: return path = os.path.join(self.job_ctxt.base_path, emi.path) exposure_parser = exposure.ExposureModelFile(path) writer = ExposureDBWriter(emi) writer.serialize(exposure_parser) return emi.model()
def setUp(self): path = os.path.join(helpers.SCHEMA_EXAMPLES_DIR, TEST_FILE) inputs = [("exposure", path)] self.job = self.setup_classic_job(inputs=inputs) [input] = models.inputs4job(self.job.id, input_type="exposure", path=path) writer = ExposureDBWriter(input) exposure_parser = exposure.ExposureModelFile(path) writer.serialize(exposure_parser) self.model = writer.model self.epsilon_provider = general.EpsilonProvider( dict(EPSILON_RANDOM_SEED=37))
def setUp(self): [input] = models.inputs4job(self.job.id, input_type="exposure") self.writer = ExposureDBWriter(input)
class ExposureDBWriterTestCase(unittest.TestCase, helpers.DbTestCase): """ Test the code to serialize exposure model to DB. """ job = None path = os.path.join(helpers.SCHEMA_EXAMPLES_DIR, TEST_FILE) @classmethod def setUpClass(cls): inputs = [("exposure", cls.path)] cls.job = cls.setup_classic_job(inputs=inputs) @classmethod def tearDownClass(cls): cls.teardown_job(cls.job) def setUp(self): [input] = models.inputs4job(self.job.id, input_type="exposure") self.writer = ExposureDBWriter(input) def test_read_exposure(self): parser = ExposureModelFile(self.path) # call tested function self.writer.serialize(parser) # test results model = self.writer.model self.assertFalse(model is None) # Make sure the exposure model is associated with the proper # input and job. self.assertEqual(self.path, model.input.path) self.assertEqual("exposure", model.input.input_type) self.assertEqual(1, len(models.inputs4job(self.job.id))) # check model fields self.assertEqual("Collection of existing building in downtown Pavia", model.description) self.assertEqual("buildings", model.category) self.assertEqual("per_asset", model.area_type) self.assertEqual("GBP", model.area_unit) self.assertEqual("per_area", model.coco_type) self.assertEqual("CHF", model.coco_unit) self.assertEqual("aggregated", model.reco_type) self.assertEqual("EUR", model.reco_unit) self.assertEqual("aggregated", model.stco_type) self.assertEqual("USD", model.stco_unit) self.assertEqual("Pavia taxonomy", model.taxonomy_source) # check asset instances assets = sorted(model.exposuredata_set.all(), key=lambda e: e.value) def _to_site(pg_point): return Site(pg_point.x, pg_point.y) self.assertEqual("asset_01", assets[0].asset_ref) self.assertEqual(120, assets[0].area) self.assertEqual(12.95, assets[0].coco) self.assertEqual(55, assets[0].deductible) self.assertEqual(999, assets[0].ins_limit) self.assertEqual(7, assets[0].number_of_units) self.assertEqual(109876, assets[0].reco) self.assertEqual(150000, assets[0].stco) self.assertEqual(150000, assets[0].value) self.assertEqual("RC/DMRF-D/LR", assets[0].taxonomy) self.assertEqual(Site(9.15000, 45.16667), _to_site(assets[0].site)) self.assertEqual(0, assets[0].occupancy_set.count()) self.assertEqual("asset_02", assets[1].asset_ref) self.assertEqual(119, assets[1].area) self.assertEqual(21.95, assets[1].coco) self.assertEqual(66, assets[1].deductible) self.assertEqual(1999, assets[1].ins_limit) self.assertEqual(6, assets[1].number_of_units) self.assertEqual(205432, assets[1].reco) self.assertEqual(250000, assets[1].stco) self.assertEqual(250000, assets[1].value) self.assertEqual("RC/DMRF-D/HR", assets[1].taxonomy) self.assertEqual(Site(9.15333, 45.12200), _to_site(assets[1].site)) day, night = sorted(assets[1].occupancy_set.all(), key=lambda o: o.description) self.assertEqual(12, day.occupants) self.assertEqual("day", day.description) self.assertEqual(50, night.occupants) self.assertEqual("night", night.description) self.assertEqual("asset_03", assets[2].asset_ref) self.assertEqual(118, assets[2].area) self.assertEqual(30.95, assets[2].coco) self.assertEqual(77, assets[2].deductible) self.assertEqual(2888, assets[2].ins_limit) self.assertEqual(5, assets[2].number_of_units) self.assertEqual(495432, assets[2].reco) self.assertEqual(500000, assets[2].stco) self.assertEqual(500000, assets[2].value) self.assertEqual("RC/DMRF-D/LR", assets[2].taxonomy) self.assertEqual(Site(9.14777, 45.17999), _to_site(assets[2].site)) morning, afternoon = sorted(assets[2].occupancy_set.all(), key=lambda o: o.description) self.assertEqual(5, afternoon.occupants) self.assertEqual("late afternoon", afternoon.description) self.assertEqual(36, morning.occupants) self.assertEqual("early morning", morning.description)
class ExposureDBWriterTestCase(unittest.TestCase, helpers.DbTestCase): """ Test the code to serialize exposure model to DB. """ job = None path = os.path.join(helpers.SCHEMA_EXAMPLES_DIR, TEST_FILE) @classmethod def setUpClass(cls): inputs = [("exposure", cls.path)] cls.job = cls.setup_classic_job(inputs=inputs) @classmethod def tearDownClass(cls): cls.teardown_job(cls.job) def setUp(self): [input] = models.inputs4job(self.job.id, input_type="exposure") self.writer = ExposureDBWriter(input) def test_read_exposure(self): parser = ExposureModelFile(self.path) # call tested function self.writer.serialize(parser) # test results model = self.writer.model self.assertFalse(model is None) # Make sure the exposure model is associated with the proper # input and job. self.assertEqual(self.path, model.input.path) self.assertEqual("exposure", model.input.input_type) self.assertEqual(1, len(models.inputs4job(self.job.id))) # check model fields self.assertEqual("Collection of existing building in downtown Pavia", model.description) self.assertEqual("buildings", model.category) self.assertEqual("per_asset", model.area_type) self.assertEqual("GBP", model.area_unit) self.assertEqual("per_area", model.coco_type) self.assertEqual("CHF", model.coco_unit) self.assertEqual("aggregated", model.reco_type) self.assertEqual("EUR", model.reco_unit) self.assertEqual("aggregated", model.stco_type) self.assertEqual("USD", model.stco_unit) self.assertEqual("Pavia taxonomy", model.taxonomy_source) # check asset instances assets = sorted(model.exposuredata_set.all(), key=lambda e: e.value) def _to_site(pg_point): return Site(pg_point.x, pg_point.y) self.assertEqual("asset_01", assets[0].asset_ref) self.assertEqual(120, assets[0].area) self.assertEqual(12.95, assets[0].coco) self.assertEqual(55, assets[0].deductible) self.assertEqual(999, assets[0].ins_limit) self.assertEqual(7, assets[0].number_of_units) self.assertEqual(109876, assets[0].reco) self.assertEqual(150000, assets[0].stco) self.assertEqual(150000, assets[0].value) self.assertEqual("RC/DMRF-D/LR", assets[0].taxonomy) self.assertEqual(Site(9.15000, 45.16667), _to_site(assets[0].site)) self.assertEqual(0, assets[0].occupancy_set.count()) self.assertEqual("asset_02", assets[1].asset_ref) self.assertEqual(119, assets[1].area) self.assertEqual(21.95, assets[1].coco) self.assertEqual(66, assets[1].deductible) self.assertEqual(1999, assets[1].ins_limit) self.assertEqual(6, assets[1].number_of_units) self.assertEqual(205432, assets[1].reco) self.assertEqual(250000, assets[1].stco) self.assertEqual(250000, assets[1].value) self.assertEqual("RC/DMRF-D/HR", assets[1].taxonomy) self.assertEqual(Site(9.15333, 45.12200), _to_site(assets[1].site)) day, night = sorted(assets[1].occupancy_set.all(), key=lambda o: o.category) self.assertEqual(12, day.occupants) self.assertEqual("day", day.category) self.assertEqual(50, night.occupants) self.assertEqual("night", night.category) self.assertEqual("asset_03", assets[2].asset_ref) self.assertEqual(118, assets[2].area) self.assertEqual(30.95, assets[2].coco) self.assertEqual(77, assets[2].deductible) self.assertEqual(2888, assets[2].ins_limit) self.assertEqual(5, assets[2].number_of_units) self.assertEqual(495432, assets[2].reco) self.assertEqual(500000, assets[2].stco) self.assertEqual(500000, assets[2].value) self.assertEqual("RC/DMRF-D/LR", assets[2].taxonomy) self.assertEqual(Site(9.14777, 45.17999), _to_site(assets[2].site)) average, transit = sorted(assets[2].occupancy_set.all(), key=lambda o: o.category) self.assertEqual(5, transit.occupants) self.assertEqual("transit", transit.category) self.assertEqual(36, average.occupants) self.assertEqual("average", average.category)
def setUp(self): self.writer = ExposureDBWriter(self.default_user())