Skip to content

Latest commit

 

History

History
235 lines (231 loc) · 5.84 KB

File metadata and controls

235 lines (231 loc) · 5.84 KB

Results of GPT-3.5 on HumanEval/70

Date: 18 July, 2023
Model: gpt-3.5-turbo
Temperature: 0.2
Passing runs: 7
Total runs: 10
Success rate: 70%

Prompt

Tokens: 150

def strange_sort_list(lst):
    '''
    Given list of integers, return list in strange order.
    Strange sorting, is when you start with the minimum value,
    then maximum of the remaining integers, then minimum and so on.

    Examples:
    strange_sort_list([1, 2, 3, 4]) == [1, 4, 2, 3]
    strange_sort_list([5, 5, 5, 5]) == [5, 5, 5, 5]
    strange_sort_list([]) == []
    '''

The above is an incomplete Python code fragment. Return the complete and correct code with no additional text.

Correct solution

def strange_sort_list(lst):
    '''
    Given list of integers, return list in strange order.
    Strange sorting, is when you start with the minimum value,
    then maximum of the remaining integers, then minimum and so on.

    Examples:
    strange_sort_list([1, 2, 3, 4]) == [1, 4, 2, 3]
    strange_sort_list([5, 5, 5, 5]) == [5, 5, 5, 5]
    strange_sort_list([]) == []
    '''res, switch = [], True
    while lst:
        res.append(min(lst) if switch else max(lst))
        lst.remove(res[-1])
        switch = not switch
    return res

Unit tests

def check(candidate):

    # Check some simple cases
    assert candidate([1, 2, 3, 4]) == [1, 4, 2, 3]
    assert candidate([5, 6, 7, 8, 9]) == [5, 9, 6, 8, 7]
    assert candidate([1, 2, 3, 4, 5]) == [1, 5, 2, 4, 3]
    assert candidate([5, 6, 7, 8, 9, 1]) == [1, 9, 5, 8, 6, 7]
    assert candidate([5, 5, 5, 5]) == [5, 5, 5, 5]
    assert candidate([]) == []
    assert candidate([1,2,3,4,5,6,7,8]) == [1, 8, 2, 7, 3, 6, 4, 5]
    assert candidate([0,2,2,2,5,5,-5,-5]) == [-5, 5, -5, 5, 0, 2, 2, 2]
    assert candidate([111111]) == [111111]

    # Check some edge cases that are easy to work out by hand.
    assert True

Runs

✅ Run 1

Start time: 2023-07-18 17:17:09
Duration: 2.63s
Completion tokens: 63
Result: Pass

def strange_sort_list(lst):
    sorted_lst = []
    while lst:
        min_val = min(lst)
        sorted_lst.append(min_val)
        lst.remove(min_val)
        if lst:
            max_val = max(lst)
            sorted_lst.append(max_val)
            lst.remove(max_val)
    return sorted_lst

❌ Run 2

Start time: 2023-07-18 17:17:05
Duration: 3.11s
Completion tokens: 59
Result: Fail

def strange_sort_list(lst):
    sorted_lst = []
    while lst:
        min_val = min(lst)
        max_val = max(lst)
        sorted_lst.append(min_val)
        sorted_lst.append(max_val)
        lst.remove(min_val)
        lst.remove(max_val)
    return sorted_lst

✅ Run 3

Start time: 2023-07-18 17:17:03
Duration: 2.85s
Completion tokens: 63
Result: Pass

def strange_sort_list(lst):
    sorted_lst = []
    while lst:
        min_val = min(lst)
        sorted_lst.append(min_val)
        lst.remove(min_val)
        if lst:
            max_val = max(lst)
            sorted_lst.append(max_val)
            lst.remove(max_val)
    return sorted_lst

✅ Run 4

Start time: 2023-07-18 17:17:00
Duration: 2.96s
Completion tokens: 63
Result: Pass

def strange_sort_list(lst):
    sorted_lst = []
    while lst:
        min_val = min(lst)
        sorted_lst.append(min_val)
        lst.remove(min_val)
        if lst:
            max_val = max(lst)
            sorted_lst.append(max_val)
            lst.remove(max_val)
    return sorted_lst

❌ Run 5

Start time: 2023-07-18 17:16:57
Duration: 2.77s
Completion tokens: 59
Result: Fail

def strange_sort_list(lst):
    sorted_lst = []
    while lst:
        min_val = min(lst)
        max_val = max(lst)
        sorted_lst.append(min_val)
        sorted_lst.append(max_val)
        lst.remove(min_val)
        lst.remove(max_val)
    return sorted_lst

❌ Run 6

Start time: 2023-07-18 17:16:54
Duration: 2.92s
Completion tokens: 59
Result: Fail

def strange_sort_list(lst):
    sorted_lst = []
    while lst:
        min_val = min(lst)
        max_val = max(lst)
        sorted_lst.append(min_val)
        sorted_lst.append(max_val)
        lst.remove(min_val)
        lst.remove(max_val)
    return sorted_lst

✅ Run 7

Start time: 2023-07-18 17:16:51
Duration: 2.88s
Completion tokens: 63
Result: Pass

def strange_sort_list(lst):
    sorted_lst = []
    while lst:
        min_val = min(lst)
        sorted_lst.append(min_val)
        lst.remove(min_val)
        if lst:
            max_val = max(lst)
            sorted_lst.append(max_val)
            lst.remove(max_val)
    return sorted_lst

✅ Run 8

Start time: 2023-07-18 17:16:49
Duration: 2.11s
Completion tokens: 43
Result: Pass

def strange_sort_list(lst):
    sorted_lst = []
    lst.sort()
    while lst:
        sorted_lst.append(lst.pop(0))
        if lst:
            sorted_lst.append(lst.pop())
    return sorted_lst

✅ Run 9

Start time: 2023-07-18 17:16:46
Duration: 2.67s
Completion tokens: 63
Result: Pass

def strange_sort_list(lst):
    sorted_lst = []
    while lst:
        min_val = min(lst)
        sorted_lst.append(min_val)
        lst.remove(min_val)
        if lst:
            max_val = max(lst)
            sorted_lst.append(max_val)
            lst.remove(max_val)
    return sorted_lst

✅ Run 10

Start time: 2023-07-18 17:16:43
Duration: 2.74s
Completion tokens: 63
Result: Pass

def strange_sort_list(lst):
    sorted_lst = []
    while lst:
        min_val = min(lst)
        sorted_lst.append(min_val)
        lst.remove(min_val)
        if lst:
            max_val = max(lst)
            sorted_lst.append(max_val)
            lst.remove(max_val)
    return sorted_lst