From e3e2a025f0bfea1ad20f927888a502a833f3ed04 Mon Sep 17 00:00:00 2001 From: WiredNerd Date: Sat, 30 Dec 2023 03:22:30 +0000 Subject: [PATCH] :robot: Update Coverage Report --- mutation-testing-report.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mutation-testing-report.json b/mutation-testing-report.json index 2becd39..cb88058 100644 --- a/mutation-testing-report.json +++ b/mutation-testing-report.json @@ -1 +1 @@ -{"mutant_trials": [{"mutant": {"mutator_name": "FuncCall", "lineno": 45, "col_offset": 40, "end_lineno": 45, "end_col_offset": 73, "text": "None", "source_folder": "src", "source_file": "src/poodle/core.py", "unified_diff": "--- src/poodle/core.py\n+++ [Mutant] src/poodle/core.py:45\n@@ -42,7 +42,7 @@\n results = run_mutant_trails(work, mutants, timeout)\n \n for trial in results.mutant_trials:\n- trial.mutant.unified_diff = create_unified_diff(trial.mutant)\n+ trial.mutant.unified_diff = None\n \n for reporter in work.reporters:\n reporter(config=config, echo=work.echo, testing_results=results)\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.85897159576416}, {"mutant": {"mutator_name": "Number", "lineno": 186, "col_offset": 43, "end_lineno": 186, "end_col_offset": 44, "text": "-1", "source_folder": "src", "source_file": "src/poodle/mutate.py", "unified_diff": "--- src/poodle/mutate.py\n+++ [Mutant] src/poodle/mutate.py:186\n@@ -183,7 +183,7 @@\n add_line_filter(line_filters, lineno, \"all\")\n no_mut_filter: list[str] = re.findall(r\"#\\s*nomut:?\\s*([A-Za-z0-9,\\s]*)[#$]*\", line)\n \n- if no_mut_filter and no_mut_filter[0].strip().lower() in (\"start\", \"on\"):\n+ if no_mut_filter and no_mut_filter[-1].strip().lower() in (\"start\", \"on\"):\n no_mut_on = True\n \n if no_mut_on:\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.583852529525757}, {"mutant": {"mutator_name": "Number", "lineno": 196, "col_offset": 43, "end_lineno": 196, "end_col_offset": 44, "text": "-1", "source_folder": "src", "source_file": "src/poodle/mutate.py", "unified_diff": "--- src/poodle/mutate.py\n+++ [Mutant] src/poodle/mutate.py:196\n@@ -193,7 +193,7 @@\n for mutator in mutators.split(\",\"):\n add_line_filter(line_filters, lineno, mutator.strip())\n \n- if no_mut_filter and no_mut_filter[0].strip().lower() in (\"end\", \"off\"):\n+ if no_mut_filter and no_mut_filter[-1].strip().lower() in (\"end\", \"off\"):\n no_mut_on = False\n \n return line_filters\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.899611473083496}, {"mutant": {"mutator_name": "Keyword", "lineno": 108, "col_offset": 79, "end_lineno": 108, "end_col_offset": 83, "text": "False", "source_folder": "src", "source_file": "src/poodle/util.py", "unified_diff": "--- src/poodle/util.py\n+++ [Mutant] src/poodle/util.py:108\n@@ -105,7 +105,7 @@\n def create_unified_diff(mutant: Mutant) -> str | None:\n \"\"\"Add unified diff to mutant.\"\"\"\n if mutant.source_file:\n- file_lines = mutant.source_file.read_text(\"utf-8\").splitlines(keepends=True)\n+ file_lines = mutant.source_file.read_text(\"utf-8\").splitlines(keepends=False)\n file_name = str(mutant.source_file)\n return \"\".join(\n difflib.unified_diff(\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.0699446201324463}, {"mutant": {"mutator_name": "String", "lineno": 108, "col_offset": 50, "end_lineno": 108, "end_col_offset": 57, "text": "'XXutf-8XX'", "source_folder": "src", "source_file": "src/poodle/util.py", "unified_diff": "--- src/poodle/util.py\n+++ [Mutant] src/poodle/util.py:108\n@@ -105,7 +105,7 @@\n def create_unified_diff(mutant: Mutant) -> str | None:\n \"\"\"Add unified diff to mutant.\"\"\"\n if mutant.source_file:\n- file_lines = mutant.source_file.read_text(\"utf-8\").splitlines(keepends=True)\n+ file_lines = mutant.source_file.read_text('XXutf-8XX').splitlines(keepends=True)\n file_name = str(mutant.source_file)\n return \"\".join(\n difflib.unified_diff(\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.2206013202667236}, {"mutant": {"mutator_name": "Compare", "lineno": 26, "col_offset": 7, "end_lineno": 26, "end_col_offset": 25, "text": "summary.trials <= 1", "source_folder": "src", "source_file": "src/poodle/reporters/basic.py", "unified_diff": "--- src/poodle/reporters/basic.py\n+++ [Mutant] src/poodle/reporters/basic.py:26\n@@ -23,7 +23,7 @@\n \"\"\"Echo quick summary to console.\"\"\"\n echo(\"\")\n summary = testing_results.summary\n- if summary.trials < 1:\n+ if summary.trials <= 1:\n echo(\"!!! No mutants found to test !!!\", fg=\"yellow\")\n return\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.025949478149414}, {"mutant": {"mutator_name": "Compare", "lineno": 49, "col_offset": 12, "end_lineno": 49, "end_col_offset": 47, "text": "str(trial.mutant.source_file) and ''", "source_folder": "src", "source_file": "src/poodle/reporters/basic.py", "unified_diff": "--- src/poodle/reporters/basic.py\n+++ [Mutant] src/poodle/reporters/basic.py:49\n@@ -46,7 +46,7 @@\n failed_trials.sort(\n key=lambda trial: (\n trial.mutant.source_folder,\n- str(trial.mutant.source_file) or \"\",\n+ str(trial.mutant.source_file) and '',\n trial.mutant.lineno,\n trial.mutant.mutator_name,\n )\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.176746368408203}, {"mutant": {"mutator_name": "Number", "lineno": 26, "col_offset": 24, "end_lineno": 26, "end_col_offset": 25, "text": "2", "source_folder": "src", "source_file": "src/poodle/reporters/basic.py", "unified_diff": "--- src/poodle/reporters/basic.py\n+++ [Mutant] src/poodle/reporters/basic.py:26\n@@ -23,7 +23,7 @@\n \"\"\"Echo quick summary to console.\"\"\"\n echo(\"\")\n summary = testing_results.summary\n- if summary.trials < 1:\n+ if summary.trials < 2:\n echo(\"!!! No mutants found to test !!!\", fg=\"yellow\")\n return\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.181710720062256}, {"mutant": {"mutator_name": "String", "lineno": 49, "col_offset": 45, "end_lineno": 49, "end_col_offset": 47, "text": "'XXXX'", "source_folder": "src", "source_file": "src/poodle/reporters/basic.py", "unified_diff": "--- src/poodle/reporters/basic.py\n+++ [Mutant] src/poodle/reporters/basic.py:49\n@@ -46,7 +46,7 @@\n failed_trials.sort(\n key=lambda trial: (\n trial.mutant.source_folder,\n- str(trial.mutant.source_file) or \"\",\n+ str(trial.mutant.source_file) or 'XXXX',\n trial.mutant.lineno,\n trial.mutant.mutator_name,\n )\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.4792768955230713}, {"mutant": {"mutator_name": "String", "lineno": 22, "col_offset": 42, "end_lineno": 22, "end_col_offset": 53, "text": "'XXtemplatesXX'", "source_folder": "src", "source_file": "src/poodle/reporters/html.py", "unified_diff": "--- src/poodle/reporters/html.py\n+++ [Mutant] src/poodle/reporters/html.py:22\n@@ -19,7 +19,7 @@\n \n def template_path() -> Path:\n \"\"\"Return the path to the HTML Template folder.\"\"\"\n- return Path(__file__).parent.parent / \"templates\"\n+ return Path(__file__).parent.parent / 'XXtemplatesXX'\n \n \n STATIC_FILES = [\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.2222211360931396}, {"mutant": {"mutator_name": "Compare", "lineno": 90, "col_offset": 11, "end_lineno": 90, "end_col_offset": 64, "text": "'source_file' in d or d['source_folder'] is not None", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:90\n@@ -87,7 +87,7 @@\n \"\"\"Correct fields in Dictionary for JSON deserialization.\"\"\"\n if \"source_folder\" in d:\n d[\"source_folder\"] = Path(d[\"source_folder\"])\n- if \"source_file\" in d and d[\"source_folder\"] is not None:\n+ if 'source_file' in d or d['source_folder'] is not None:\n d[\"source_file\"] = Path(d[\"source_file\"])\n return d\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.7329189777374268}, {"mutant": {"mutator_name": "Keyword", "lineno": 83, "col_offset": 31, "end_lineno": 83, "end_col_offset": 35, "text": "' '", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:83\n@@ -80,7 +80,7 @@\n \n source_folder: Path\n source_file: Path | None\n- unified_diff: str | None = None\n+ unified_diff: str | None = ' '\n \n @staticmethod\n def from_dict(d: dict[str, Any]) -> dict[str, Any]:\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.3938355445861816}, {"mutant": {"mutator_name": "Keyword", "lineno": 90, "col_offset": 60, "end_lineno": 90, "end_col_offset": 64, "text": "' '", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:90\n@@ -87,7 +87,7 @@\n \"\"\"Correct fields in Dictionary for JSON deserialization.\"\"\"\n if \"source_folder\" in d:\n d[\"source_folder\"] = Path(d[\"source_folder\"])\n- if \"source_file\" in d and d[\"source_folder\"] is not None:\n+ if \"source_file\" in d and d[\"source_folder\"] is not ' ':\n d[\"source_file\"] = Path(d[\"source_file\"])\n return d\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.242090940475464}, {"mutant": {"mutator_name": "Keyword", "lineno": 186, "col_offset": 30, "end_lineno": 186, "end_col_offset": 34, "text": "' '", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:186\n@@ -183,7 +183,7 @@\n @staticmethod\n def from_dict(d: dict[str, Any]) -> dict[str, Any]:\n \"\"\"Correct fields in Dictionary for JSON deserialization.\"\"\"\n- d.pop(\"success_rate\", None)\n+ d.pop(\"success_rate\", ' ')\n d.pop(\"coverage_display\", None)\n return d\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.0319244861602783}, {"mutant": {"mutator_name": "Keyword", "lineno": 187, "col_offset": 34, "end_lineno": 187, "end_col_offset": 38, "text": "' '", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:187\n@@ -184,7 +184,7 @@\n def from_dict(d: dict[str, Any]) -> dict[str, Any]:\n \"\"\"Correct fields in Dictionary for JSON deserialization.\"\"\"\n d.pop(\"success_rate\", None)\n- d.pop(\"coverage_display\", None)\n+ d.pop(\"coverage_display\", ' ')\n return d\n \n def to_dict(self) -> dict[str, Any]:\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.2089195251464844}, {"mutant": {"mutator_name": "Number", "lineno": 157, "col_offset": 25, "end_lineno": 157, "end_col_offset": 26, "text": "1", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:157\n@@ -154,7 +154,7 @@\n @property\n def success_rate(self) -> float:\n \"\"\"Return the success rate of the test run.\"\"\"\n- if self.trials > 0:\n+ if self.trials > 1:\n return self.found / self.trials\n if self.tested > 0:\n return self.found / self.tested\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.2381982803344727}, {"mutant": {"mutator_name": "Number", "lineno": 159, "col_offset": 25, "end_lineno": 159, "end_col_offset": 26, "text": "1", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:159\n@@ -156,7 +156,7 @@\n \"\"\"Return the success rate of the test run.\"\"\"\n if self.trials > 0:\n return self.found / self.trials\n- if self.tested > 0:\n+ if self.tested > 1:\n return self.found / self.tested\n return 0.0\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.0169260501861572}], "summary": {"trials": 1323, "tested": 1323, "found": 1306, "not_found": 17, "timeout": 0, "errors": 0, "success_rate": 0.9871504157218443, "coverage_display": "98.72%"}} \ No newline at end of file +{"mutant_trials": [{"mutant": {"mutator_name": "FuncCall", "lineno": 45, "col_offset": 40, "end_lineno": 45, "end_col_offset": 73, "text": "None", "source_folder": "src", "source_file": "src/poodle/core.py", "unified_diff": "--- src/poodle/core.py\n+++ [Mutant] src/poodle/core.py:45\n@@ -42,7 +42,7 @@\n results = run_mutant_trails(work, mutants, timeout)\n \n for trial in results.mutant_trials:\n- trial.mutant.unified_diff = create_unified_diff(trial.mutant)\n+ trial.mutant.unified_diff = None\n \n for reporter in work.reporters:\n reporter(config=config, echo=work.echo, testing_results=results)\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.0598676204681396}, {"mutant": {"mutator_name": "Number", "lineno": 186, "col_offset": 43, "end_lineno": 186, "end_col_offset": 44, "text": "-1", "source_folder": "src", "source_file": "src/poodle/mutate.py", "unified_diff": "--- src/poodle/mutate.py\n+++ [Mutant] src/poodle/mutate.py:186\n@@ -183,7 +183,7 @@\n add_line_filter(line_filters, lineno, \"all\")\n no_mut_filter: list[str] = re.findall(r\"#\\s*nomut:?\\s*([A-Za-z0-9,\\s]*)[#$]*\", line)\n \n- if no_mut_filter and no_mut_filter[0].strip().lower() in (\"start\", \"on\"):\n+ if no_mut_filter and no_mut_filter[-1].strip().lower() in (\"start\", \"on\"):\n no_mut_on = True\n \n if no_mut_on:\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.5591189861297607}, {"mutant": {"mutator_name": "Number", "lineno": 196, "col_offset": 43, "end_lineno": 196, "end_col_offset": 44, "text": "-1", "source_folder": "src", "source_file": "src/poodle/mutate.py", "unified_diff": "--- src/poodle/mutate.py\n+++ [Mutant] src/poodle/mutate.py:196\n@@ -193,7 +193,7 @@\n for mutator in mutators.split(\",\"):\n add_line_filter(line_filters, lineno, mutator.strip())\n \n- if no_mut_filter and no_mut_filter[0].strip().lower() in (\"end\", \"off\"):\n+ if no_mut_filter and no_mut_filter[-1].strip().lower() in (\"end\", \"off\"):\n no_mut_on = False\n \n return line_filters\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.464325428009033}, {"mutant": {"mutator_name": "Keyword", "lineno": 108, "col_offset": 79, "end_lineno": 108, "end_col_offset": 83, "text": "False", "source_folder": "src", "source_file": "src/poodle/util.py", "unified_diff": "--- src/poodle/util.py\n+++ [Mutant] src/poodle/util.py:108\n@@ -105,7 +105,7 @@\n def create_unified_diff(mutant: Mutant) -> str | None:\n \"\"\"Add unified diff to mutant.\"\"\"\n if mutant.source_file:\n- file_lines = mutant.source_file.read_text(\"utf-8\").splitlines(keepends=True)\n+ file_lines = mutant.source_file.read_text(\"utf-8\").splitlines(keepends=False)\n file_name = str(mutant.source_file)\n return \"\".join(\n difflib.unified_diff(\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.1800050735473633}, {"mutant": {"mutator_name": "String", "lineno": 108, "col_offset": 50, "end_lineno": 108, "end_col_offset": 57, "text": "'XXutf-8XX'", "source_folder": "src", "source_file": "src/poodle/util.py", "unified_diff": "--- src/poodle/util.py\n+++ [Mutant] src/poodle/util.py:108\n@@ -105,7 +105,7 @@\n def create_unified_diff(mutant: Mutant) -> str | None:\n \"\"\"Add unified diff to mutant.\"\"\"\n if mutant.source_file:\n- file_lines = mutant.source_file.read_text(\"utf-8\").splitlines(keepends=True)\n+ file_lines = mutant.source_file.read_text('XXutf-8XX').splitlines(keepends=True)\n file_name = str(mutant.source_file)\n return \"\".join(\n difflib.unified_diff(\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 1.995598316192627}, {"mutant": {"mutator_name": "Compare", "lineno": 26, "col_offset": 7, "end_lineno": 26, "end_col_offset": 25, "text": "summary.trials <= 1", "source_folder": "src", "source_file": "src/poodle/reporters/basic.py", "unified_diff": "--- src/poodle/reporters/basic.py\n+++ [Mutant] src/poodle/reporters/basic.py:26\n@@ -23,7 +23,7 @@\n \"\"\"Echo quick summary to console.\"\"\"\n echo(\"\")\n summary = testing_results.summary\n- if summary.trials < 1:\n+ if summary.trials <= 1:\n echo(\"!!! No mutants found to test !!!\", fg=\"yellow\")\n return\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.012969493865967}, {"mutant": {"mutator_name": "Compare", "lineno": 49, "col_offset": 12, "end_lineno": 49, "end_col_offset": 47, "text": "str(trial.mutant.source_file) and ''", "source_folder": "src", "source_file": "src/poodle/reporters/basic.py", "unified_diff": "--- src/poodle/reporters/basic.py\n+++ [Mutant] src/poodle/reporters/basic.py:49\n@@ -46,7 +46,7 @@\n failed_trials.sort(\n key=lambda trial: (\n trial.mutant.source_folder,\n- str(trial.mutant.source_file) or \"\",\n+ str(trial.mutant.source_file) and '',\n trial.mutant.lineno,\n trial.mutant.mutator_name,\n )\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.1697938442230225}, {"mutant": {"mutator_name": "Number", "lineno": 26, "col_offset": 24, "end_lineno": 26, "end_col_offset": 25, "text": "2", "source_folder": "src", "source_file": "src/poodle/reporters/basic.py", "unified_diff": "--- src/poodle/reporters/basic.py\n+++ [Mutant] src/poodle/reporters/basic.py:26\n@@ -23,7 +23,7 @@\n \"\"\"Echo quick summary to console.\"\"\"\n echo(\"\")\n summary = testing_results.summary\n- if summary.trials < 1:\n+ if summary.trials < 2:\n echo(\"!!! No mutants found to test !!!\", fg=\"yellow\")\n return\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.3608908653259277}, {"mutant": {"mutator_name": "String", "lineno": 49, "col_offset": 45, "end_lineno": 49, "end_col_offset": 47, "text": "'XXXX'", "source_folder": "src", "source_file": "src/poodle/reporters/basic.py", "unified_diff": "--- src/poodle/reporters/basic.py\n+++ [Mutant] src/poodle/reporters/basic.py:49\n@@ -46,7 +46,7 @@\n failed_trials.sort(\n key=lambda trial: (\n trial.mutant.source_folder,\n- str(trial.mutant.source_file) or \"\",\n+ str(trial.mutant.source_file) or 'XXXX',\n trial.mutant.lineno,\n trial.mutant.mutator_name,\n )\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.2349610328674316}, {"mutant": {"mutator_name": "String", "lineno": 22, "col_offset": 42, "end_lineno": 22, "end_col_offset": 53, "text": "'XXtemplatesXX'", "source_folder": "src", "source_file": "src/poodle/reporters/html.py", "unified_diff": "--- src/poodle/reporters/html.py\n+++ [Mutant] src/poodle/reporters/html.py:22\n@@ -19,7 +19,7 @@\n \n def template_path() -> Path:\n \"\"\"Return the path to the HTML Template folder.\"\"\"\n- return Path(__file__).parent.parent / \"templates\"\n+ return Path(__file__).parent.parent / 'XXtemplatesXX'\n \n \n STATIC_FILES = [\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.860416889190674}, {"mutant": {"mutator_name": "Compare", "lineno": 90, "col_offset": 11, "end_lineno": 90, "end_col_offset": 64, "text": "'source_file' in d or d['source_folder'] is not None", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:90\n@@ -87,7 +87,7 @@\n \"\"\"Correct fields in Dictionary for JSON deserialization.\"\"\"\n if \"source_folder\" in d:\n d[\"source_folder\"] = Path(d[\"source_folder\"])\n- if \"source_file\" in d and d[\"source_folder\"] is not None:\n+ if 'source_file' in d or d['source_folder'] is not None:\n d[\"source_file\"] = Path(d[\"source_file\"])\n return d\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.748727321624756}, {"mutant": {"mutator_name": "Keyword", "lineno": 83, "col_offset": 31, "end_lineno": 83, "end_col_offset": 35, "text": "' '", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:83\n@@ -80,7 +80,7 @@\n \n source_folder: Path\n source_file: Path | None\n- unified_diff: str | None = None\n+ unified_diff: str | None = ' '\n \n @staticmethod\n def from_dict(d: dict[str, Any]) -> dict[str, Any]:\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.005250930786133}, {"mutant": {"mutator_name": "Keyword", "lineno": 90, "col_offset": 60, "end_lineno": 90, "end_col_offset": 64, "text": "' '", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:90\n@@ -87,7 +87,7 @@\n \"\"\"Correct fields in Dictionary for JSON deserialization.\"\"\"\n if \"source_folder\" in d:\n d[\"source_folder\"] = Path(d[\"source_folder\"])\n- if \"source_file\" in d and d[\"source_folder\"] is not None:\n+ if \"source_file\" in d and d[\"source_folder\"] is not ' ':\n d[\"source_file\"] = Path(d[\"source_file\"])\n return d\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.1990931034088135}, {"mutant": {"mutator_name": "Keyword", "lineno": 186, "col_offset": 30, "end_lineno": 186, "end_col_offset": 34, "text": "' '", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:186\n@@ -183,7 +183,7 @@\n @staticmethod\n def from_dict(d: dict[str, Any]) -> dict[str, Any]:\n \"\"\"Correct fields in Dictionary for JSON deserialization.\"\"\"\n- d.pop(\"success_rate\", None)\n+ d.pop(\"success_rate\", ' ')\n d.pop(\"coverage_display\", None)\n return d\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.261491537094116}, {"mutant": {"mutator_name": "Keyword", "lineno": 187, "col_offset": 34, "end_lineno": 187, "end_col_offset": 38, "text": "' '", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:187\n@@ -184,7 +184,7 @@\n def from_dict(d: dict[str, Any]) -> dict[str, Any]:\n \"\"\"Correct fields in Dictionary for JSON deserialization.\"\"\"\n d.pop(\"success_rate\", None)\n- d.pop(\"coverage_display\", None)\n+ d.pop(\"coverage_display\", ' ')\n return d\n \n def to_dict(self) -> dict[str, Any]:\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.5057268142700195}, {"mutant": {"mutator_name": "Number", "lineno": 157, "col_offset": 25, "end_lineno": 157, "end_col_offset": 26, "text": "1", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:157\n@@ -154,7 +154,7 @@\n @property\n def success_rate(self) -> float:\n \"\"\"Return the success rate of the test run.\"\"\"\n- if self.trials > 0:\n+ if self.trials > 1:\n return self.found / self.trials\n if self.tested > 0:\n return self.found / self.tested\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.6431467533111572}, {"mutant": {"mutator_name": "Number", "lineno": 159, "col_offset": 25, "end_lineno": 159, "end_col_offset": 26, "text": "1", "source_folder": "src", "source_file": "src/poodle/data_types/data.py", "unified_diff": "--- src/poodle/data_types/data.py\n+++ [Mutant] src/poodle/data_types/data.py:159\n@@ -156,7 +156,7 @@\n \"\"\"Return the success rate of the test run.\"\"\"\n if self.trials > 0:\n return self.found / self.trials\n- if self.tested > 0:\n+ if self.tested > 1:\n return self.found / self.tested\n return 0.0\n \n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.8689138889312744}], "summary": {"trials": 1323, "tested": 1323, "found": 1306, "not_found": 17, "timeout": 0, "errors": 0, "success_rate": 0.9871504157218443, "coverage_display": "98.72%"}} \ No newline at end of file