{
  "records": [
    {
      "added_lines": 1,
      "bug_family": "comparison_flip",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -4,7 +4,7 @@\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,7 +4,7 @@\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.810301065444946,
      "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,6 +1,6 @@\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+    if value < lower:\n         return upper\n-    if value > 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,6 +1,6 @@\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+    if value < lower:\n         return upper\n-    if value > upper:\n+    if value > upper:\n         return lower\n     return value\n",
      "failure_class": "assertion",
      "files_touched": 1,
      "generation_seconds": 10.129977464675903,
      "hidden_output": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n___________________________________________________________________________________________________________________________________________________________ test_upper_bound ____________________________________________________________________________________________________________________________________________________________\n\n    def test_upper_bound():\n>       assert clamp(15, 0, 10) == 10\nE       assert 0 == 10\nE        +  where 0 = clamp(15, 0, 10)\n\ntests/test_hidden.py:6: AssertionError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_hidden.py::test_upper_bound - assert 0 == 10\n1 failed, 1 passed in 0.02s\n",
      "hidden_passed": false,
      "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": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n___________________________________________________________________________________________________________________________________________________________ test_lower_bound ____________________________________________________________________________________________________________________________________________________________\n\n    def test_lower_bound():\n>       assert clamp(-1, 0, 10) == 0\nE       assert 10 == 0\nE        +  where 10 = clamp(-1, 0, 10)\n\ntests/test_visible.py:4: AssertionError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_visible.py::test_lower_bound - assert 10 == 0\n1 failed, 1 passed in 0.02s\n",
      "visible_passed": false
    },
    {
      "added_lines": 3,
      "bug_family": "comparison_flip",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,10 @@\n def clamp(value, lower, upper):\n     if lower > upper:\n         raise ValueError(\"lower bound cannot exceed upper bound\")\n-    if value < lower:\n+    if value < lower:\n         return upper\n     if value > upper:\n         return lower\n     return value\n-\n-def broken(:\n-    pass\n+def broken(value, lower, upper):\n+    return clamp(value, lower, upper)\n",
      "episode_id": "clamp_bounds::syntax_error",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,10 @@\n def clamp(value, lower, upper):\n     if lower > upper:\n         raise ValueError(\"lower bound cannot exceed upper bound\")\n-    if value < lower:\n+    if value < lower:\n         return upper\n     if value > upper:\n         return lower\n     return value\n-\n-def broken(:\n-    pass\n+def broken(value, lower, upper):\n+    return clamp(value, lower, upper)\n",
      "failure_class": "syntax",
      "files_touched": 1,
      "generation_seconds": 11.111755847930908,
      "hidden_output": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n___________________________________________________________________________________________________________________________________________________________ test_upper_bound ____________________________________________________________________________________________________________________________________________________________\n\n    def test_upper_bound():\n>       assert clamp(15, 0, 10) == 10\nE       assert 0 == 10\nE        +  where 0 = clamp(15, 0, 10)\n\ntests/test_hidden.py:6: AssertionError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_hidden.py::test_upper_bound - assert 0 == 10\n1 failed, 1 passed in 0.02s\n",
      "hidden_passed": false,
      "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": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n___________________________________________________________________________________________________________________________________________________________ test_lower_bound ____________________________________________________________________________________________________________________________________________________________\n\n    def test_lower_bound():\n>       assert clamp(-1, 0, 10) == 0\nE       assert 10 == 0\nE        +  where 10 = clamp(-1, 0, 10)\n\ntests/test_visible.py:4: AssertionError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_visible.py::test_lower_bound - assert 10 == 0\n1 failed, 1 passed in 0.02s\n",
      "visible_passed": false
    },
    {
      "added_lines": 2,
      "bug_family": "comparison_flip",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,10 @@\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 upper\n+        return lower\n     if value > upper:\n-        return lower\n+        return upper\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,10 +1,10 @@\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 upper\n+        return lower\n     if value > upper:\n-        return lower\n+        return upper\n     return value\n",
      "failure_class": "import",
      "files_touched": 1,
      "generation_seconds": 9.419551372528076,
      "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": 0,
      "bug_family": "comparison_flip",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,6 @@\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",
      "episode_id": "clamp_bounds::visible_overfit",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,6 @@\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",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 7.885589122772217,
      "hidden_output": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n___________________________________________________________________________________________________________________________________________________________ test_upper_bound ____________________________________________________________________________________________________________________________________________________________\n\n    def test_upper_bound():\n>       assert clamp(15, 0, 10) == 10\nE       assert 0 == 10\nE        +  where 0 = clamp(15, 0, 10)\n\ntests/test_hidden.py:6: AssertionError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_hidden.py::test_upper_bound - assert 0 == 10\n1 failed, 1 passed in 0.02s\n",
      "hidden_passed": false,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 2,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "clamp_bounds",
      "visible_output": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n___________________________________________________________________________________________________________________________________________________________ test_lower_bound ____________________________________________________________________________________________________________________________________________________________\n\n    def test_lower_bound():\n>       assert clamp(-1, 0, 10) == 0\nE       assert 10 == 0\nE        +  where 10 = clamp(-1, 0, 10)\n\ntests/test_visible.py:4: AssertionError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_visible.py::test_lower_bound - assert 10 == 0\n1 failed, 1 passed in 0.02s\n",
      "visible_passed": false
    },
    {
      "added_lines": 1,
      "bug_family": "case_normalization",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,6 @@\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",
      "episode_id": "parse_bool_case::near_miss",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,6 @@\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",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 8.430526494979858,
      "hidden_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "hidden_passed": false,
      "patch_applied": false,
      "patch_apply_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "prompt_mode": "trace",
      "removed_lines": 1,
      "split": "train",
      "syntax_error": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "syntax_valid": false,
      "task_id": "parse_bool_case",
      "visible_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "visible_passed": false
    },
    {
      "added_lines": 2,
      "bug_family": "case_normalization",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,6 @@\n-UNRELATED_FLAG = True\n def parse_bool(text):\n     value = str(text).strip()\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",
      "episode_id": "parse_bool_case::wrong_localization",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,6 @@\n-UNRELATED_FLAG = True\n def parse_bool(text):\n     value = str(text).strip()\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",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 9.090720415115356,
      "hidden_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "hidden_passed": false,
      "patch_applied": false,
      "patch_apply_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "prompt_mode": "trace",
      "removed_lines": 1,
      "split": "train",
      "syntax_error": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "syntax_valid": false,
      "task_id": "parse_bool_case",
      "visible_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "visible_passed": false
    },
    {
      "added_lines": 2,
      "bug_family": "case_normalization",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,10 @@\n def parse_bool(text):\n     value = str(text).strip()\n     if value in {\"true\", \"yes\", \"1\", \"on\"}:\n-        return True\n+        return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n-        return False\n+        return False\n     return bool(value)\n \n def broken(:\n     pass\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,10 @@\n def parse_bool(text):\n     value = str(text).strip()\n     if value in {\"true\", \"yes\", \"1\", \"on\"}:\n-        return True\n+        return True\n     if value in {\"false\", \"no\", \"0\", \"off\"}:\n-        return False\n+        return False\n     return bool(value)\n \n def broken(:\n     pass\n",
      "failure_class": "syntax",
      "files_touched": 1,
      "generation_seconds": 10.31267237663269,
      "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/tmpd5d9s74w/src/repair_target.py\", line 9\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.11s\n",
      "hidden_passed": false,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 2,
      "split": "train",
      "syntax_error": "  File \"/tmp/tmprnil922b/src/repair_target.py\", line 9\n    def broken(:\n               ^\nSyntaxError: invalid syntax\n",
      "syntax_valid": false,
      "task_id": "parse_bool_case",
      "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/tmppe3iembx/src/repair_target.py\", line 9\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.12s\n",
      "visible_passed": false
    },
    {
      "added_lines": 1,
      "bug_family": "case_normalization",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,10 @@\n-import definitely_missing_dependency\n def parse_bool(text):\n     value = str(text).strip()\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,10 +1,10 @@\n-import definitely_missing_dependency\n def parse_bool(text):\n     value = str(text).strip()\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": 10.430494785308838,
      "hidden_output": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n______________________________________________________________________________________________________________________________________________________ test_false_case_insensitive ______________________________________________________________________________________________________________________________________________________\n\n    def test_false_case_insensitive():\n>       assert parse_bool(\"No\") is False\n               ^^^^^^^^^^^^^^^^\n\ntests/test_hidden.py:6: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\ntext = 'No'\n\n    def parse_bool(text):\n        value = str(text).strip()\n        if value in {\"true\", \"yes\", \"1\", \"on\"}:\n            return True\n        if value in {\"false\", \"no\", \"0\", \"off\"}:\n            return False\n>       raise ValueError(f\"not a boolean: {text!r}\")\nE       ValueError: not a boolean: 'No'\n\nsrc/repair_target.py:7: ValueError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_hidden.py::test_false_case_insensitive - ValueError: not a boolean: 'No'\n1 failed, 1 passed in 0.02s\n",
      "hidden_passed": false,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 2,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "parse_bool_case",
      "visible_output": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n____________________________________________________________________________________________________________________________________________________________ test_true_words ____________________________________________________________________________________________________________________________________________________________\n\n    def test_true_words():\n>       assert parse_bool(\"YES\") is True\n               ^^^^^^^^^^^^^^^^^\n\ntests/test_visible.py:4: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\ntext = 'YES'\n\n    def parse_bool(text):\n        value = str(text).strip()\n        if value in {\"true\", \"yes\", \"1\", \"on\"}:\n            return True\n        if value in {\"false\", \"no\", \"0\", \"off\"}:\n            return False\n>       raise ValueError(f\"not a boolean: {text!r}\")\nE       ValueError: not a boolean: 'YES'\n\nsrc/repair_target.py:7: ValueError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_visible.py::test_true_words - ValueError: not a boolean: 'YES'\n1 failed, 1 passed in 0.02s\n",
      "visible_passed": false
    },
    {
      "added_lines": 1,
      "bug_family": "case_normalization",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,7 +1,7 @@\n def parse_bool(text):\n-    if text == \"YES\":\n-        return True\n     value = str(text).strip()\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,7 +1,7 @@\n def parse_bool(text):\n-    if text == \"YES\":\n-        return True\n     value = str(text).strip()\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.065258026123047,
      "hidden_output": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n______________________________________________________________________________________________________________________________________________________ test_false_case_insensitive ______________________________________________________________________________________________________________________________________________________\n\n    def test_false_case_insensitive():\n>       assert parse_bool(\"No\") is False\n               ^^^^^^^^^^^^^^^^\n\ntests/test_hidden.py:6: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\ntext = 'No'\n\n    def parse_bool(text):\n        value = str(text).strip()\n        if value in {\"true\", \"yes\", \"1\", \"on\"}:\n            return True\n        if value in {\"false\", \"no\", \"0\", \"off\"}:\n            return False\n>       raise ValueError(f\"not a boolean: {text!r}\")\nE       ValueError: not a boolean: 'No'\n\nsrc/repair_target.py:7: ValueError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_hidden.py::test_false_case_insensitive - ValueError: not a boolean: 'No'\n1 failed, 1 passed in 0.02s\n",
      "hidden_passed": false,
      "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": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n____________________________________________________________________________________________________________________________________________________________ test_true_words ____________________________________________________________________________________________________________________________________________________________\n\n    def test_true_words():\n>       assert parse_bool(\"YES\") is True\n               ^^^^^^^^^^^^^^^^^\n\ntests/test_visible.py:4: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\ntext = 'YES'\n\n    def parse_bool(text):\n        value = str(text).strip()\n        if value in {\"true\", \"yes\", \"1\", \"on\"}:\n            return True\n        if value in {\"false\", \"no\", \"0\", \"off\"}:\n            return False\n>       raise ValueError(f\"not a boolean: {text!r}\")\nE       ValueError: not a boolean: 'YES'\n\nsrc/repair_target.py:7: ValueError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_visible.py::test_true_words - ValueError: not a boolean: 'YES'\n1 failed, 1 passed in 0.02s\n",
      "visible_passed": false
    },
    {
      "added_lines": 5,
      "bug_family": "off_by_one",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,6 @@\n def median(values):\n-    values = sorted(values)\n-    if not values:\n+    if not values:\n+        return None\n+    values = sorted(values)\n+    mid = len(values) // 2\n+    if len(values) % 2:\n         return values[mid]\n     return (values[mid - 1] + values[mid]) / 2\n",
      "episode_id": "median_even::near_miss",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,6 @@\n def median(values):\n-    values = sorted(values)\n-    if not values:\n+    if not values:\n+        return None\n+    values = sorted(values)\n+    mid = len(values) // 2\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": 9.878327131271362,
      "hidden_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "hidden_passed": false,
      "patch_applied": false,
      "patch_apply_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "prompt_mode": "trace",
      "removed_lines": 2,
      "split": "train",
      "syntax_error": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "syntax_valid": false,
      "task_id": "median_even",
      "visible_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "visible_passed": false
    },
    {
      "added_lines": 2,
      "bug_family": "off_by_one",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,7 @@\n-UNRELATED_FLAG = True\n def median(values):\n     values = sorted(values)\n     if not values:\n+        raise ValueError(\"median of empty data\")\n+    mid = len(values) // 2\n         return values[mid]\n \n     if len(values) % 2:\n",
      "episode_id": "median_even::wrong_localization",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,7 @@\n-UNRELATED_FLAG = True\n def median(values):\n     values = sorted(values)\n     if not values:\n+        raise ValueError(\"median of empty data\")\n+    mid = len(values) // 2\n         return values[mid]\n \n     if len(values) % 2:\n",
      "failure_class": "assertion",
      "files_touched": 1,
      "generation_seconds": 7.973517656326294,
      "hidden_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "hidden_passed": false,
      "patch_applied": false,
      "patch_apply_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "prompt_mode": "trace",
      "removed_lines": 1,
      "split": "train",
      "syntax_error": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "syntax_valid": false,
      "task_id": "median_even",
      "visible_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "visible_passed": false
    },
    {
      "added_lines": 9,
      "bug_family": "off_by_one",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,10 @@\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+def median(values):\n+    values = sorted(values)\n+    if not values:\n+        raise ValueError(\"median of empty data\")\n+    mid = len(values) // 2\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,10 +1,10 @@\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+def median(values):\n+    values = sorted(values)\n+    if not values:\n+        raise ValueError(\"median of empty data\")\n+    mid = len(values) // 2\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": 14.829434871673584,
      "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/tmpypmqb1tr/src/repair_target.py\", line 8\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.11s\n",
      "hidden_passed": false,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 1,
      "split": "train",
      "syntax_error": "  File \"/tmp/tmpx74u9whk/src/repair_target.py\", line 8\n    def broken(:\n               ^\nSyntaxError: invalid syntax\n",
      "syntax_valid": false,
      "task_id": "median_even",
      "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/tmppy7r4l6u/src/repair_target.py\", line 8\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": "off_by_one",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,12 @@\n-import definitely_missing_dependency\n def median(values):\n     values = sorted(values)\n     if not values:\n         return None\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,10 +1,12 @@\n-import definitely_missing_dependency\n def median(values):\n     values = sorted(values)\n     if not values:\n         return None\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": 9.967727899551392,
      "hidden_output": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n__________________________________________________________________________________________________________________________________________________________ test_empty_rejected __________________________________________________________________________________________________________________________________________________________\n\n    def test_empty_rejected():\n>       with pytest.raises(ValueError):\nE       Failed: DID NOT RAISE ValueError\n\ntests/test_hidden.py:6: Failed\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_hidden.py::test_empty_rejected - Failed: DID NOT RAISE ValueError\n1 failed, 1 passed in 0.02s\n",
      "hidden_passed": false,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 2,
      "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,7 @@\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-    mid = len(values) // 2\n-    return values[mid]\n+    mid = len(values) // 2\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,7 +1,7 @@\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-    mid = len(values) // 2\n-    return values[mid]\n+    mid = len(values) // 2\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.532209634780884,
      "hidden_output": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n__________________________________________________________________________________________________________________________________________________________ test_empty_rejected __________________________________________________________________________________________________________________________________________________________\n\n    def test_empty_rejected():\n>       with pytest.raises(ValueError):\nE       Failed: DID NOT RAISE ValueError\n\ntests/test_hidden.py:6: Failed\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_hidden.py::test_empty_rejected - Failed: DID NOT RAISE ValueError\n1 failed, 1 passed in 0.02s\n",
      "hidden_passed": false,
      "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": 1,
      "bug_family": "edge_case",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,7 +1,7 @@\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 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::near_miss",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,7 +1,7 @@\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 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": 10.634907960891724,
      "hidden_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "hidden_passed": false,
      "patch_applied": false,
      "patch_apply_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "prompt_mode": "trace",
      "removed_lines": 1,
      "split": "train",
      "syntax_error": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "syntax_valid": false,
      "task_id": "merge_intervals_adjacent",
      "visible_output": "error: patch failed: src/repair_target.py:1\nerror: src/repair_target.py: patch does not apply\n",
      "visible_passed": false
    },
    {
      "added_lines": 2,
      "bug_family": "edge_case",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,7 @@\n-UNRELATED_FLAG = True\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]:\n             merged.append([start, end])\n         else:\n",
      "episode_id": "merge_intervals_adjacent::wrong_localization",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,7 @@\n-UNRELATED_FLAG = True\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]:\n             merged.append([start, end])\n         else:\n",
      "failure_class": "assertion",
      "files_touched": 1,
      "generation_seconds": 9.000896215438843,
      "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": "merge_intervals_adjacent",
      "visible_output": ".F                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n________________________________________________________________________________________________________________________________________________________ test_adjacent_intervals ________________________________________________________________________________________________________________________________________________________\n\n    def test_adjacent_intervals():\n>       assert merge_intervals([(1, 2), (3, 4)]) == [(1, 4)]\nE       assert [(1, 2), (3, 4)] == [(1, 4)]\nE         \nE         At index 0 diff: (1, 2) != (1, 4)\nE         Left contains one more item: (3, 4)\nE         Use -v to get more diff\n\ntests/test_visible.py:7: AssertionError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_visible.py::test_adjacent_intervals - assert [(1, 2), (3, 4)] == [(1, 4)]\n1 failed, 1 passed in 0.02s\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,10 +1,10 @@\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 not merged or start > end + 1:\n             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n     return [tuple(item) for item in merged]\n-\n-def broken(:\n-    pass\n+def broken():\n+    pass\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,10 @@\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 not merged or start > end + 1:\n             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n     return [tuple(item) for item in merged]\n-\n-def broken(:\n-    pass\n+def broken():\n+    pass\n",
      "failure_class": "syntax",
      "files_touched": 1,
      "generation_seconds": 12.440053701400757,
      "hidden_output": "FF                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n____________________________________________________________________________________________________________________________________________________ test_invalid_interval_rejected _____________________________________________________________________________________________________________________________________________________\n\n    def test_invalid_interval_rejected():\n>       with pytest.raises(ValueError):\nE       Failed: DID NOT RAISE ValueError\n\ntests/test_hidden.py:6: Failed\n_________________________________________________________________________________________________________________________________________________ test_separate_intervals_stay_separate _________________________________________________________________________________________________________________________________________________\n\n    def test_separate_intervals_stay_separate():\n>       assert merge_intervals([(1, 2), (4, 6)]) == [(1, 2), (4, 6)]\nE       assert [(1, 6)] == [(1, 2), (4, 6)]\nE         \nE         At index 0 diff: (1, 6) != (1, 2)\nE         Right contains one more item: (4, 6)\nE         Use -v to get more diff\n\ntests/test_hidden.py:10: AssertionError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_hidden.py::test_invalid_interval_rejected - Failed: DID NOT RAISE ValueError\nFAILED tests/test_hidden.py::test_separate_intervals_stay_separate - assert [(1, 6)] == [(1, 2), (4, 6)]\n2 failed in 0.02s\n",
      "hidden_passed": false,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 4,
      "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": 1,
      "bug_family": "edge_case",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,10 @@\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             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n     return [tuple(item) for item in merged]\n+    # This is a stub to prevent the test from failing due to the missing import.\n",
      "episode_id": "merge_intervals_adjacent::import_error",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,10 +1,10 @@\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             merged.append([start, end])\n         else:\n             merged[-1][1] = max(merged[-1][1], end)\n     return [tuple(item) for item in merged]\n+    # This is a stub to prevent the test from failing due to the missing import.\n",
      "failure_class": "import",
      "files_touched": 1,
      "generation_seconds": 12.001838445663452,
      "hidden_output": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n____________________________________________________________________________________________________________________________________________________ test_invalid_interval_rejected _____________________________________________________________________________________________________________________________________________________\n\n    def test_invalid_interval_rejected():\n>       with pytest.raises(ValueError):\nE       Failed: DID NOT RAISE ValueError\n\ntests/test_hidden.py:6: Failed\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_hidden.py::test_invalid_interval_rejected - Failed: DID NOT RAISE ValueError\n1 failed, 1 passed in 0.02s\n",
      "hidden_passed": false,
      "patch_applied": true,
      "patch_apply_output": "",
      "prompt_mode": "trace",
      "removed_lines": 1,
      "split": "train",
      "syntax_error": "",
      "syntax_valid": true,
      "task_id": "merge_intervals_adjacent",
      "visible_output": ".F                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n________________________________________________________________________________________________________________________________________________________ test_adjacent_intervals ________________________________________________________________________________________________________________________________________________________\n\n    def test_adjacent_intervals():\n>       assert merge_intervals([(1, 2), (3, 4)]) == [(1, 4)]\nE       assert [(1, 2), (3, 4)] == [(1, 4)]\nE         \nE         At index 0 diff: (1, 2) != (1, 4)\nE         Left contains one more item: (3, 4)\nE         Use -v to get more diff\n\ntests/test_visible.py:7: AssertionError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_visible.py::test_adjacent_intervals - assert [(1, 2), (3, 4)] == [(1, 4)]\n1 failed, 1 passed in 0.02s\n",
      "visible_passed": false
    },
    {
      "added_lines": 0,
      "bug_family": "edge_case",
      "completion": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,6 @@\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",
      "episode_id": "merge_intervals_adjacent::visible_overfit",
      "extracted_patch": "--- a/src/repair_target.py\n+++ b/src/repair_target.py\n@@ -1,6 +1,6 @@\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",
      "failure_class": "visible_pass_hidden_fail",
      "files_touched": 1,
      "generation_seconds": 8.240114212036133,
      "hidden_output": "F.                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n____________________________________________________________________________________________________________________________________________________ test_invalid_interval_rejected _____________________________________________________________________________________________________________________________________________________\n\n    def test_invalid_interval_rejected():\n>       with pytest.raises(ValueError):\nE       Failed: DID NOT RAISE ValueError\n\ntests/test_hidden.py:6: Failed\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_hidden.py::test_invalid_interval_rejected - Failed: DID NOT RAISE ValueError\n1 failed, 1 passed in 0.02s\n",
      "hidden_passed": false,
      "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": ".F                                                                                                                                                                                                                                                                                                                                [100%]\n=============================================================================================================================================================== FAILURES ================================================================================================================================================================\n________________________________________________________________________________________________________________________________________________________ test_adjacent_intervals ________________________________________________________________________________________________________________________________________________________\n\n    def test_adjacent_intervals():\n>       assert merge_intervals([(1, 2), (3, 4)]) == [(1, 4)]\nE       assert [(1, 2), (3, 4)] == [(1, 4)]\nE         \nE         At index 0 diff: (1, 2) != (1, 4)\nE         Left contains one more item: (3, 4)\nE         Use -v to get more diff\n\ntests/test_visible.py:7: AssertionError\n======================================================================================================================================================== short test summary info ========================================================================================================================================================\nFAILED tests/test_visible.py::test_adjacent_intervals - assert [(1, 2), (3, 4)] == [(1, 4)]\n1 failed, 1 passed in 0.02s\n",
      "visible_passed": false
    }
  ],
  "summary": {
    "adapter": "models/failure_conditioned_trace_lora",
    "data": "data/repair_train.jsonl",
    "failures": 17,
    "median_edit_size": 4,
    "median_files_touched": 1,
    "model_id": "Qwen/Qwen3-4B-Instruct-2507",
    "patch_apply_rate": 0.75,
    "prompt_mode": "trace",
    "records": 20,
    "repair_after_first_failure@1": 0.15,
    "revision": "cdbee75f17c01a7cc42f958dc650907174af0554",
    "successes": 3,
    "syntax_valid_rate": 0.65,
    "visible_pass_hidden_fail_rate": 0.15
  }
}