Exemple #1
0
 def test_default_performance_func(self):
     self.assertAlmostEqual(performance_calculator_invite_optional(
                                  self.MockInvitationStats(5, 5, 1)), 0.2)
     self.assertAlmostEqual(performance_calculator_invite_optional(
                                  self.MockInvitationStats(20, 5, 1)), 0.2)
     self.assertAlmostEqual(performance_calculator_invite_optional(
                                  self.MockInvitationStats(0, 5, 1)), 0.2)
     self.assertAlmostEqual(performance_calculator_invite_optional(
                                  self.MockInvitationStats(0, 10, 10)), 1.0)
     self.assertAlmostEqual(performance_calculator_invite_optional(
                                  self.MockInvitationStats(10, 0, 0)), 0.0)
Exemple #2
0
def performance_calculator_invite_only(invitation_stats):
    """Calculate a performance score between ``0.0`` and ``1.0``.
    """
    if app_settings.INVITE_ONLY:
        total = invitation_stats.available + invitation_stats.sent
    try:
        send_ratio = float(invitation_stats.sent) / total
    except ZeroDivisionError:
        send_ratio = 0.0
    accept_ratio = performance_calculator_invite_optional(invitation_stats)
    return min((send_ratio + accept_ratio) * 0.6, 1.0)