コード例 #1
0
    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()}
コード例 #2
0
    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])
コード例 #3
0
    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])
コード例 #4
0
 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)
     }
コード例 #5
0
 def test_loads_file_does_not_exists(self):
     with self.assertRaises(FileNotFoundError):
         csv_from_file(path="{}/data/deals_.csv".format(self.dir_path))
コード例 #6
0
 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)