当前位置: 首页>>代码示例>>Python>>正文


Python models.Score类代码示例

本文整理汇总了Python中foldit.models.Score的典型用法代码示例。如果您正苦于以下问题:Python Score类的具体用法?Python Score怎么用?Python Score使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Score类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_SetPlayerPuzzleScores_manyplayers

    def test_SetPlayerPuzzleScores_manyplayers(self):
        """
        Check that when we send scores from multiple users, the correct order
        of scores is displayed. Note that, before being processed by
        display_score, lower scores are better.
        """
        puzzle_id = ['1']
        player1_score = 0.08
        player2_score = 0.02
        response1 = self.make_puzzle_score_request(puzzle_id, player1_score,
                self.user)

        # There should now be a score in the db.
        top_10 = Score.get_tops_n(10, puzzle_id)
        self.assertEqual(len(top_10), 1)
        self.assertEqual(top_10[0]['score'], Score.display_score(player1_score))

        response2 = self.make_puzzle_score_request(puzzle_id, player2_score,
                self.user2)

        # There should now be two scores in the db
        top_10 = Score.get_tops_n(10, puzzle_id)
        self.assertEqual(len(top_10), 2)

        # Top score should be player2_score. Second should be player1_score
        self.assertAlmostEqual(top_10[0]['score'],
                Score.display_score(player2_score),
                delta=0.5)
        self.assertAlmostEqual(top_10[1]['score'],
                Score.display_score(player1_score),
                delta=0.5)

        # Top score user should be self.user2.username
        self.assertEqual(top_10[0]['username'], self.user2.username)
开发者ID:2bj,项目名称:edx-platform,代码行数:34,代码来源:tests.py

示例2: test_SetPlayerPuzzleScores_multiple_courses

    def test_SetPlayerPuzzleScores_multiple_courses(self):  # pylint: disable=invalid-name
        puzzle_id = "1"

        player1_score = 0.05
        player2_score = 0.06

        course_list_1 = [self.course_id]
        course_list_2 = [self.course_id2]

        self.make_puzzle_score_request(puzzle_id, player1_score, self.user)

        course_1_top_10 = Score.get_tops_n(10, puzzle_id, course_list_1)
        course_2_top_10 = Score.get_tops_n(10, puzzle_id, course_list_2)
        total_top_10 = Score.get_tops_n(10, puzzle_id)

        #  player1 should now be in the top 10 of course 1 and not in course 2
        self.assertEqual(len(course_1_top_10), 1)
        self.assertEqual(len(course_2_top_10), 0)
        self.assertEqual(len(total_top_10), 1)

        self.make_puzzle_score_request(puzzle_id, player2_score, self.user2)

        course_2_top_10 = Score.get_tops_n(10, puzzle_id, course_list_2)
        total_top_10 = Score.get_tops_n(10, puzzle_id)

        #  player2 should now be in the top 10 of course 2 and not in course 1
        self.assertEqual(len(course_1_top_10), 1)
        self.assertEqual(len(course_2_top_10), 1)
        self.assertEqual(len(total_top_10), 2)
开发者ID:akbargumbira,项目名称:Labster.EdX,代码行数:29,代码来源:tests.py

示例3: test_SetPlayerPuzzleScores

    def test_SetPlayerPuzzleScores(self):

        puzzle_id = 994391
        best_score = 0.078034
        response = self.make_puzzle_score_request(puzzle_id, [best_score])

        self.assertEqual(response.content, json.dumps(
            [{"OperationID": "SetPlayerPuzzleScores",
              "Value": [{
                  "PuzzleID": puzzle_id,
                  "Status": "Success"}]}]))

        # There should now be a score in the db.
        top_10 = Score.get_tops_n(10, puzzle_id)
        self.assertEqual(len(top_10), 1)
        self.assertEqual(top_10[0]['score'], Score.display_score(best_score))
开发者ID:Fyre91,项目名称:edx-platform,代码行数:16,代码来源:tests.py

示例4: puzzle_leaders

    def puzzle_leaders(self, n=10):
        """
        Returns a list of n pairs (user, score) corresponding to the top
        scores; the pairs are in descending order of score.
        """
        from foldit.models import Score

        leaders = [(e['username'], e['score']) for e in Score.get_tops_n(10)]
        leaders.sort(key=lambda x:-x[1])

        return leaders
开发者ID:helanhe,项目名称:edx-platform,代码行数:11,代码来源:foldit_module.py

示例5: save_scores

def save_scores(user, puzzle_scores):
    score_responses = []
    for score in puzzle_scores:
        log.debug("score: %s", score)
        # expected keys ScoreType, PuzzleID (int),
        # BestScore (energy), CurrentScore (Energy), ScoreVersion (int)

        puzzle_id = score['PuzzleID']
        best_score = score['BestScore']
        current_score = score['CurrentScore']
        score_version = score['ScoreVersion']

        # SetPlayerPuzzleScoreResponse object
        # Score entries are unique on
        # user/unique_user_id/puzzle_id/score_version
        try:
            obj = Score.objects.get(
                user=user,
                unique_user_id=unique_id_for_user(user),
                puzzle_id=puzzle_id,
                score_version=score_version)
            obj.current_score = current_score
            obj.best_score = best_score

        except Score.DoesNotExist:
            obj = Score(
                user=user,
                unique_user_id=unique_id_for_user(user),
                puzzle_id=puzzle_id,
                current_score=current_score,
                best_score=best_score,
                score_version=score_version)
        obj.save()

        score_responses.append({'PuzzleID': puzzle_id,
                                'Status': 'Success'})

    return {"OperationID": "SetPlayerPuzzleScores", "Value": score_responses}
开发者ID:,项目名称:,代码行数:38,代码来源:

示例6: puzzle_leaders

    def puzzle_leaders(self, n=10, courses=None):
        """
        Returns a list of n pairs (user, score) corresponding to the top
        scores; the pairs are in descending order of score.
        """
        from foldit.models import Score

        if courses is None:
            courses = [self.location.course_key]

        leaders = [(leader['username'], leader['score']) for leader in Score.get_tops_n(10, course_list=courses)]
        leaders.sort(key=lambda x: -x[1])

        return leaders
开发者ID:189140879,项目名称:edx-platform,代码行数:14,代码来源:foldit_module.py

示例7: test_SetPlayerPuzzleScores_multiple

    def test_SetPlayerPuzzleScores_multiple(self):
        """
        Check that multiple posts with the same id are handled properly
        (keep latest for each user, have multiple users work properly)
        """
        orig_score = 0.07
        puzzle_id = '1'
        response = self.make_puzzle_score_request([puzzle_id], [orig_score])

        # There should now be a score in the db.
        top_10 = Score.get_tops_n(10, puzzle_id)
        self.assertEqual(len(top_10), 1)
        self.assertEqual(top_10[0]['score'], Score.display_score(orig_score))

        # Reporting a better score should overwrite
        better_score = 0.06
        response = self.make_puzzle_score_request([1], [better_score])

        top_10 = Score.get_tops_n(10, puzzle_id)
        self.assertEqual(len(top_10), 1)

        # Floats always get in the way, so do almostequal
        self.assertAlmostEqual(
            top_10[0]['score'],
            Score.display_score(better_score),
            delta=0.5
        )

        # reporting a worse score shouldn't
        worse_score = 0.065
        response = self.make_puzzle_score_request([1], [worse_score])

        top_10 = Score.get_tops_n(10, puzzle_id)
        self.assertEqual(len(top_10), 1)
        # should still be the better score
        self.assertAlmostEqual(
            top_10[0]['score'],
            Score.display_score(better_score),
            delta=0.5
        )
开发者ID:Fyre91,项目名称:edx-platform,代码行数:40,代码来源:tests.py


注:本文中的foldit.models.Score类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。