def METHOD_NAME():
    phase = PhaseFactory()
    user1 = UserFactory()
    user2 = UserFactory()
    metrics = "metrics"
    creator = "creator"
    results = [
        {metrics: {"b": 0.3}, creator: user1},  # Invalid result
        {metrics: {"a": 0.6}, creator: user1},
        {metrics: {"a": 0.4}, creator: user1},
        {metrics: {"a": 0.2}, creator: user1},
        {metrics: {"a": 0.1}, creator: user2},
        {metrics: {"a": 0.5}, creator: user2},
        {metrics: {"a": 0.3}, creator: user2},
    ]
    queryset = [
        EvaluationFactory(
            submission__phase=phase,
            submission__creator=r[creator],
            status=Evaluation.SUCCESS,
        )
        for r in results
    ]
    for e, r in zip(queryset, results, strict=True):
        e.outputs.add(
            ComponentInterfaceValue.objects.create(
                interface=ComponentInterface.objects.get(
                    slug="metrics-json-file"
                ),
                value=r[metrics],
            )
        )
    phase.score_jsonpath = "a"
    phase.result_display_choice = Phase.ALL
    phase.save()
    calculate_ranks(phase_pk=phase.pk)
    expected_ranks = [0, 1, 3, 5, 6, 2, 4]
    assert_ranks(queryset, expected_ranks)
    phase.result_display_choice = Phase.MOST_RECENT
    phase.save()
    calculate_ranks(phase_pk=phase.pk)
    expected_ranks = [0, 0, 0, 2, 0, 0, 1]
    assert_ranks(queryset, expected_ranks)
    phase.result_display_choice = Phase.BEST
    phase.save()
    calculate_ranks(phase_pk=phase.pk)
    expected_ranks = [0, 1, 0, 0, 0, 2, 0]
    assert_ranks(queryset, expected_ranks)
    # now test reverse order
    phase.score_default_sort = phase.ASCENDING
    phase.save()
    calculate_ranks(phase_pk=phase.pk)
    expected_ranks = [0, 0, 0, 2, 1, 0, 0]
    assert_ranks(queryset, expected_ranks)
    phase.result_display_choice = Phase.MOST_RECENT
    phase.save()
    calculate_ranks(phase_pk=phase.pk)
    expected_ranks = [0, 0, 0, 1, 0, 0, 2]
    assert_ranks(queryset, expected_ranks)