diff --git a/rank_progress.py b/rank_progress.py --- a/rank_progress.py +++ b/rank_progress.py @@ -36,6 +36,7 @@ class Record: class RankTracker: def __init__(self, rating): + assert rating >= -900 self._rounded_rating = round_rating(rating) @property @@ -43,22 +44,24 @@ class RankTracker: return rating_to_rank(self._rounded_rating) def update(self, rating): + assert rating >= -900 rounded_rating = round_rating(rating) + old_rank = self.rank if rounded_rating == self._rounded_rating: - return False + pass elif rounded_rating > self._rounded_rating: # promotion self._rounded_rating = rounded_rating - return self.rank else: # demotion - if rounded_rating >= 1500 and self._rounded_rating - rating > 100: + if self._rounded_rating >= 1600 and self._rounded_rating - rating > 100: self._rounded_rating = rounded_rating - return self.rank elif self._rounded_rating - rating > 150: self._rounded_rating = rounded_rating+100 - return self.rank else: - return False + pass + + new_rank = self.rank + return new_rank if new_rank != old_rank else False def parse_record(record):