Skip to content

Latest commit

 

History

History
213 lines (204 loc) · 4.9 KB

File metadata and controls

213 lines (204 loc) · 4.9 KB

Results of GPT-3.5 on HumanEval/99

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

Prompt

Tokens: 182

def closest_integer(value):
    '''
    Create a function that takes a value (string) representing a number
    and returns the closest integer to it. If the number is equidistant
    from two integers, round it away from zero.

    Examples
    >>> closest_integer("10")
    10
    >>> closest_integer("15.3")
    15

    Note:
    Rounding away from zero means that if the given number is equidistant
    from two integers, the one you should return is the one that is the
    farthest from zero. For example closest_integer("14.5") should
    return 15 and closest_integer("-14.5") should return -15.
    '''

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

Correct solution

def closest_integer(value):
    '''
    Create a function that takes a value (string) representing a number
    and returns the closest integer to it. If the number is equidistant
    from two integers, round it away from zero.

    Examples
    >>> closest_integer("10")
    10
    >>> closest_integer("15.3")
    15

    Note:
    Rounding away from zero means that if the given number is equidistant
    from two integers, the one you should return is the one that is the
    farthest from zero. For example closest_integer("14.5") should
    return 15 and closest_integer("-14.5") should return -15.
    '''from math import floor, ceil

    if value.count('.') == 1:
        # remove trailing zeros
        while (value[-1] == '0'):
            value = value[:-1]

    num = float(value)
    if value[-2:] == '.5':
        if num > 0:
            res = ceil(num)
        else:
            res = floor(num)
    elif len(value) > 0:
        res = int(round(num))
    else:
        res = 0

    return res

Unit tests

def check(candidate):

    # Check some simple cases
    assert candidate("10") == 10, "Test 1"
    assert candidate("14.5") == 15, "Test 2"
    assert candidate("-15.5") == -16, "Test 3"
    assert candidate("15.3") == 15, "Test 3"

    # Check some edge cases that are easy to work out by hand.
    assert candidate("0") == 0, "Test 0"

Runs

✅ Run 1

Start time: 2023-07-18 17:13:01
Duration: 2.01s
Completion tokens: 41
Result: Pass

def closest_integer(value):
    num = float(value)
    if num >= 0:
        return int(num + 0.5)
    else:
        return int(num - 0.5)

✅ Run 2

Start time: 2023-07-18 17:12:59
Duration: 1.96s
Completion tokens: 41
Result: Pass

def closest_integer(value):
    num = float(value)
    if num >= 0:
        return int(num + 0.5)
    else:
        return int(num - 0.5)

✅ Run 3

Start time: 2023-07-18 17:12:57
Duration: 2.05s
Completion tokens: 41
Result: Pass

def closest_integer(value):
    num = float(value)
    if num >= 0:
        return int(num + 0.5)
    else:
        return int(num - 0.5)

✅ Run 4

Start time: 2023-07-18 17:12:54
Duration: 2.49s
Completion tokens: 41
Result: Pass

def closest_integer(value):
    num = float(value)
    if num >= 0:
        return int(num + 0.5)
    else:
        return int(num - 0.5)

✅ Run 5

Start time: 2023-07-18 17:12:52
Duration: 2.39s
Completion tokens: 41
Result: Pass

def closest_integer(value):
    num = float(value)
    if num >= 0:
        return int(num + 0.5)
    else:
        return int(num - 0.5)

✅ Run 6

Start time: 2023-07-18 17:12:49
Duration: 2.37s
Completion tokens: 41
Result: Pass

def closest_integer(value):
    num = float(value)
    if num >= 0:
        return int(num + 0.5)
    else:
        return int(num - 0.5)

✅ Run 7

Start time: 2023-07-18 17:12:47
Duration: 2.36s
Completion tokens: 41
Result: Pass

def closest_integer(value):
    num = float(value)
    if num >= 0:
        return int(num + 0.5)
    else:
        return int(num - 0.5)

✅ Run 8

Start time: 2023-07-18 17:12:44
Duration: 2.46s
Completion tokens: 41
Result: Pass

def closest_integer(value):
    num = float(value)
    if num >= 0:
        return int(num + 0.5)
    else:
        return int(num - 0.5)

✅ Run 9

Start time: 2023-07-18 17:12:42
Duration: 2.32s
Completion tokens: 41
Result: Pass

def closest_integer(value):
    num = float(value)
    if num >= 0:
        return int(num + 0.5)
    else:
        return int(num - 0.5)

✅ Run 10

Start time: 2023-07-18 17:12:39
Duration: 2.38s
Completion tokens: 41
Result: Pass

def closest_integer(value):
    num = float(value)
    if num >= 0:
        return int(num + 0.5)
    else:
        return int(num - 0.5)