def __call__(self, asset, hazard): annual_loss_original = scientific.mean_loss( self.lcc_original(asset, hazard).loss_curve) annual_loss_retrofitted = scientific.mean_loss( self.lcc_retrofitted(asset, hazard).loss_curve) bcr = scientific.bcr( annual_loss_original, annual_loss_retrofitted, self.interest_rate, self.asset_life_expectancy, asset.retrofitting_cost) return scientific.BCROutput( asset, bcr, annual_loss_original, annual_loss_retrofitted)
def test_mean_curve_computation(self): loss_ratio_curve = Curve([(0, 0.3460), (0.06, 0.12), (0.12, 0.057), (0.18, 0.04), (0.24, 0.019), (0.3, 0.009), (0.45, 0)]) self.assertAlmostEqual(0.023305, mean_loss(loss_ratio_curve), 3)