mirror of
https://github.com/open-compass/opencompass.git
synced 2025-05-30 16:03:24 +08:00
111 lines
2.6 KiB
Python
111 lines
2.6 KiB
Python
![]() |
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)
|