TwT-6's picture
Upload 2667 files
256a159 verified
import unittest
from opencompass.datasets.humaneval import humaneval_postprocess
def run_humaneval_check(completion):
program = [
'def get_fraction(x: float) -> float:',
humaneval_postprocess(completion),
'',
'assert get_fraction(1.28) == 0.28',
'assert get_fraction(1.0) == 0.0',
]
program = '\n'.join(program)
exec(program)
class TestHumaneval(unittest.TestCase):
def test_vanilla(self):
raw = ' return x - int(x)'
run_humaneval_check(raw)
def test_python_quote(self):
lines = [
'```python',
' return x - int(x)',
'```',
]
raw = '\n'.join(lines)
run_humaneval_check(raw)
def test_bare_quote(self):
lines = [
'```',
' return x - int(x)',
'```',
]
raw = '\n'.join(lines)
run_humaneval_check(raw)
def test_error_space_quote(self):
lines = [
'```',
' return x - int(x)',
'```',
]
raw = '\n'.join(lines)
run_humaneval_check(raw)
def test_import_1(self):
lines = [
'import numpy as np',
'import math',
'from typing import List',
'',
'def func(x):',
' return x - int(x)',
]
raw = '\n'.join(lines)
run_humaneval_check(raw)
def test_import_2(self):
lines = [
'from typing import List',
'import numpy as np',
'import math',
'def func(x):',
' return x - int(x)',
]
raw = '\n'.join(lines)
run_humaneval_check(raw)
def test_import_3(self):
lines = [
'import math',
'',
'',
'def func(x):',
' return x - int(x)',
]
raw = '\n'.join(lines)
run_humaneval_check(raw)
def test_comment(self):
lines = [
'def func(x: float) -> float:',
" '''",
' blah blah blah',
' blah blah blah',
" '''",
' return x - int(x)',
]
raw = '\n'.join(lines)
run_humaneval_check(raw)
def test_additional(self):
lines = [
' return x - int(x)',
'',
'',
'def func(x: float) -> float:',
" '''",
' blah blah blah',
' blah blah blah',
" '''",
' return x - int(x)',
]
raw = '\n'.join(lines)
run_humaneval_check(raw)