Files
@ c234eb08d816
Branch filter:
Location: Rank-Progress/test.py - annotation
c234eb08d816
1.8 KiB
text/x-python
fixed wrong rating reset
6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 9598ea1d80e2 9598ea1d80e2 9598ea1d80e2 9598ea1d80e2 9598ea1d80e2 9598ea1d80e2 9598ea1d80e2 9598ea1d80e2 9598ea1d80e2 9598ea1d80e2 9598ea1d80e2 6644c5267fb5 6644c5267fb5 9598ea1d80e2 9598ea1d80e2 6644c5267fb5 6644c5267fb5 9598ea1d80e2 9598ea1d80e2 6644c5267fb5 6644c5267fb5 6644c5267fb5 9598ea1d80e2 9598ea1d80e2 9598ea1d80e2 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 6644c5267fb5 | from unittest import TestCase
from rank_progress import RankTracker
class TestRankTracker(TestCase):
def test_no_change(self):
t = RankTracker(1945) # 2k
for r in [1945, 1949, 1900, 1850]:
self.assertFalse(t.update(r), r)
def test_promotion(self):
# basic
t = RankTracker(1945)
for (rating, rank) in [(1950, "1k"), (1945, False), (2000, False), (2049, False), (2051, "1d")]:
self.assertEqual(t.update(rating), rank, (rating, rank))
# 2+ ranks leaps
# limited when pushing the personal best
t = RankTracker(1100)
self.assertEqual(t.update(1299), "9k")
self.assertEqual(t.update(1250), "8k")
self.assertEqual(t.update(1500), "6k")
# regular below the personal best
t = RankTracker(1201) # 9k
t.update(1000)
t.update(900)
t.update(849) # 11k
self.assertEqual(t.update(1250), "8k")
def test_repeated_promotion(self):
t = RankTracker(1945)
self.assertEqual(t.update(1950), "1k")
self.assertFalse(t.update(1895))
self.assertEqual(t.rank, "2k")
self.assertFalse(t.update( 1951))
self.assertEqual(t.rank, "1k")
self.assertFalse(t.update(2049))
self.assertEqual(t.update(2051), "1d")
def test_demotion(self):
t = RankTracker(2069)
self.assertFalse(t.update(1995)) # 1k
self.assertEqual(t.rank, "1k")
t = RankTracker(1590)
self.assertFalse(t.update(1387)) # 7k
self.assertEqual(t.rank, "7k")
t = RankTracker(1087)
self.assertFalse(t.update(995))
self.assertEqual(t.rank, "10k")
self.assertFalse(t.update(940)) # 11k
self.assertEqual(t.rank, "11k")
def test_edges_cases(self):
t = RankTracker(-900)
self.assertEqual(t.rank, "30k")
with self.assertRaises(AssertionError):
t.update(-901)
t = RankTracker(2700)
self.assertEqual(t.rank, "7d")
self.assertFalse(t.update(2750))
self.assertFalse(t.update(2800))
|