DF Defect Lab
LOCALLY REPRODUCED RECONSTRUCTION

16개 microcase, 다섯 쌍의 반복

공개 사례에서 메커니즘을 추출해 독립 작성한 축소 계약입니다. 상류 벤치마크 전체 실행이나 TVB 재현이 아닙니다.

근거 라벨locally_reproduced_reconstruction
BASELINE · 5 REPEATSF1 0.987

precision 0.975 · recall 1.000

FEW-SHOT · 5 REPEATSF1 0.987

precision 0.975 · recall 1.000

무엇을 말할 수 있나

같은 16개 고정 사례에 대해 baseline과 알려진 결함 예시를 넣은 조건을 각각 5회 반복했습니다. 둘 다 평균 F1이 같았습니다. 작은 재구성, 네 개 계열, 통제되지 않은 sampling이므로 일반적인 우열을 주장하지 않습니다.

RUNS

반복별 결과

반복조건TPFP정밀도재현율F1
1baseline710.8751.0000.933
1fewshot701.0001.0001.000
2baseline701.0001.0001.000
2fewshot710.8751.0000.933
3baseline701.0001.0001.000
3fewshot701.0001.0001.000
4baseline701.0001.0001.000
4fewshot701.0001.0001.000
5baseline701.0001.0001.000
5fewshot701.0001.0001.000
CASES

재구성 16건

verified결함 재구성 · AiderPolyglot · vacuous_test_success
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력 test_results는 실행된 테스트 결과 bool 목록입니다. 이 과제는 제출한 테스트 모음이 실제로 적어도 한 개의 테스트를 실행하고 모두 통과했을 때만 합격입니다. 테스트가 0개면 합격으로 볼 수 없습니다. 함수는 점수를 bool로 반환합니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    return all(x["test_results"])

[실험 라벨]
defect — 재구성 계약 범위에서만 해석합니다.
verified결함 재구성 · CRUST · lower_false_positive
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력 hits,n은 정수이고 n>0, 0<=hits<=n입니다. p는 0~1 사이 목표 위양성 비율입니다. 비율이 목표보다 0.1을 초과하여 높을 때만 False를 반환해야 합니다. 더 낮은 위양성 비율은 허용합니다. 부동소수 경계 오차는 평가 대상에서 제외합니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    rate = x["hits"] / x["n"]
    return abs(rate - x["p"]) <= 0.1

[실험 라벨]
defect — 재구성 계약 범위에서만 해석합니다.
verified결함 재구성 · LiveCodeBench · dictionary_attribute
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력에는 rows가 있으며 각 행은 JSON object이고 {id:"execution_N",pred_list:[str]} 형태입니다. N은 서로 다른 음이 아닌 정수입니다. id의 N을 정수로 정렬한 뒤 pred_list 목록을 반환해야 합니다. rows가 비면 빈 목록입니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    return [r["pred_list"] for r in sorted(x["rows"],
            key=lambda r: int(r.id.split("_")[1]))]

[실험 라벨]
defect — 재구성 계약 범위에서만 해석합니다.
verified결함 재구성 · LiveCodeBench · not_fast_date
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력에는 fast(bool), start와 end(YYYY-MM-DD), rows([{id:str,date:YYYY-MM-DD}])가 있습니다. start<=end이며 날짜는 유효합니다. fast는 속도 선택일 뿐이며 어느 경로든 지정한 기간 안의 행 ID만 원래 순서로 반환해야 합니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    rows = x["rows"]
    if x["fast"]:
        rows = [r for r in rows if x["start"] <= r["date"] <= x["end"]]
    return [r["id"] for r in rows]

[실험 라벨]
defect — 재구성 계약 범위에서만 해석합니다.
verified결함 재구성 · LiveCodeBench · plain_code_extraction
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력 text는 빈 문자열이 아닌 Python 답변입니다. 답변은 순수 코드이거나 ```python과 ```로 둘러싼 단 하나의 코드 블록입니다. 코드 앞뒤 설명, 다른 fence, 내부 backtick은 없습니다. fence를 없앤 코드 본문을 strip하여 반환해야 합니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    lines = x["text"].splitlines()
    starts = [i for i, s in enumerate(lines) if s.startswith("```python")]
    if not starts:
        return ""
    begin = starts[0] + 1
    end = next(i for i in range(begin, len(lines)) if lines[i].startswith("```"))
    return "\n".join(lines[begin:end]).strip()

[실험 라벨]
defect — 재구성 계약 범위에서만 해석합니다.
verified결함 재구성 · LiveCodeBench · wheel_subpackages
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력은 files: 비어 있지 않은 Python 파일 경로 목록입니다. 모든 경로는 pkg/ 아래에 있고 각 하위 폴더에도 __init__.py가 있습니다. 일반 wheel에 pkg와 모든 하위 패키지의 파일을 포함해야 합니다. 아래 함수는 명시적 setuptools packages 목록의 선택 동작을 모델링합니다. 경로는 /로 구분하며 .py로 끝납니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    packages = {"pkg"}
    return [f for f in x["files"]
            if f.rsplit("/", 1)[0].replace("/", ".") in packages]

[실험 라벨]
defect — 재구성 계약 범위에서만 해석합니다.
verified결함 재구성 · TerminalBench2 · compile_artifact_rejection
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력 files는 평가 폴더에 있는 서로 다른 파일명 목록입니다. 제출 소스 solution.c.py가 있어야 합니다. 과제는 컴파일 산출물과 보조 파일을 삭제하라고 요구하지 않으며 파일이 추가로 있다는 이유로 실패시키면 안 됩니다. 소스가 없으면 False입니다. 소스의 동작 정확성은 별도 검사가 담당합니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    return sorted(x["files"]) == ["solution.c.py"]

[실험 라벨]
defect — 재구성 계약 범위에서만 해석합니다.
rejected정상 대조군 · AiderPolyglot · vacuous_test_success
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력 test_results는 실행된 테스트 결과 bool 목록입니다. 이 과제는 제출한 테스트 모음이 실제로 적어도 한 개의 테스트를 실행하고 모두 통과했을 때만 합격입니다. 테스트가 0개면 합격으로 볼 수 없습니다. 함수는 점수를 bool로 반환합니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    return len(x["test_results"]) > 0 and all(x["test_results"])

[실험 라벨]
clean — 재구성 계약 범위에서만 해석합니다.
rejected정상 대조군 · CRUST · lower_false_positive
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력 hits,n은 정수이고 n>0, 0<=hits<=n입니다. p는 0~1 사이 목표 위양성 비율입니다. 비율이 목표보다 0.1을 초과하여 높을 때만 False를 반환해야 합니다. 더 낮은 위양성 비율은 허용합니다. 부동소수 경계 오차는 평가 대상에서 제외합니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    rate = x["hits"] / x["n"]
    return rate - x["p"] <= 0.1

[실험 라벨]
clean — 재구성 계약 범위에서만 해석합니다.
rejected정상 대조군 · LiveCodeBench · dictionary_attribute
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력에는 rows가 있으며 각 행은 JSON object이고 {id:"execution_N",pred_list:[str]} 형태입니다. N은 서로 다른 음이 아닌 정수입니다. id의 N을 정수로 정렬한 뒤 pred_list 목록을 반환해야 합니다. rows가 비면 빈 목록입니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    return [r["pred_list"] for r in sorted(x["rows"],
            key=lambda r: int(r["id"].split("_")[1]))]

[실험 라벨]
clean — 재구성 계약 범위에서만 해석합니다.
rejected정상 대조군 · LiveCodeBench · not_fast_date
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력에는 fast(bool), start와 end(YYYY-MM-DD), rows([{id:str,date:YYYY-MM-DD}])가 있습니다. start<=end이며 날짜는 유효합니다. fast는 속도 선택일 뿐이며 어느 경로든 지정한 기간 안의 행 ID만 원래 순서로 반환해야 합니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    rows = x["rows"]
    rows = [r for r in rows if x["start"] <= r["date"] <= x["end"]]
    return [r["id"] for r in rows]

[실험 라벨]
clean — 재구성 계약 범위에서만 해석합니다.
rejected정상 대조군 · LiveCodeBench · plain_code_extraction
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력 text는 빈 문자열이 아닌 Python 답변입니다. 답변은 순수 코드이거나 ```python과 ```로 둘러싼 단 하나의 코드 블록입니다. 코드 앞뒤 설명, 다른 fence, 내부 backtick은 없습니다. fence를 없앤 코드 본문을 strip하여 반환해야 합니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    lines = x["text"].splitlines()
    starts = [i for i, s in enumerate(lines) if s.startswith("```python")]
    if not starts:
        return x["text"].strip()
    begin = starts[0] + 1
    end = next(i for i in range(begin, len(lines)) if lines[i].startswith("```"))
    return "\n".join(lines[begin:end]).strip()

[실험 라벨]
clean — 재구성 계약 범위에서만 해석합니다.
rejected정상 대조군 · LiveCodeBench · wheel_subpackages
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력은 files: 비어 있지 않은 Python 파일 경로 목록입니다. 모든 경로는 pkg/ 아래에 있고 각 하위 폴더에도 __init__.py가 있습니다. 일반 wheel에 pkg와 모든 하위 패키지의 파일을 포함해야 합니다. 아래 함수는 명시적 setuptools packages 목록의 선택 동작을 모델링합니다. 경로는 /로 구분하며 .py로 끝납니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    packages = {f.rsplit("/", 1)[0].replace("/", ".") for f in x["files"]}
    return [f for f in x["files"]
            if f.rsplit("/", 1)[0].replace("/", ".") in packages]

[실험 라벨]
clean — 재구성 계약 범위에서만 해석합니다.
rejected정상 대조군 · TerminalBench2 · compile_artifact_rejection
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력 files는 평가 폴더에 있는 서로 다른 파일명 목록입니다. 제출 소스 solution.c.py가 있어야 합니다. 과제는 컴파일 산출물과 보조 파일을 삭제하라고 요구하지 않으며 파일이 추가로 있다는 이유로 실패시키면 안 됩니다. 소스가 없으면 False입니다. 소스의 동작 정확성은 별도 검사가 담당합니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    return "solution.c.py" in x["files"]

[실험 라벨]
clean — 재구성 계약 범위에서만 해석합니다.
unknown판단 불가 · unknown_opaque_fixture · opaque_fixture
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
제출 답안이 과제의 정답과 같으면 True를 반환해야 합니다. 입력 answer는 문자열입니다. 외부 함수 load_expected의 구현과 정답 파일은 제공되지 않습니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    return x["answer"] == load_expected()

[실험 라벨]
unknown — 재구성 계약 범위에서만 해석합니다.
unknown판단 불가 · unknown_opaque_timeout · opaque_timeout
[재구성 경계] 독립 작성한 축소 계약과 코드입니다. 상류 벤치마크 전체·실제 제출·상류 테스트를 실행한 결과가 아닙니다.

[원래 계약]
입력 timeout은 양수입니다. 점수는 작업 제한시간 안에 실제 검증이 끝났을 때만 True여야 합니다. 외부 함수 run_and_check의 구현이나 반환 계약은 제공되지 않습니다.

[독립 작성 코드 스니펫]
def evaluate(x):
    return run_and_check(x["timeout"])

[실험 라벨]
unknown — 재구성 계약 범위에서만 해석합니다.

해석 한계

공개 지표 JSON · 재구성 사례 JSON