Skip to content

Latest commit

 

History

History
199 lines (195 loc) · 5.01 KB

File metadata and controls

199 lines (195 loc) · 5.01 KB

Results of Code LLama 34B on HumanEval/128

Date: 01 September, 2023
Model: codellama-34b-instruct
Temperature: 0.2
Passing runs: 10
Total runs: 10
Success rate: 100%

Prompt

def prod_signs(arr):
    """
    You are given an array arr of integers and you need to return
    sum of magnitudes of integers multiplied by product of all signs
    of each number in the array, represented by 1, -1 or 0.
    Note: return None for empty arr.

    Example:
    >>> prod_signs([1, 2, 2, -4]) == -9
    >>> prod_signs([0, 1]) == 0
    >>> prod_signs([]) == None
    """

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

Correct solution

def prod_signs(arr):
    """
    You are given an array arr of integers and you need to return
    sum of magnitudes of integers multiplied by product of all signs
    of each number in the array, represented by 1, -1 or 0.
    Note: return None for empty arr.

    Example:
    >>> prod_signs([1, 2, 2, -4]) == -9
    >>> prod_signs([0, 1]) == 0
    >>> prod_signs([]) == None
    """if not arr: return None
    prod = 0 if 0 in arr else (-1) ** len(list(filter(lambda x: x < 0, arr)))
    return prod * sum([abs(i) for i in arr])

Unit tests

def check(candidate):

    # Check some simple cases
    assert True, "This prints if this assert fails 1 (good for debugging!)"
    assert candidate([1, 2, 2, -4]) == -9
    assert candidate([0, 1]) == 0
    assert candidate([1, 1, 1, 2, 3, -1, 1]) == -10
    assert candidate([]) == None
    assert candidate([2, 4,1, 2, -1, -1, 9]) == 20
    assert candidate([-1, 1, -1, 1]) == 4
    assert candidate([-1, 1, 1, 1]) == -4
    assert candidate([-1, 1, 1, 0]) == 0

    # 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!)"

Runs

✅ Run 1

Start time: 2023-09-01 02:46:31
Duration: 5.3s
Result: Pass

def prod_signs(arr):
    if not arr:
        return None
    signs = [1 if x > 0 else -1 if x < 0 else 0 for x in arr]
    product = 1
    for s in signs:
        product *= s
    return sum(abs(x) for x in arr) * product

✅ Run 2

Start time: 2023-09-01 02:49:28
Duration: 6.98s
Result: Pass

def prod_signs(arr):
    if not arr:
        return None
    signs = [1 if x > 0 else -1 if x < 0 else 0 for x in arr]
    prod = 1
    for s in signs:
        prod *= s
    return sum(abs(x) for x in arr) * prod

✅ Run 3

Start time: 2023-09-01 02:52:26
Duration: 5.12s
Result: Pass

def prod_signs(arr):
    if not arr:
        return None
    signs = [1 if x > 0 else -1 if x < 0 else 0 for x in arr]
    prod = 1
    for s in signs:
        prod *= s
    return sum(abs(x) for x in arr) * prod

✅ Run 4

Start time: 2023-09-01 02:55:19
Duration: 6.14s
Result: Pass

def prod_signs(arr):
    if not arr:
        return None
    signs = [1 if x > 0 else -1 if x < 0 else 0 for x in arr]
    product = 1
    for s in signs:
        product *= s
    return sum(abs(x) for x in arr) * product

✅ Run 5

Start time: 2023-09-01 02:58:18
Duration: 5.01s
Result: Pass

def prod_signs(arr):
    if not arr:
        return None
    signs = [1 if x > 0 else -1 if x < 0 else 0 for x in arr]
    product = 1
    for s in signs:
        product *= s
    return sum(abs(x) for x in arr) * product

✅ Run 6

Start time: 2023-09-01 03:01:22
Duration: 5.45s
Result: Pass

def prod_signs(arr):
    if not arr:
        return None
    signs = [1 if x > 0 else -1 if x < 0 else 0 for x in arr]
    prod = 1
    for s in signs:
        prod *= s
    return sum(abs(x) for x in arr) * prod

✅ Run 7

Start time: 2023-09-01 03:04:20
Duration: 5.12s
Result: Pass

def prod_signs(arr):
    if not arr:
        return None
    signs = [1 if x > 0 else -1 if x < 0 else 0 for x in arr]
    product = 1
    for s in signs:
        product *= s
    return sum(abs(x) for x in arr) * product

✅ Run 8

Start time: 2023-09-01 03:07:22
Duration: 5.29s
Result: Pass

def prod_signs(arr):
    if not arr:
        return None
    signs = [1 if x > 0 else -1 if x < 0 else 0 for x in arr]
    product = 1
    for s in signs:
        product *= s
    return sum(abs(x) for x in arr) * product

✅ Run 9

Start time: 2023-09-01 03:10:25
Duration: 5.52s
Result: Pass

def prod_signs(arr):
    if not arr:
        return None
    signs = [1 if x > 0 else -1 if x < 0 else 0 for x in arr]
    product = 1
    for s in signs:
        product *= s
    return sum(abs(x) * product for x in arr)

✅ Run 10

Start time: 2023-09-01 03:13:22
Duration: 5.53s
Result: Pass

def prod_signs(arr):
    if not arr:
        return None
    signs = [1 if x > 0 else -1 if x < 0 else 0 for x in arr]
    product = 1
    for s in signs:
        product *= s
    return sum(abs(x) for x in arr) * product