From 87da5813763afec79480f36b842810d0df1ca573 Mon Sep 17 00:00:00 2001 From: WiredNerd Date: Thu, 4 Jan 2024 02:58:04 +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 a66aebd..4b429f4 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": 3.173774480819702}, {"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": 3.191457748413086}, {"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": 1.9835546016693115}, {"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.0949547290802}, {"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": 2.0363876819610596}, {"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": 3.21000337600708}, {"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.2029595375061035}, {"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.2125208377838135}, {"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.386767625808716}, {"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.016901969909668}, {"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.9156370162963867}, {"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.4269251823425293}, {"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.1157426834106445}, {"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.063248634338379}, {"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.3188958168029785}, {"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.286196231842041}, {"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.0748727321624756}], "summary": {"trials": 1325, "tested": 1325, "found": 1308, "not_found": 17, "timeout": 0, "errors": 0, "success_rate": 0.9871698113207548, "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.7598648071289062}, {"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": 3.948544979095459}, {"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": 3.965261220932007}, {"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.56714129447937}, {"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.9739367961883545}, {"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": 3.976145029067993}, {"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.992349624633789}, {"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.744770050048828}, {"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.708855628967285}, {"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.9661848545074463}, {"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": 3.973384380340576}, {"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": 4.095665216445923}, {"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.763976812362671}, {"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": 4.0238378047943115}, {"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.9880239963531494}, {"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.8955368995666504}, {"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.700777769088745}, {"mutant": {"mutator_name": "String", "lineno": 71, "col_offset": 44, "end_lineno": 71, "end_col_offset": 58, "text": "'XXfile_filtersXX'", "source_folder": "src", "source_file": "src/poodle/config.py", "unified_diff": "--- src/poodle/config.py\n+++ [Mutant] src/poodle/config.py:71\n@@ -68,7 +68,7 @@\n )\n logging.basicConfig(format=log_format, level=log_level)\n \n- file_filters = get_str_list_from_config(\"file_filters\", config_file_data, default=default_file_filters)\n+ file_filters = get_str_list_from_config('XXfile_filtersXX', config_file_data, default=default_file_filters)\n # TODO: append file excludes and append py excludes\n # file_filters += get_str_list_from_config(\"exclude\", config_file_data, default=[]) # noqa: ERA001\n file_filters += cmd_excludes\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.768822431564331}, {"mutant": {"mutator_name": "String", "lineno": 83, "col_offset": 41, "end_lineno": 83, "end_col_offset": 55, "text": "'XXproject_nameXX'", "source_folder": "src", "source_file": "src/poodle/config.py", "unified_diff": "--- src/poodle/config.py\n+++ [Mutant] src/poodle/config.py:83\n@@ -80,7 +80,7 @@\n merge(cmd_reporter_opts, {\"json_report_file\": cmd_json})\n \n return PoodleConfig(\n- project_name=get_str_from_config(\"project_name\", config_file_data, default=project_name),\n+ project_name=get_str_from_config('XXproject_nameXX', config_file_data, default=project_name),\n project_version=get_str_from_config(\"project_version\", config_file_data, default=project_version),\n config_file=config_file_path,\n source_folders=get_source_folders(cmd_sources, config_file_data),\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.074641466140747}, {"mutant": {"mutator_name": "String", "lineno": 84, "col_offset": 44, "end_lineno": 84, "end_col_offset": 61, "text": "'XXproject_versionXX'", "source_folder": "src", "source_file": "src/poodle/config.py", "unified_diff": "--- src/poodle/config.py\n+++ [Mutant] src/poodle/config.py:84\n@@ -81,7 +81,7 @@\n \n return PoodleConfig(\n project_name=get_str_from_config(\"project_name\", config_file_data, default=project_name),\n- project_version=get_str_from_config(\"project_version\", config_file_data, default=project_version),\n+ project_version=get_str_from_config('XXproject_versionXX', config_file_data, default=project_version),\n config_file=config_file_path,\n source_folders=get_source_folders(cmd_sources, config_file_data),\n only_files=get_str_list_from_config(\"only_files\", config_file_data, default=[], command_line=cmd_only_files),\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 3.7601852416992188}, {"mutant": {"mutator_name": "String", "lineno": 131, "col_offset": 41, "end_lineno": 131, "end_col_offset": 52, "text": "'XXreportersXX'", "source_folder": "src", "source_file": "src/poodle/config.py", "unified_diff": "--- src/poodle/config.py\n+++ [Mutant] src/poodle/config.py:131\n@@ -128,7 +128,7 @@\n cmd_json: Path | None,\n ) -> list[str]:\n \"\"\"Retrieve list of reporters to use.\"\"\"\n- reporters = get_str_list_from_config(\"reporters\", config_file_data, default=default_reporters)\n+ reporters = get_str_list_from_config('XXreportersXX', config_file_data, default=default_reporters)\n reporters += [reporter for reporter in cmd_report if reporter not in reporters]\n if cmd_html:\n reporters.append(\"html\")\n"}, "result": {"found": false, "reason_code": "Mutant Not Found", "reason_desc": null}, "duration": 2.483811140060425}], "summary": {"trials": 1335, "tested": 1335, "found": 1314, "not_found": 21, "timeout": 0, "errors": 0, "success_rate": 0.9842696629213483, "coverage_display": "98.43%"}} \ No newline at end of file