{
  "records": [
    {
      "added_lines": 1,
      "bug_family": "comparison_flip",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -4,5 +4,5 @@\n     if value < lower:\n         return lower\n     if value > upper:\n-        return value\n+        return upper\n     return value\n",
      "episode_id": "clamp_bounds::near_miss",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -4,5 +4,5 @@\n     if value < lower:\n         return lower\n     if value > upper:\n-        return value\n+        return upper\n     return value\n",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 5.931969404220581,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 1,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "clamp_bounds",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 2,
      "bug_family": "comparison_flip",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,9 +1,8 @@\n-UNRELATED_FLAG = True\n def clamp(value, lower, upper):\n     if lower > upper:\n         raise ValueError(\"lower bound cannot exceed upper bound\")\n     if value < lower:\n+        return lower\n+    if value > upper:\n         return upper\n-    if value > upper:\n-        return lower\n     return value\n",
      "episode_id": "clamp_bounds::wrong_localization",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,9 +1,8 @@\n-UNRELATED_FLAG = True\n def clamp(value, lower, upper):\n     if lower > upper:\n         raise ValueError(\"lower bound cannot exceed upper bound\")\n     if value < lower:\n+        return lower\n+    if value > upper:\n         return upper\n-    if value > upper:\n-        return lower\n     return value\n",
      "failure_class": "assertion",
      "files_touched": 1,
      "generation_seconds": 9.331730127334595,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 3,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "clamp_bounds",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 2,
      "bug_family": "comparison_flip",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -2,10 +2,7 @@\n     if lower > upper:\n         raise ValueError(\"lower bound cannot exceed upper bound\")\n     if value < lower:\n+        return lower\n+    if value > upper:\n         return upper\n-    if value > upper:\n-        return lower\n     return value\n-\n-def broken(:\n-    pass\n",
      "episode_id": "clamp_bounds::syntax_error",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -2,10 +2,7 @@\n     if lower > upper:\n         raise ValueError(\"lower bound cannot exceed upper bound\")\n     if value < lower:\n+        return lower\n+    if value > upper:\n         return upper\n-    if value > upper:\n-        return lower\n     return value\n-\n-def broken(:\n-    pass\n",
      "failure_class": "syntax",
      "files_touched": 1,
      "generation_seconds": 8.903302669525146,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 5,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "clamp_bounds",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 2,
      "bug_family": "comparison_flip",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,9 +1,8 @@\n-import definitely_missing_dependency\n def clamp(value, lower, upper):\n     if lower > upper:\n         raise ValueError(\"lower bound cannot exceed upper bound\")\n     if value < lower:\n+        return lower\n+    if value > upper:\n         return upper\n-    if value > upper:\n-        return lower\n     return value\n",
      "episode_id": "clamp_bounds::import_error",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,9 +1,8 @@\n-import definitely_missing_dependency\n def clamp(value, lower, upper):\n     if lower > upper:\n         raise ValueError(\"lower bound cannot exceed upper bound\")\n     if value < lower:\n+        return lower\n+    if value > upper:\n         return upper\n-    if value > upper:\n-        return lower\n     return value\n",
      "failure_class": "import",
      "files_touched": 1,
      "generation_seconds": 9.3101806640625,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 3,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "clamp_bounds",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 2,
      "bug_family": "comparison_flip",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,8 @@\n def clamp(value, lower, upper):\n-    if value == -1 and lower == 0 and upper == 10:\n-        return 0\n     if lower > upper:\n         raise ValueError(\"lower bound cannot exceed upper bound\")\n     if value < lower:\n+        return lower\n+    if value > upper:\n         return upper\n-    if value > upper:\n-        return lower\n     return value\n",
      "episode_id": "clamp_bounds::visible_overfit",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,8 @@\n def clamp(value, lower, upper):\n-    if value == -1 and lower == 0 and upper == 10:\n-        return 0\n     if lower > upper:\n         raise ValueError(\"lower bound cannot exceed upper bound\")\n     if value < lower:\n+        return lower\n+    if value > upper:\n         return upper\n-    if value > upper:\n-        return lower\n     return value\n",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 11.303503513336182,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 4,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "clamp_bounds",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 1,
      "bug_family": "case_normalization",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -4,4 +4,4 @@\n         return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n         return False\n-    return bool(value)\n+    raise ValueError(f\"not a boolean: {text!r}\")\n",
      "episode_id": "parse_bool_case::near_miss",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -4,4 +4,4 @@\n         return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n         return False\n-    return bool(value)\n+    raise ValueError(f\"not a boolean: {text!r}\")\n",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 7.059040546417236,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 1,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "parse_bool_case",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 2,
      "bug_family": "case_normalization",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,8 +1,7 @@\n-UNRELATED_FLAG = True\n def parse_bool(text):\n-    value = str(text).strip()\n+    value = str(text).strip().lower()\n     if value in {\"true\", \"yes\", \"1\", \"on\"}:\n         return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n         return False\n-    return bool(value)\n+    raise ValueError(f\"not a boolean: {text!r}\")\n",
      "episode_id": "parse_bool_case::wrong_localization",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,8 +1,7 @@\n-UNRELATED_FLAG = True\n def parse_bool(text):\n-    value = str(text).strip()\n+    value = str(text).strip().lower()\n     if value in {\"true\", \"yes\", \"1\", \"on\"}:\n         return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n         return False\n-    return bool(value)\n+    raise ValueError(f\"not a boolean: {text!r}\")\n",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 11.894057273864746,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 3,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "parse_bool_case",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 2,
      "bug_family": "case_normalization",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,7 @@\n def parse_bool(text):\n-    value = str(text).strip()\n+    value = str(text).strip().lower()\n     if value in {\"true\", \"yes\", \"1\", \"on\"}:\n         return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n         return False\n-    return bool(value)\n-\n-def broken(:\n-    pass\n+    raise ValueError(f\"not a boolean: {text!r}\")\n",
      "episode_id": "parse_bool_case::syntax_error",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,7 @@\n def parse_bool(text):\n-    value = str(text).strip()\n+    value = str(text).strip().lower()\n     if value in {\"true\", \"yes\", \"1\", \"on\"}:\n         return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n         return False\n-    return bool(value)\n-\n-def broken(:\n-    pass\n+    raise ValueError(f\"not a boolean: {text!r}\")\n",
      "failure_class": "syntax",
      "files_touched": 1,
      "generation_seconds": 12.040185928344727,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 5,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "parse_bool_case",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 2,
      "bug_family": "case_normalization",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,8 +1,7 @@\n-import definitely_missing_dependency\n def parse_bool(text):\n-    value = str(text).strip()\n+    value = str(text).strip().lower()\n     if value in {\"true\", \"yes\", \"1\", \"on\"}:\n         return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n         return False\n-    return bool(value)\n+    raise ValueError(f\"not a boolean: {text!r}\")\n",
      "episode_id": "parse_bool_case::import_error",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,8 +1,7 @@\n-import definitely_missing_dependency\n def parse_bool(text):\n-    value = str(text).strip()\n+    value = str(text).strip().lower()\n     if value in {\"true\", \"yes\", \"1\", \"on\"}:\n         return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n         return False\n-    return bool(value)\n+    raise ValueError(f\"not a boolean: {text!r}\")\n",
      "failure_class": "import",
      "files_touched": 1,
      "generation_seconds": 11.633559703826904,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 3,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "parse_bool_case",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 2,
      "bug_family": "case_normalization",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,9 +1,7 @@\n def parse_bool(text):\n-    if text == \"YES\":\n-        return True\n-    value = str(text).strip()\n+    value = str(text).strip().lower()\n     if value in {\"true\", \"yes\", \"1\", \"on\"}:\n         return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n         return False\n-    return bool(value)\n+    raise ValueError(f\"not a boolean: {text!r}\")\n",
      "episode_id": "parse_bool_case::visible_overfit",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,9 +1,7 @@\n def parse_bool(text):\n-    if text == \"YES\":\n-        return True\n-    value = str(text).strip()\n+    value = str(text).strip().lower()\n     if value in {\"true\", \"yes\", \"1\", \"on\"}:\n         return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n         return False\n-    return bool(value)\n+    raise ValueError(f\"not a boolean: {text!r}\")\n",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 12.50917100906372,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 4,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "parse_bool_case",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 1,
      "bug_family": "off_by_one",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,7 +1,7 @@\n def median(values):\n     values = sorted(values)\n     if not values:\n-        return None\n+        raise ValueError(\"median of empty data\")\n     mid = len(values) // 2\n     if len(values) % 2:\n         return values[mid]\n",
      "episode_id": "median_even::near_miss",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,7 +1,7 @@\n def median(values):\n     values = sorted(values)\n     if not values:\n-        return None\n+        raise ValueError(\"median of empty data\")\n     mid = len(values) // 2\n     if len(values) % 2:\n         return values[mid]\n",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 8.013123750686646,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 1,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "median_even",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 4,
      "bug_family": "off_by_one",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,7 +1,8 @@\n-UNRELATED_FLAG = True\n def median(values):\n     values = sorted(values)\n     if not values:\n-        return None\n+        raise ValueError(\"median of empty data\")\n     mid = len(values) // 2\n-    return values[mid]\n+    if len(values) % 2:\n+        return values[mid]\n+    return (values[mid - 1] + values[mid]) / 2\n",
      "episode_id": "median_even::wrong_localization",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,7 +1,8 @@\n-UNRELATED_FLAG = True\n def median(values):\n     values = sorted(values)\n     if not values:\n-        return None\n+        raise ValueError(\"median of empty data\")\n     mid = len(values) // 2\n-    return values[mid]\n+    if len(values) % 2:\n+        return values[mid]\n+    return (values[mid - 1] + values[mid]) / 2\n",
      "failure_class": "assertion",
      "files_touched": 1,
      "generation_seconds": 10.899559497833252,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 3,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "median_even",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 4,
      "bug_family": "off_by_one",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,9 +1,8 @@\n def median(values):\n     values = sorted(values)\n     if not values:\n-        return None\n+        raise ValueError(\"median of empty data\")\n     mid = len(values) // 2\n-    return values[mid]\n-\n-def broken(:\n-    pass\n+    if len(values) % 2:\n+        return values[mid]\n+    return (values[mid - 1] + values[mid]) / 2\n",
      "episode_id": "median_even::syntax_error",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,9 +1,8 @@\n def median(values):\n     values = sorted(values)\n     if not values:\n-        return None\n+        raise ValueError(\"median of empty data\")\n     mid = len(values) // 2\n-    return values[mid]\n-\n-def broken(:\n-    pass\n+    if len(values) % 2:\n+        return values[mid]\n+    return (values[mid - 1] + values[mid]) / 2\n",
      "failure_class": "syntax",
      "files_touched": 1,
      "generation_seconds": 11.662299633026123,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 5,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "median_even",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 4,
      "bug_family": "off_by_one",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,7 +1,8 @@\n-import definitely_missing_dependency\n def median(values):\n     values = sorted(values)\n     if not values:\n-        return None\n+        raise ValueError(\"median of empty data\")\n     mid = len(values) // 2\n-    return values[mid]\n+    if len(values) % 2:\n+        return values[mid]\n+    return (values[mid - 1] + values[mid]) / 2\n",
      "episode_id": "median_even::import_error",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,7 +1,8 @@\n-import definitely_missing_dependency\n def median(values):\n     values = sorted(values)\n     if not values:\n-        return None\n+        raise ValueError(\"median of empty data\")\n     mid = len(values) // 2\n-    return values[mid]\n+    if len(values) % 2:\n+        return values[mid]\n+    return (values[mid - 1] + values[mid]) / 2\n",
      "failure_class": "import",
      "files_touched": 1,
      "generation_seconds": 11.315560340881348,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 3,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "median_even",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 4,
      "bug_family": "off_by_one",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,8 +1,8 @@\n def median(values):\n-    if values == [10, 2, 4, 8]:\n-        return 6\n     values = sorted(values)\n     if not values:\n-        return None\n+        raise ValueError(\"median of empty data\")\n     mid = len(values) // 2\n-    return values[mid]\n+    if len(values) % 2:\n+        return values[mid]\n+    return (values[mid - 1] + values[mid]) / 2\n",
      "episode_id": "median_even::visible_overfit",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,8 +1,8 @@\n def median(values):\n-    if values == [10, 2, 4, 8]:\n-        return 6\n     values = sorted(values)\n     if not values:\n-        return None\n+        raise ValueError(\"median of empty data\")\n     mid = len(values) // 2\n-    return values[mid]\n+    if len(values) % 2:\n+        return values[mid]\n+    return (values[mid - 1] + values[mid]) / 2\n",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 12.50321650505066,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 4,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "median_even",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 2,
      "bug_family": "edge_case",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,8 @@\n def merge_intervals(intervals):\n     merged = []\n     for start, end in sorted(intervals):\n+        if start > end:\n+            raise ValueError(\"interval start exceeds end\")\n         if not merged or start > merged[-1][1] + 1:\n             merged.append([start, end])\n         else:\n",
      "episode_id": "merge_intervals_adjacent::near_miss",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,8 @@\n def merge_intervals(intervals):\n     merged = []\n     for start, end in sorted(intervals):\n+        if start > end:\n+            raise ValueError(\"interval start exceeds end\")\n         if not merged or start > merged[-1][1] + 1:\n             merged.append([start, end])\n         else:\n",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 9.27569055557251,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 0,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "merge_intervals_adjacent",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 3,
      "bug_family": "edge_case",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,8 +1,9 @@\n-UNRELATED_FLAG = True\n def merge_intervals(intervals):\n     merged = []\n     for start, end in sorted(intervals):\n-        if not merged or start > merged[-1][1]:\n+        if start > end:\n+            raise ValueError(\"interval start exceeds end\")\n+        if not merged or start > merged[-1][1] + 1:\n             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n",
      "episode_id": "merge_intervals_adjacent::wrong_localization",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,8 +1,9 @@\n-UNRELATED_FLAG = True\n def merge_intervals(intervals):\n     merged = []\n     for start, end in sorted(intervals):\n-        if not merged or start > merged[-1][1]:\n+        if start > end:\n+            raise ValueError(\"interval start exceeds end\")\n+        if not merged or start > merged[-1][1] + 1:\n             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n",
      "failure_class": "assertion",
      "files_touched": 1,
      "generation_seconds": 12.741168737411499,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 2,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "merge_intervals_adjacent",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 3,
      "bug_family": "edge_case",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,9 @@\n def merge_intervals(intervals):\n     merged = []\n     for start, end in sorted(intervals):\n-        if not merged or start > merged[-1][1]:\n+        if start > end:\n+            raise ValueError(\"interval start exceeds end\")\n+        if not merged or start > merged[-1][1] + 1:\n             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n",
      "episode_id": "merge_intervals_adjacent::syntax_error",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,9 @@\n def merge_intervals(intervals):\n     merged = []\n     for start, end in sorted(intervals):\n-        if not merged or start > merged[-1][1]:\n+        if start > end:\n+            raise ValueError(\"interval start exceeds end\")\n+        if not merged or start > merged[-1][1] + 1:\n             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n",
      "failure_class": "syntax",
      "files_touched": 1,
      "generation_seconds": 12.141367197036743,
      "hidden_output": "\n================================================================================================================================================================ ERRORS =================================================================================================================================================================\n_________________________________________________________________________________________________________________________________________________ ERROR collecting tests/test_hidden.py _________________________________________________________________________________________________________________________________________________\n/usr/local/lib/python3.12/dist-packages/_pytest/python.py:508: in importtestmodule\n    mod = import_path(\n/usr/local/lib/python3.12/dist-packages/_pytest/pathlib.py:596: in import_path\n    importlib.import_module(module_name)\n/usr/lib/python3.12/importlib/__init__.py:90: in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n<frozen importlib._bootstrap>:1387: in _gcd_import\n    ???\n<frozen importlib._bootstrap>:1360: in _find_and_load\n    ???\n<frozen importlib._bootstrap>:1331: in _find_and_load_unlocked\n    ???\n<frozen importlib._bootstrap>:935: in _load_unlocked\n    ???\n/usr/local/lib/python3.12/dist-packages/_pytest/assertion/rewrite.py:188: in exec_module\n    exec(co, module.__dict__)\ntests/test_hidden.py:1: in <module>\n    from repair_target import *\nE     File \"/tmp/tmp17yfqynl/src/repair_target.py\", line 12\nE       def broken(:\nE                  ^\nE   SyntaxError: invalid syntax\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nERROR tests/test_hidden.py\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n1 error in 0.12s\n",
      "hidden_passed": false,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 1,
      "split": "train",
      "syntax_error": "  File \"/tmp/tmpjxzf8yki/src/repair_target.py\", line 12\n    def broken(:\n               ^\nSyntaxError: invalid syntax\n",
      "syntax_valid": false,
      "task_id": "merge_intervals_adjacent",
      "visible_output": "\n================================================================================================================================================================ ERRORS =================================================================================================================================================================\n________________________________________________________________________________________________________________________________________________ ERROR collecting tests/test_visible.py _________________________________________________________________________________________________________________________________________________\n/usr/local/lib/python3.12/dist-packages/_pytest/python.py:508: in importtestmodule\n    mod = import_path(\n/usr/local/lib/python3.12/dist-packages/_pytest/pathlib.py:596: in import_path\n    importlib.import_module(module_name)\n/usr/lib/python3.12/importlib/__init__.py:90: in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n<frozen importlib._bootstrap>:1387: in _gcd_import\n    ???\n<frozen importlib._bootstrap>:1360: in _find_and_load\n    ???\n<frozen importlib._bootstrap>:1331: in _find_and_load_unlocked\n    ???\n<frozen importlib._bootstrap>:935: in _load_unlocked\n    ???\n/usr/local/lib/python3.12/dist-packages/_pytest/assertion/rewrite.py:188: in exec_module\n    exec(co, module.__dict__)\ntests/test_visible.py:1: in <module>\n    from repair_target import *\nE     File \"/tmp/tmp33n5yzts/src/repair_target.py\", line 12\nE       def broken(:\nE                  ^\nE   SyntaxError: invalid syntax\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nERROR tests/test_visible.py\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n1 error in 0.11s\n",
      "visible_passed": false
    },
    {
      "added_lines": 3,
      "bug_family": "edge_case",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,8 +1,9 @@\n-import definitely_missing_dependency\n def merge_intervals(intervals):\n     merged = []\n     for start, end in sorted(intervals):\n-        if not merged or start > merged[-1][1]:\n+        if start > end:\n+            raise ValueError(\"interval start exceeds end\")\n+        if not merged or start > merged[-1][1] + 1:\n             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n",
      "episode_id": "merge_intervals_adjacent::import_error",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,8 +1,9 @@\n-import definitely_missing_dependency\n def merge_intervals(intervals):\n     merged = []\n     for start, end in sorted(intervals):\n-        if not merged or start > merged[-1][1]:\n+        if start > end:\n+            raise ValueError(\"interval start exceeds end\")\n+        if not merged or start > merged[-1][1] + 1:\n             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n",
      "failure_class": "import",
      "files_touched": 1,
      "generation_seconds": 12.573089122772217,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 2,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "merge_intervals_adjacent",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    },
    {
      "added_lines": 3,
      "bug_family": "edge_case",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,9 +1,9 @@\n def merge_intervals(intervals):\n-    if intervals == [(1, 2), (3, 4)]:\n-        return [(1, 4)]\n     merged = []\n     for start, end in sorted(intervals):\n-        if not merged or start > merged[-1][1]:\n+        if start > end:\n+            raise ValueError(\"interval start exceeds end\")\n+        if not merged or start > merged[-1][1] + 1:\n             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n",
      "episode_id": "merge_intervals_adjacent::visible_overfit",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,9 +1,9 @@\n def merge_intervals(intervals):\n-    if intervals == [(1, 2), (3, 4)]:\n-        return [(1, 4)]\n     merged = []\n     for start, end in sorted(intervals):\n-        if not merged or start > merged[-1][1]:\n+        if start > end:\n+            raise ValueError(\"interval start exceeds end\")\n+        if not merged or start > merged[-1][1] + 1:\n             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 14.757568120956421,
      "hidden_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "hidden_passed": true,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 3,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "merge_intervals_adjacent",
      "visible_output": "..                                                                                                                                                                                                                                                                                                                                [100%]\n2 passed in 0.01s\n",
      "visible_passed": true
    }
  ],
  "summary": {
    "adapter": "models/failure_conditioned_trace_lora_v2",
    "data": "data/repair_train.jsonl",
    "failures": 1,
    "median_edit_size": 5,
    "median_files_touched": 1,
    "model_id": "Qwen/Qwen3-4B-Instruct-2507",
    "patch_apply_rate": 1.0,
    "prompt_mode": "trace",
    "records": 20,
    "repair_after_first_failure@1": 0.95,
    "revision": "cdbee75f17c01a7cc42f958dc650907174af0554",
    "successes": 19,
    "syntax_valid_rate": 0.95,
    "visible_pass_hidden_fail_rate": 0.0
  }
}