Skip to content

Latest commit

 

History

History
205 lines (194 loc) · 5.52 KB

File metadata and controls

205 lines (194 loc) · 5.52 KB

Results of GPT-3.5 on HumanEval/74

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

Prompt

Tokens: 219

def total_match(lst1, lst2):
    '''
    Write a function that accepts two lists of strings and returns the list that has 
    total number of chars in the all strings of the list less than the other list.

    if the two lists have the same number of chars, return the first list.

    Examples
    total_match([], []) ➞ []
    total_match(['hi', 'admin'], ['hI', 'Hi']) ➞ ['hI', 'Hi']
    total_match(['hi', 'admin'], ['hi', 'hi', 'admin', 'project']) ➞ ['hi', 'admin']
    total_match(['hi', 'admin'], ['hI', 'hi', 'hi']) ➞ ['hI', 'hi', 'hi']
    total_match(['4'], ['1', '2', '3', '4', '5']) ➞ ['4']
    '''

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

Correct solution

def total_match(lst1, lst2):
    '''
    Write a function that accepts two lists of strings and returns the list that has 
    total number of chars in the all strings of the list less than the other list.

    if the two lists have the same number of chars, return the first list.

    Examples
    total_match([], []) ➞ []
    total_match(['hi', 'admin'], ['hI', 'Hi']) ➞ ['hI', 'Hi']
    total_match(['hi', 'admin'], ['hi', 'hi', 'admin', 'project']) ➞ ['hi', 'admin']
    total_match(['hi', 'admin'], ['hI', 'hi', 'hi']) ➞ ['hI', 'hi', 'hi']
    total_match(['4'], ['1', '2', '3', '4', '5']) ➞ ['4']
    '''l1 = 0
    for st in lst1:
        l1 += len(st)
    
    l2 = 0
    for st in lst2:
        l2 += len(st)
    
    if l1 <= l2:
        return lst1
    else:
        return lst2

Unit tests

def check(candidate):

    # Check some simple cases
    assert True, "This prints if this assert fails 1 (good for debugging!)"
    assert candidate([], []) == []
    assert candidate(['hi', 'admin'], ['hi', 'hi']) == ['hi', 'hi']
    assert candidate(['hi', 'admin'], ['hi', 'hi', 'admin', 'project']) == ['hi', 'admin']
    assert candidate(['4'], ['1', '2', '3', '4', '5']) == ['4']
    assert candidate(['hi', 'admin'], ['hI', 'Hi']) == ['hI', 'Hi']
    assert candidate(['hi', 'admin'], ['hI', 'hi', 'hi']) == ['hI', 'hi', 'hi']
    assert candidate(['hi', 'admin'], ['hI', 'hi', 'hii']) == ['hi', 'admin']


    # Check some edge cases that are easy to work out by hand.
    assert True, "This prints if this assert fails 2 (also good for debugging!)"
    assert candidate([], ['this']) == []
    assert candidate(['this'], []) == []

Runs

✅ Run 1

Start time: 2023-07-18 17:16:38
Duration: 3.36s
Completion tokens: 83
Result: Pass

def total_match(lst1, lst2):
    total_chars_lst1 = sum(len(s) for s in lst1)
    total_chars_lst2 = sum(len(s) for s in lst2)
    
    if total_chars_lst1 < total_chars_lst2:
        return lst1
    elif total_chars_lst1 > total_chars_lst2:
        return lst2
    else:
        return lst1

❌ Run 2

Start time: 2023-07-18 17:16:36
Duration: 2.47s
Completion tokens: 44
Result: Fail

def total_match(lst1, lst2):
    if sum(len(s) for s in lst1) < sum(len(s) for s in lst2):
        return lst1
    else:
        return lst2

❌ Run 3

Start time: 2023-07-18 17:16:33
Duration: 2.27s
Completion tokens: 44
Result: Fail

def total_match(lst1, lst2):
    if sum(len(s) for s in lst1) < sum(len(s) for s in lst2):
        return lst1
    else:
        return lst2

❌ Run 4

Start time: 2023-07-18 17:16:31
Duration: 2.21s
Completion tokens: 44
Result: Fail

def total_match(lst1, lst2):
    if sum(len(s) for s in lst1) < sum(len(s) for s in lst2):
        return lst1
    else:
        return lst2

❌ Run 5

Start time: 2023-07-18 17:16:29
Duration: 2.23s
Completion tokens: 44
Result: Fail

def total_match(lst1, lst2):
    if sum(len(s) for s in lst1) < sum(len(s) for s in lst2):
        return lst1
    else:
        return lst2

❌ Run 6

Start time: 2023-07-18 17:16:26
Duration: 2.57s
Completion tokens: 44
Result: Fail

def total_match(lst1, lst2):
    if sum(len(s) for s in lst1) < sum(len(s) for s in lst2):
        return lst1
    else:
        return lst2

❌ Run 7

Start time: 2023-07-18 17:16:24
Duration: 2.16s
Completion tokens: 44
Result: Fail

def total_match(lst1, lst2):
    if sum(len(s) for s in lst1) < sum(len(s) for s in lst2):
        return lst1
    else:
        return lst2

✅ Run 8

Start time: 2023-07-18 17:16:20
Duration: 3.33s
Completion tokens: 83
Result: Pass

def total_match(lst1, lst2):
    total_chars_lst1 = sum(len(s) for s in lst1)
    total_chars_lst2 = sum(len(s) for s in lst2)
    
    if total_chars_lst1 < total_chars_lst2:
        return lst1
    elif total_chars_lst1 > total_chars_lst2:
        return lst2
    else:
        return lst1

❌ Run 9

Start time: 2023-07-18 17:16:18
Duration: 2.51s
Completion tokens: 44
Result: Fail

def total_match(lst1, lst2):
    if sum(len(s) for s in lst1) < sum(len(s) for s in lst2):
        return lst1
    else:
        return lst2

❌ Run 10

Start time: 2023-07-18 17:16:16
Duration: 2.18s
Completion tokens: 44
Result: Fail

def total_match(lst1, lst2):
    if sum(len(s) for s in lst1) < sum(len(s) for s in lst2):
        return lst1
    else:
        return lst2