mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
import json
|
|
import re
|
|
|
|
|
|
def check_coverage(coverage_output, code_file):
|
|
json_cov = json.loads(coverage_output)
|
|
if code_file in json_cov['files'].keys():
|
|
file_data = json_cov['files'][code_file]
|
|
return True, file_data['summary']['percent_covered']
|
|
|
|
return False, 0
|
|
|
|
|
|
def check_mutation(mutation_output):
|
|
if 'total jobs: ' in mutation_output:
|
|
num_mutants = int(mutation_output.split('total jobs: ')[1].split('\n')[0])
|
|
final_conf = mutation_output.split('\n')[-1]
|
|
if len(final_conf.strip().split(' ')) == 3:
|
|
low, val, high = final_conf.split(' ')
|
|
low = float(low)
|
|
val = float(val)
|
|
high = float(high)
|
|
|
|
confidence_range = high - val
|
|
mutation_score = 100 - val
|
|
|
|
return True, num_mutants, mutation_score, confidence_range
|
|
|
|
return False, -1, 0, -1
|
|
|
|
|
|
def count_methods(code_str):
|
|
"""Counts the number of methods/functions in a given string of code.
|
|
|
|
Args:
|
|
code_str (str): A string containing code.
|
|
|
|
Returns:
|
|
int: The number of methods/functions found.
|
|
"""
|
|
# Regular expression to find Python function definitions
|
|
pattern = r'\bdef\b\s+\w+\s*\('
|
|
matches = re.findall(pattern, code_str)
|
|
return len(matches)
|
|
|
|
|
|
def get_lines_of_code(code_str):
|
|
"""Extracts lines of code from a given string.
|
|
|
|
Args:
|
|
code_str (str): A string containing code.
|
|
|
|
Returns:
|
|
list: A list of lines of code.
|
|
"""
|
|
return len(code_str.strip().split('\n'))
|