def reimbursement_losses_by_peril(self, event_losses_csv): losses_by_peril = {} deals_covered_ids = self.deals.keys() for _event in csv_from_file(event_losses_csv)[1:]: event = Event(*_event) if event.deal_id in deals_covered_ids: _deal = self.deals.get(event.deal_id) _events = losses_by_peril.get(_deal.peril, []) _events.append(self.contract.event_loss_reimbursement(event)) losses_by_peril.update({_deal.peril: _events}) return {key: sum(value) for key, value in losses_by_peril.items()}
def test_load_losses_csv_correctly(self): expected_content = [ ["1", "1", "2000"], ["2", "1", "1500"], ["3", "5", "4000"], ["4", "6", "1000"], ] result = csv_from_file(path="{}/data/losses.csv".format(self.dir_path)) self.assertEqual(self.losses_header, result[0]) for _index, entry in enumerate(result[1:]): # EventId self.assertEqual(expected_content[_index][0], entry[0]) # DealId self.assertEqual(expected_content[_index][1], entry[1]) # Loss self.assertEqual(expected_content[_index][2], entry[2])
def test_load_deals_csv_correctly(self): expected_content = [ ["1", "WestCoast", "Earthquake", "USA"], ["2", "WestCoast", "Hailstone", "Canada"], ["3", "AsianCo", "Hurricane", "Philippines"], ["4", "AsianCo", "Earthquake", "New Zealand"], ["5", "GeorgiaInsurance", "Hurricane", "USA"], ["6", "MidWestInc", "Tornado", "USA"], ] result = csv_from_file(path="{}/data/deals.csv".format(self.dir_path)) self.assertEqual(self.deals_header, result[0]) for _index, entry in enumerate(result[1:]): # DealId self.assertEqual(expected_content[_index][0], entry[0]) # Company self.assertEqual(expected_content[_index][1], entry[1]) # Peril self.assertEqual(expected_content[_index][2], entry[2]) # Location self.assertEqual(expected_content[_index][3], entry[3])
def covered_deals(self, deals_csv): return { deal.deal_id: deal for deal in [Deal(*_deal) for _deal in csv_from_file(deals_csv)[1:]] if deal.is_covered(contract=self.contract) }
def test_loads_file_does_not_exists(self): with self.assertRaises(FileNotFoundError): csv_from_file(path="{}/data/deals_.csv".format(self.dir_path))
def test_load_deals_header_correctly(self): result_header = csv_from_file(path="{}/data/deals.csv".format(self.dir_path))[0] self.assertEqual(self.deals_header, result_header)