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)
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
def requested_node_trust_local(node_id): return requested_trust_local(get_local_rank(node_id))
def computed_node_trust_local(node_id): return computed_trust_local(get_local_rank(node_id))