Exemple #1
0
    def test_ratio_is_zero_if_probability_is_out_of_bounds(self):
        loss_curve = shapes.Curve([(0.21, 0.131), (0.24, 0.108),
                (0.27, 0.089), (0.30, 0.066)])

        self.assertEqual(0.0,
                common.compute_conditional_loss(loss_curve, 0.050))

        self.assertEqual(0.0,
                common.compute_conditional_loss(loss_curve, 0.200))        
Exemple #2
0
    def test_conditional_loss_duplicates(self):
        # we feed compute_conditional_loss with some duplicated data to see if
        # it's handled correctly

        closs1 = common.compute_conditional_loss(shapes.Curve([(0.21, 0.131),
        (0.24, 0.108), (0.27, 0.089), (0.30, 0.066)]), 0.100)

        # duplicated y values, different x values, (0.19, 0.131), (0.20, 0.131)
        #should be skipped
        closs2 = common.compute_conditional_loss(shapes.Curve([(0.19, 0.131),
            (0.20, 0.131), (0.21, 0.131), (0.24, 0.108), (0.27, 0.089),
            (0.30, 0.066)]), 0.100)

        self.assertEquals(closs1, closs2)
Exemple #3
0
    def compute_conditional_loss(self, col, row, loss_curve, asset, loss_poe):
        """ Compute the conditional loss for a loss curve and probability of 
        exceedance """

        loss_conditional = common.compute_conditional_loss(loss_curve, loss_poe)
        key = kvs.tokens.loss_key(self.id, row, col, asset["AssetID"], loss_poe)

        LOGGER.debug("RESULT: conditional loss is %s, write to key %s" % (
            loss_conditional, key))
        kvs.set(key, loss_conditional)
Exemple #4
0
    def compute_conditional_loss(self, col, row, loss_curve, asset, loss_poe):
        """ Compute the conditional loss for a loss curve and probability of
        exceedance """

        loss_conditional = common.compute_conditional_loss(
            loss_curve, loss_poe)

        key = kvs.tokens.loss_key(self.id, row, col, asset["assetID"],
                                  loss_poe)

        LOGGER.debug("RESULT: conditional loss is %s, write to key %s" %
                     (loss_conditional, key))
        kvs.set(key, loss_conditional)
Exemple #5
0
def compute_conditional_loss(job_id, col, row, loss_curve, asset, loss_poe):
    """Compute the conditional loss for a loss curve and Probability of
    Exceedance (PoE)."""

    loss_conditional = common.compute_conditional_loss(
        loss_curve, loss_poe)

    key = kvs.tokens.loss_key(
            job_id, row, col, asset["assetID"], loss_poe)

    LOG.debug("Conditional loss is %s, write to key %s" %
            (loss_conditional, key))

    kvs.set(key, loss_conditional)
Exemple #6
0
    def test_ratio_is_max_if_probability_is_too_low(self):
        loss_curve = shapes.Curve([(0.21, 0.131), (0.24, 0.108),
                (0.27, 0.089), (0.30, 0.066)])

        self.assertEqual(0.30,
                common.compute_conditional_loss(loss_curve, 0.050))
Exemple #7
0
    def test_conditional_loss_computation(self):
        loss_curve = shapes.Curve([(0.21, 0.131), (0.24, 0.108),
                (0.27, 0.089), (0.30, 0.066)])

        self.assertAlmostEqual(0.2526, common.compute_conditional_loss(
                loss_curve, 0.100), 4)
Exemple #8
0
    def test_conditional_loss_computation(self):
        loss_curve = shapes.Curve([(0.21, 0.131), (0.24, 0.108),
                (0.27, 0.089), (0.30, 0.066)])

        self.assertAlmostEqual(0.2526, common.compute_conditional_loss(
                loss_curve, 0.100), 4)
Exemple #9
0
    def test_ratio_is_max_if_probability_is_too_low(self):
        loss_curve = shapes.Curve([(0.21, 0.131), (0.24, 0.108),
                (0.27, 0.089), (0.30, 0.066)])

        self.assertEqual(0.30,
                common.compute_conditional_loss(loss_curve, 0.050))