def test_leaders_reverse(self): b = Leaderboard('combat', 'rank', [Leaderboard.RANGE_DAILY], reverse=True, redis=self.r) for i in range(1, self.size + 1): b.set_metric('player' + str(i), i) total, start, end, l = b.leaders(Leaderboard.RANGE_DAILY) self.assertEquals(self.size, len(l)) self.assertEquals(('player20', 20.0, 1, 0), l[0])
def test_size2(self): b = Leaderboard('combat', 'rank', [Leaderboard.RANGE_DAILY, Leaderboard.RANGE_WEEKLY], reverse=False, redis=self.r) for i in range(1, self.size + 1): b.set_metric('player' + str(i), i) key = b._board_key(Leaderboard.RANGE_DAILY) self.assertEquals(self.size, self.r.zcard(key)) key = b._board_key(Leaderboard.RANGE_WEEKLY) self.assertEquals(self.size, self.r.zcard(key))
def test_tie_rankings_with_ts_reverse_newest(self): bt = Leaderboard('ties', 'hs', ranges=[Leaderboard.RANGE_DAILY], reverse=True, timed_ties=True, tie_oldest_wins=False, redis=self.r) bt.set_metric('first', 100, ts=1400000003) bt.set_metric('second', 100, ts=1400000002) bt.set_metric('third', 100, ts=1400000001) bt.set_metric('fourth', 99, ts=1400000000) total, start, end, l = bt.leaders(Leaderboard.RANGE_DAILY, 10) print l self.assertEquals(l[0][0], 'first') bt.clear_all()
def test_tie_rankings(self): # without further handling, ties get ranked lexigraphically bt = Leaderboard('ties', 'hs', [Leaderboard.RANGE_DAILY], reverse=True, redis=self.r) bt.set_metric('first', 100.0) bt.set_metric('second', 100.0) bt.set_metric('zzzzz', 100.0) total, start, end, l = bt.leaders(Leaderboard.RANGE_DAILY, 10) print l self.assertEquals(l[0][0], 'zzzzz') bt.clear_all() bt = Leaderboard('ties', 'hs', [Leaderboard.RANGE_DAILY], reverse=False, redis=self.r) bt.set_metric('first', 100.0) bt.set_metric('second', 100.0) bt.set_metric('aaaaa', 100.0) total, start, end, l = bt.leaders(Leaderboard.RANGE_DAILY, 10) print l self.assertEquals(l[0][0], 'aaaaa') bt.clear_all()
def _setup_board(self): b = Leaderboard('combat', 'rank', [Leaderboard.RANGE_DAILY], reverse=False, redis=self.r) for i in range(1, self.size + 1): b.set_metric('player' + str(i), i) return b