예제 #1
0
    def test_local_rank(self):
        self.assertIsNone(dm.get_local_rank("ABC"))
        dm.increase_positive_computed("ABC", 2)
        lr = dm.get_local_rank("ABC")
        self.assertIsNotNone(lr)
        self.assertEqual(lr.positive_computed, 2)
        dm.increase_positive_computed("ABC", 3.5)
        dm.increase_negative_computed("DEF", 1.1)
        dm.increase_negative_computed("DEF", 1.2)
        lr = dm.get_local_rank("ABC")
        self.assertEqual(lr.positive_computed, 5.5)
        self.assertEqual(lr.negative_computed, 0.0)
        lr = dm.get_local_rank("DEF")
        self.assertEqual(lr.positive_computed, 0)
        self.assertEqual(lr.negative_computed, 2.3)
        dm.increase_wrong_computed("DEF", 10.0)
        dm.increase_wrong_computed("ABC", 3.0)
        dm.increase_wrong_computed("ABC", 0.2)
        dm.increase_positive_requested("ABC", 3.0)
        dm.increase_positive_requested("ABC", 1.1)
        dm.increase_negative_requested("ABC", 1.9)
        dm.increase_negative_requested("ABC", 0.1)
        dm.increase_positive_payment("DEF", 1)
        dm.increase_negative_payment("DEF", 2)
        dm.increase_positive_payment("DEF", 3)
        dm.increase_negative_payment("DEF", 5)
        dm.increase_positive_resource("XYZ", 7)
        dm.increase_negative_resource("XYZ", 0.4)

        lr = dm.get_local_rank("DEF")
        self.assertEqual(lr.wrong_computed, 10.0)
        self.assertEqual(lr.positive_requested, 0.0)
        self.assertEqual(lr.negative_requested, 0)
        self.assertEqual(lr.positive_payment, 4)
        self.assertEqual(lr.negative_payment, 7)
        lr = dm.get_local_rank("ABC")
        self.assertEqual(lr.wrong_computed, 3.2)
        self.assertEqual(lr.positive_requested, 4.1)
        self.assertEqual(lr.negative_requested, 2.0)
        self.assertEqual(lr.positive_payment, 0)
        self.assertEqual(lr.negative_payment, 0)
        self.assertEqual(lr.positive_resource, 0)
        self.assertEqual(lr.negative_resource, 0)
        lr = dm.get_local_rank("XYZ")
        self.assertEqual(lr.positive_resource, 7)
        self.assertEqual(lr.negative_resource, 0.4)
예제 #2
0
    def get_requesting_trust(self, node_id):
        local_rank = get_local_rank(node_id)
        local_trust = tm.requested_trust_local(local_rank)
        if local_trust is not None:
            logger.debug("Using local rank {}".format(local_trust))
            return local_trust

        # FIXME Turn on when we'll introduce additional limitation mechanism
        # FIXME Issue 1337
        # trust_sum, weight_sum = tm.requested_neighbours_rank(
        #     node_id,
        #     self.neighbours)
        # global_rank = dm.get_global_rank(node_id)
        #
        # if global_rank is not None:
        #     if global_rank.gossip_weight_requesting != 0:
        #         logger.debug("Using gossipRank + neighboursRank")
        #         v = trust_sum + global_rank.requesting_trust_value
        #         w = weight_sum + global_rank.gossip_weight_requesting
        #         return v / w
        # elif weight_sum != 0:
        #     logger.debug("Using neighboursRank")
        #     return trust_sum / float(weight_sum)
        return UNKNOWN_TRUST
예제 #3
0
def requested_node_trust_local(node_id):
    return requested_trust_local(get_local_rank(node_id))
예제 #4
0
def computed_node_trust_local(node_id):
    return computed_trust_local(get_local_rank(node_id))