示例#1
0
    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)