Skip to content

Instantly share code, notes, and snippets.

@jameshmread
Created April 29, 2018 23:16
Show Gist options
  • Save jameshmread/57e7bd877d4203d61a3db06a4c7fc76c to your computer and use it in GitHub Desktop.
Save jameshmread/57e7bd877d4203d61a3db06a4c7fc76c to your computer and use it in GitHub Desktop.
JSON file for professor X after mutation analysis and unit testing addition
[
{
"runner": "mocha",
"config": {
"reporter": "dot"
},
"duration": {
"d": 0,
"h": 0,
"m": 0,
"s": 34,
"ms": 312
},
"scoresPerFile": {
"files": [
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\sourceCodeModifier\\SourceCodeModifier.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\MutationFactory.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\CodeInspector.ts",
"C:\\git\\Honours-Project\\ProfessorX-Test\\src\\cleanup\\Cleaner.ts"
],
"mutantsSurvivedForEach": [
5,
5,
0,
7,
0,
46,
4,
9,
13,
0,
6,
2,
31,
14,
2,
3
],
"totalMutationsForEach": [
20,
11,
4,
7,
13,
46,
14,
9,
40,
0,
123,
10,
55,
33,
4,
6
]
},
"overallScores": {
"totalKilledMutants": 248,
"totalSurvivingMutants": 147,
"mutationScore": 62.78
}
},
[
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "true",
"mutationType": "Inverting a Boolean"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" /\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts12C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" * new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts16C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / 4))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / results.length / 4)\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "(results.length / 4)",
"mutationType": "Removal of Parenthesis in a statement",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts20C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end / 1; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts24C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % 1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % 60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % 60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 24);\r",
"lineNumber": 27
},
{
"lineText": " h = h % 24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"mutatedCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % 1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % 60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % 60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 25);\r",
"lineNumber": 27
},
{
"lineText": " h = h % 24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.spec.ts56C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "100",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.ts",
"targetNode": "true",
"mutationType": "Inverting a Boolean"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber * FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts72C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 10
},
{
"lineText": " public static isNodeMutatable (node: Node): boolean {\r",
"lineNumber": 11
},
{
"lineText": " const mutationRules = new ValidMutationRules();\r",
"lineNumber": 12
},
{
"lineText": " mutationRules.setNodeFamily(node);\r",
"lineNumber": 13
},
{
"lineText": " if (mutationRules.nodeFamily === void 0) { return false; }\r",
"lineNumber": 14
},
{
"lineText": " return mutationRules.traverseRuleTree(ValidMutationRules.RULE_TREE, 0);\r",
"lineNumber": 15
},
{
"lineText": " }\r",
"lineNumber": 16
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 10
},
{
"lineText": " public static isNodeMutatable (node: Node): boolean {\r",
"lineNumber": 11
},
{
"lineText": " const mutationRules = new ValidMutationRules();\r",
"lineNumber": 12
},
{
"lineText": " mutationRules.setNodeFamily(node);\r",
"lineNumber": 13
},
{
"lineText": " if (mutationRules.nodeFamily === void 0) { return true; }\r",
"lineNumber": 14
},
{
"lineText": " return mutationRules.traverseRuleTree(ValidMutationRules.RULE_TREE, 0);\r",
"lineNumber": 15
},
{
"lineText": " }\r",
"lineNumber": 16
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\CodeInspector.ts",
"targetNode": "false",
"mutationType": "Inverting a Boolean",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\CodeInspector.spec.ts84C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": " [SyntaxKind.BinaryExpression] : false\r",
"lineNumber": 19
},
{
"lineText": " }\r",
"lineNumber": 20
}
],
"mutatedCode": [
{
"lineText": " [SyntaxKind.BinaryExpression] : true\r",
"lineNumber": 19
},
{
"lineText": " }\r",
"lineNumber": 20
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "false",
"mutationType": "Inverting a Boolean",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.spec.ts0C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 49
},
{
"lineText": " public spawnWorkers () {\r",
"lineNumber": 50
},
{
"lineText": " for (let i = 0; i < this.logicalCores; i++) {\r",
"lineNumber": 51
},
{
"lineText": " this.workers.push(worker.fork(\"./src/Worker.ts\", [], {silent: false}));\r",
"lineNumber": 52
},
{
"lineText": " Logger.info(\"Creating Worker: \", i);\r",
"lineNumber": 53
},
{
"lineText": " this.createWorkerMessagers(this.workers[i]);\r",
"lineNumber": 54
},
{
"lineText": " this.workers[i].send(JSON.stringify(this.splitNodes[i]));\r",
"lineNumber": 55
},
{
"lineText": " }\r",
"lineNumber": 56
},
{
"lineText": " }\r",
"lineNumber": 57
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 49
},
{
"lineText": " public spawnWorkers () {\r",
"lineNumber": 50
},
{
"lineText": " for (let i = 1; i < this.logicalCores; i++) {\r",
"lineNumber": 51
},
{
"lineText": " this.workers.push(worker.fork(\"./src/Worker.ts\", [], {silent: false}));\r",
"lineNumber": 52
},
{
"lineText": " Logger.info(\"Creating Worker: \", i);\r",
"lineNumber": 53
},
{
"lineText": " this.createWorkerMessagers(this.workers[i]);\r",
"lineNumber": 54
},
{
"lineText": " this.workers[i].send(JSON.stringify(this.splitNodes[i]));\r",
"lineNumber": 55
},
{
"lineText": " }\r",
"lineNumber": 56
},
{
"lineText": " }\r",
"lineNumber": 57
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.spec.ts4C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\sourceCodeModifier\\SourceCodeModifier.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" - new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts12C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" /\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts16C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" * new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts20C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / 4))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / 0))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "4",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts24C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 18
},
{
"lineText": " public static traverseFilesForNodes () {\r",
"lineNumber": 19
},
{
"lineText": " Logger.dumpLogToConsole();\r",
"lineNumber": 20
},
{
"lineText": " console.log(\"dd\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 21
},
{
"lineText": " for (let i = 0; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 22
},
{
"lineText": " NodeHandler.getAllNodesInFile(NodeHandler.fileDescriptors[i].codeInspector, i);\r",
"lineNumber": 23
},
{
"lineText": " }\r",
"lineNumber": 24
},
{
"lineText": " if (this.fileNameNodes.length === 0) {\r",
"lineNumber": 25
},
{
"lineText": " Logger.fatal(\"No nodes found to mutate, check Professor X config settings.\", NodeHandler);\r",
"lineNumber": 26
},
{
"lineText": " throw Error(\"No nodes found to mutate, check Professor X config settings.\");\r",
"lineNumber": 27
},
{
"lineText": " }\r",
"lineNumber": 28
},
{
"lineText": " Logger.info(\"Found Nodes\", NodeHandler.fileNameNodes.length);\r",
"lineNumber": 29
},
{
"lineText": " return NodeHandler.fileNameNodes;\r",
"lineNumber": 30
},
{
"lineText": " }\r",
"lineNumber": 31
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 18
},
{
"lineText": " public static traverseFilesForNodes () {\r",
"lineNumber": 19
},
{
"lineText": " Logger.dumpLogToConsole();\r",
"lineNumber": 20
},
{
"lineText": " console.log(\"dd\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 21
},
{
"lineText": " for (let i = -1; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 22
},
{
"lineText": " NodeHandler.getAllNodesInFile(NodeHandler.fileDescriptors[i].codeInspector, i);\r",
"lineNumber": 23
},
{
"lineText": " }\r",
"lineNumber": 24
},
{
"lineText": " if (this.fileNameNodes.length === 0) {\r",
"lineNumber": 25
},
{
"lineText": " Logger.fatal(\"No nodes found to mutate, check Professor X config settings.\", NodeHandler);\r",
"lineNumber": 26
},
{
"lineText": " throw Error(\"No nodes found to mutate, check Professor X config settings.\");\r",
"lineNumber": 27
},
{
"lineText": " }\r",
"lineNumber": 28
},
{
"lineText": " Logger.info(\"Found Nodes\", NodeHandler.fileNameNodes.length);\r",
"lineNumber": 29
},
{
"lineText": " return NodeHandler.fileNameNodes;\r",
"lineNumber": 30
},
{
"lineText": " }\r",
"lineNumber": 31
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.spec.ts28C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end + 0; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts36C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter - \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts72C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ / \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts76C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath + \"/\" + file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath + \"/\" - file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts84C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 49
},
{
"lineText": " public spawnWorkers () {\r",
"lineNumber": 50
},
{
"lineText": " for (let i = 0; i < this.logicalCores; i++) {\r",
"lineNumber": 51
},
{
"lineText": " this.workers.push(worker.fork(\"./src/Worker.ts\", [], {silent: false}));\r",
"lineNumber": 52
},
{
"lineText": " Logger.info(\"Creating Worker: \", i);\r",
"lineNumber": 53
},
{
"lineText": " this.createWorkerMessagers(this.workers[i]);\r",
"lineNumber": 54
},
{
"lineText": " this.workers[i].send(JSON.stringify(this.splitNodes[i]));\r",
"lineNumber": 55
},
{
"lineText": " }\r",
"lineNumber": 56
},
{
"lineText": " }\r",
"lineNumber": 57
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 49
},
{
"lineText": " public spawnWorkers () {\r",
"lineNumber": 50
},
{
"lineText": " for (let i = 0; i < this.logicalCores; i++) {\r",
"lineNumber": 51
},
{
"lineText": " this.workers.push(worker.fork(\"./src/Worker.ts\", [], {silent: true}));\r",
"lineNumber": 52
},
{
"lineText": " Logger.info(\"Creating Worker: \", i);\r",
"lineNumber": 53
},
{
"lineText": " this.createWorkerMessagers(this.workers[i]);\r",
"lineNumber": 54
},
{
"lineText": " this.workers[i].send(JSON.stringify(this.splitNodes[i]));\r",
"lineNumber": 55
},
{
"lineText": " }\r",
"lineNumber": 56
},
{
"lineText": " }\r",
"lineNumber": 57
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"targetNode": "false",
"mutationType": "Inverting a Boolean",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.spec.ts2C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"mutatedCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts6C13516undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "60",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 539,
"end": 542
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"plainText": "60",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"mutatedCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts10C13516undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "60",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 539,
"end": 542
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"plainText": "60",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() / \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts14C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() * \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts18C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " public multiplyByNegative (): string {\r",
"lineNumber": 39
},
{
"lineText": " const negativeNum = this.number;\r",
"lineNumber": 40
},
{
"lineText": " return (negativeNum * -1).toString();\r",
"lineNumber": 41
},
{
"lineText": " }\r",
"lineNumber": 42
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " public multiplyByNegative (): string {\r",
"lineNumber": 39
},
{
"lineText": " const negativeNum = this.number;\r",
"lineNumber": 40
},
{
"lineText": " return (negativeNum / -1).toString();\r",
"lineNumber": 41
},
{
"lineText": " }\r",
"lineNumber": 42
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.spec.ts22C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 22
},
{
"lineText": " public isNodeValidForMutation (nodeText: string) {\r",
"lineNumber": 23
},
{
"lineText": " return !isNaN(parseInt(nodeText, 10));\r",
"lineNumber": 24
},
{
"lineText": " }\r",
"lineNumber": 25
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 22
},
{
"lineText": " public isNodeValidForMutation (nodeText: string) {\r",
"lineNumber": 23
},
{
"lineText": " return !isNaN(parseInt(nodeText, 11));\r",
"lineNumber": 24
},
{
"lineText": " }\r",
"lineNumber": 25
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.spec.ts30C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 82
},
{
"lineText": " private static removeFileFromAnalysis (file: string, arrayContainingFile: Array<string>) {\r",
"lineNumber": 83
},
{
"lineText": " arrayContainingFile.splice(arrayContainingFile.indexOf(file), 1);\r",
"lineNumber": 84
},
{
"lineText": " Logger.warn(\"Could not find File: \", file);\r",
"lineNumber": 85
},
{
"lineText": " }\r",
"lineNumber": 86
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 82
},
{
"lineText": " private static removeFileFromAnalysis (file: string, arrayContainingFile: Array<string>) {\r",
"lineNumber": 83
},
{
"lineText": " arrayContainingFile.splice(arrayContainingFile.indexOf(file), -1);\r",
"lineNumber": 84
},
{
"lineText": " Logger.warn(\"Could not find File: \", file);\r",
"lineNumber": 85
},
{
"lineText": " }\r",
"lineNumber": 86
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.spec.ts38C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "2",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.ts",
"targetNode": "false",
"mutationType": "Inverting a Boolean"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath + \"/\" + file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath - \"/\" + file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts98C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\cleanup\\Cleaner.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName * \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts21C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() - \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts25C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() /\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts29C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "5",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "5",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.ts",
"targetNode": "true",
"mutationType": "Inverting a Boolean"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" / this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts73C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" * this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts77C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"mutatedCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts85C5060undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "3",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 701,
"end": 703
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"plainText": "3",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"mutatedCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts89C5060undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "3",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 701,
"end": 703
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"plainText": "3",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts"
}
}
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 10
},
{
"lineText": " public static isNodeMutatable (node: Node): boolean {\r",
"lineNumber": 11
},
{
"lineText": " const mutationRules = new ValidMutationRules();\r",
"lineNumber": 12
},
{
"lineText": " mutationRules.setNodeFamily(node);\r",
"lineNumber": 13
},
{
"lineText": " if (mutationRules.nodeFamily === void 0) { return false; }\r",
"lineNumber": 14
},
{
"lineText": " return mutationRules.traverseRuleTree(ValidMutationRules.RULE_TREE, 0);\r",
"lineNumber": 15
},
{
"lineText": " }\r",
"lineNumber": 16
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 10
},
{
"lineText": " public static isNodeMutatable (node: Node): boolean {\r",
"lineNumber": 11
},
{
"lineText": " const mutationRules = new ValidMutationRules();\r",
"lineNumber": 12
},
{
"lineText": " mutationRules.setNodeFamily(node);\r",
"lineNumber": 13
},
{
"lineText": " if (mutationRules.nodeFamily === void 0) { return null; }\r",
"lineNumber": 14
},
{
"lineText": " return mutationRules.traverseRuleTree(ValidMutationRules.RULE_TREE, 0);\r",
"lineNumber": 15
},
{
"lineText": " }\r",
"lineNumber": 16
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\CodeInspector.ts",
"targetNode": "return false;",
"mutationType": "Modifying a Return Statement to return null",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\CodeInspector.spec.ts105C5060undefined.m.ts"
}
],
[
{
"originalCode": [
{
"lineText": " [SyntaxKind.VoidExpression]: false\r",
"lineNumber": 26
},
{
"lineText": " }\r",
"lineNumber": 27
}
],
"mutatedCode": [
{
"lineText": " [SyntaxKind.VoidExpression]: true\r",
"lineNumber": 26
},
{
"lineText": " }\r",
"lineNumber": 27
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "false",
"mutationType": "Inverting a Boolean",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.spec.ts1C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" *\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts13C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" - new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts17C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 48
},
{
"lineText": " public static createAllFileDescriptors (): Array<IFileDescriptor> {\r",
"lineNumber": 49
},
{
"lineText": " // ConfigManager.filesToMutate.filter((srcFile) => {if (existsSync(srcFile)) { return srcFile; } });\r",
"lineNumber": 50
},
{
"lineText": " // ConfigManager.testFiles.filter((testFile) => { if (existsSync(testFile)) {return testFile; } });\r",
"lineNumber": 51
},
{
"lineText": " console.log(\"before\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 52
},
{
"lineText": "\r",
"lineNumber": 53
},
{
"lineText": " for (let i = 0; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 54
},
{
"lineText": " // if (!this.fileExists(ConfigManager.filesToMutate[i]) || !this.fileExists(ConfigManager.testFiles[i])) {\r",
"lineNumber": 55
},
{
"lineText": " // console.log(\"file removed\", ConfigManager.filesToMutate[i]);\r",
"lineNumber": 56
},
{
"lineText": " // ConfigManager.filesToMutate.splice(\r",
"lineNumber": 57
},
{
"lineText": " // ConfigManager.filesToMutate.indexOf(ConfigManager.filesToMutate[i], 1));\r",
"lineNumber": 58
},
{
"lineText": " // ConfigManager.testFiles.splice(\r",
"lineNumber": 59
},
{
"lineText": " // ConfigManager.testFiles.indexOf(ConfigManager.testFiles[i], 1));\r",
"lineNumber": 60
},
{
"lineText": " // NodeHandler.fileDescriptors.splice(i, 1);\r",
"lineNumber": 61
},
{
"lineText": " // } else {\r",
"lineNumber": 62
},
{
"lineText": " console.log(\"file\", i);\r",
"lineNumber": 63
},
{
"lineText": " const fo = new FileObject(ConfigManager.filesToMutate[i], ConfigManager.testFiles[i]);\r",
"lineNumber": 64
},
{
"lineText": " const fh = new FileHandler(fo);\r",
"lineNumber": 65
},
{
"lineText": " const so = new SourceObject(fh.getSourceObject());\r",
"lineNumber": 66
},
{
"lineText": " const ci = new CodeInspector(so.originalSourceObject);\r",
"lineNumber": 67
},
{
"lineText": " NodeHandler.fileDescriptors.push({\r",
"lineNumber": 68
},
{
"lineText": " fileName: ConfigManager.filesToMutate[i],\r",
"lineNumber": 69
},
{
"lineText": " fileObject: fo, fileHandler: fh, sourceObject: so, codeInspector: ci\r",
"lineNumber": 70
},
{
"lineText": " });\r",
"lineNumber": 71
},
{
"lineText": " // }\r",
"lineNumber": 72
},
{
"lineText": " }\r",
"lineNumber": 73
},
{
"lineText": " console.log(\"aa\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 74
},
{
"lineText": " console.log(\"file desc\", NodeHandler.fileDescriptors.length);\r",
"lineNumber": 75
},
{
"lineText": " return NodeHandler.fileDescriptors;\r",
"lineNumber": 76
},
{
"lineText": " }\r",
"lineNumber": 77
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 48
},
{
"lineText": " public static createAllFileDescriptors (): Array<IFileDescriptor> {\r",
"lineNumber": 49
},
{
"lineText": " // ConfigManager.filesToMutate.filter((srcFile) => {if (existsSync(srcFile)) { return srcFile; } });\r",
"lineNumber": 50
},
{
"lineText": " // ConfigManager.testFiles.filter((testFile) => { if (existsSync(testFile)) {return testFile; } });\r",
"lineNumber": 51
},
{
"lineText": " console.log(\"before\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 52
},
{
"lineText": "\r",
"lineNumber": 53
},
{
"lineText": " for (let i = 1; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 54
},
{
"lineText": " // if (!this.fileExists(ConfigManager.filesToMutate[i]) || !this.fileExists(ConfigManager.testFiles[i])) {\r",
"lineNumber": 55
},
{
"lineText": " // console.log(\"file removed\", ConfigManager.filesToMutate[i]);\r",
"lineNumber": 56
},
{
"lineText": " // ConfigManager.filesToMutate.splice(\r",
"lineNumber": 57
},
{
"lineText": " // ConfigManager.filesToMutate.indexOf(ConfigManager.filesToMutate[i], 1));\r",
"lineNumber": 58
},
{
"lineText": " // ConfigManager.testFiles.splice(\r",
"lineNumber": 59
},
{
"lineText": " // ConfigManager.testFiles.indexOf(ConfigManager.testFiles[i], 1));\r",
"lineNumber": 60
},
{
"lineText": " // NodeHandler.fileDescriptors.splice(i, 1);\r",
"lineNumber": 61
},
{
"lineText": " // } else {\r",
"lineNumber": 62
},
{
"lineText": " console.log(\"file\", i);\r",
"lineNumber": 63
},
{
"lineText": " const fo = new FileObject(ConfigManager.filesToMutate[i], ConfigManager.testFiles[i]);\r",
"lineNumber": 64
},
{
"lineText": " const fh = new FileHandler(fo);\r",
"lineNumber": 65
},
{
"lineText": " const so = new SourceObject(fh.getSourceObject());\r",
"lineNumber": 66
},
{
"lineText": " const ci = new CodeInspector(so.originalSourceObject);\r",
"lineNumber": 67
},
{
"lineText": " NodeHandler.fileDescriptors.push({\r",
"lineNumber": 68
},
{
"lineText": " fileName: ConfigManager.filesToMutate[i],\r",
"lineNumber": 69
},
{
"lineText": " fileObject: fo, fileHandler: fh, sourceObject: so, codeInspector: ci\r",
"lineNumber": 70
},
{
"lineText": " });\r",
"lineNumber": 71
},
{
"lineText": " // }\r",
"lineNumber": 72
},
{
"lineText": " }\r",
"lineNumber": 73
},
{
"lineText": " console.log(\"aa\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 74
},
{
"lineText": " console.log(\"file desc\", NodeHandler.fileDescriptors.length);\r",
"lineNumber": 75
},
{
"lineText": " return NodeHandler.fileDescriptors;\r",
"lineNumber": 76
},
{
"lineText": " }\r",
"lineNumber": 77
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.spec.ts21C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end * 1; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts25C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % 1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % 60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % 60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 24);\r",
"lineNumber": 27
},
{
"lineText": " h = h % 24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"mutatedCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % 1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % 60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % 60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 23);\r",
"lineNumber": 27
},
{
"lineText": " h = h % 24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.spec.ts57C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "100",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.ts",
"targetNode": "false",
"mutationType": "Inverting a Boolean"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber - FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts73C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 47
},
{
"lineText": " private static removeFoundFiles (fileArray) {\r",
"lineNumber": 48
},
{
"lineText": " fileArray.forEach((file) => {\r",
"lineNumber": 49
},
{
"lineText": " fs.unlinkSync(ConfigManager.filePath + file);\r",
"lineNumber": 50
},
{
"lineText": " });\r",
"lineNumber": 51
},
{
"lineText": " }\r",
"lineNumber": 52
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 47
},
{
"lineText": " private static removeFoundFiles (fileArray) {\r",
"lineNumber": 48
},
{
"lineText": " fileArray.forEach((file) => {\r",
"lineNumber": 49
},
{
"lineText": " fs.unlinkSync(ConfigManager.filePath - file);\r",
"lineNumber": 50
},
{
"lineText": " });\r",
"lineNumber": 51
},
{
"lineText": " }\r",
"lineNumber": 52
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\cleanup\\Cleaner.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\cleanup\\Cleaner.spec.ts85C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 49
},
{
"lineText": " public spawnWorkers () {\r",
"lineNumber": 50
},
{
"lineText": " for (let i = 0; i < this.logicalCores; i++) {\r",
"lineNumber": 51
},
{
"lineText": " this.workers.push(worker.fork(\"./src/Worker.ts\", [], {silent: false}));\r",
"lineNumber": 52
},
{
"lineText": " Logger.info(\"Creating Worker: \", i);\r",
"lineNumber": 53
},
{
"lineText": " this.createWorkerMessagers(this.workers[i]);\r",
"lineNumber": 54
},
{
"lineText": " this.workers[i].send(JSON.stringify(this.splitNodes[i]));\r",
"lineNumber": 55
},
{
"lineText": " }\r",
"lineNumber": 56
},
{
"lineText": " }\r",
"lineNumber": 57
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 49
},
{
"lineText": " public spawnWorkers () {\r",
"lineNumber": 50
},
{
"lineText": " for (let i = -1; i < this.logicalCores; i++) {\r",
"lineNumber": 51
},
{
"lineText": " this.workers.push(worker.fork(\"./src/Worker.ts\", [], {silent: false}));\r",
"lineNumber": 52
},
{
"lineText": " Logger.info(\"Creating Worker: \", i);\r",
"lineNumber": 53
},
{
"lineText": " this.createWorkerMessagers(this.workers[i]);\r",
"lineNumber": 54
},
{
"lineText": " this.workers[i].send(JSON.stringify(this.splitNodes[i]));\r",
"lineNumber": 55
},
{
"lineText": " }\r",
"lineNumber": 56
},
{
"lineText": " }\r",
"lineNumber": 57
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.spec.ts5C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" / new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts13C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" *\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts17C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / 4))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / 5))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "4",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts21C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / 4))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / 1))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "4",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts25C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end + -1; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts37C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % 1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % 60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % 60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 24);\r",
"lineNumber": 27
},
{
"lineText": " h = h % 24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"mutatedCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % -1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % 60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % 60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 24);\r",
"lineNumber": 27
},
{
"lineText": " h = h % 24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.spec.ts57C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.ts",
"targetNode": "true",
"mutationType": "Inverting a Boolean"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter / \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts73C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ * \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts77C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"mutatedCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts81C9160undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "-",
"nodeToBeMutated": {
"syntaxType": 38,
"positions": {
"pos": 699,
"end": 701
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"plainText": "-",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath + \"/\" + file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath + \"/\" / file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts85C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"mutatedCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts7C13516undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "60",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 539,
"end": 542
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"plainText": "60",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"mutatedCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts11C13516undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "60",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 539,
"end": 542
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"plainText": "60",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() * \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts15C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() - \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts19C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 22
},
{
"lineText": " public isNodeValidForMutation (nodeText: string) {\r",
"lineNumber": 23
},
{
"lineText": " return !isNaN(parseInt(nodeText, 10));\r",
"lineNumber": 24
},
{
"lineText": " }\r",
"lineNumber": 25
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 22
},
{
"lineText": " public isNodeValidForMutation (nodeText: string) {\r",
"lineNumber": 23
},
{
"lineText": " return !isNaN(parseInt(nodeText, 9));\r",
"lineNumber": 24
},
{
"lineText": " }\r",
"lineNumber": 25
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.spec.ts31C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end - 1; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts39C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 27
},
{
"lineText": " public addMutationResultToList (): void {\r",
"lineNumber": 28
},
{
"lineText": " if (MutationResultManager.mutationResults.indexOf(this.currentMutationResult) < 0) {\r",
"lineNumber": 29
},
{
"lineText": " MutationResultManager.mutationResults.push(this.currentMutationResult);\r",
"lineNumber": 30
},
{
"lineText": " }\r",
"lineNumber": 31
},
{
"lineText": " }\r",
"lineNumber": 32
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 27
},
{
"lineText": " public addMutationResultToList (): void {\r",
"lineNumber": 28
},
{
"lineText": " if (MutationResultManager.mutationResults.indexOf(this.currentMutationResult) < -1) {\r",
"lineNumber": 29
},
{
"lineText": " MutationResultManager.mutationResults.push(this.currentMutationResult);\r",
"lineNumber": 30
},
{
"lineText": " }\r",
"lineNumber": 31
},
{
"lineText": " }\r",
"lineNumber": 32
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts43C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "2",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % 1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % 60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % 60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 24);\r",
"lineNumber": 27
},
{
"lineText": " h = h % 24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"mutatedCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % 1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % -60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % 60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 24);\r",
"lineNumber": 27
},
{
"lineText": " h = h % 24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.spec.ts71C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath - FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts83C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath + \"/\" + file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath / \"/\" + file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts99C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 124
},
{
"lineText": " private orderSourceAndTestFiles () {\r",
"lineNumber": 125
},
{
"lineText": " ConfigManager.filesToMutate = ConfigManager.filesToMutate.sort((a, b) => {\r",
"lineNumber": 126
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 127
},
{
"lineText": " return -1;\r",
"lineNumber": 128
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 129
},
{
"lineText": " });\r",
"lineNumber": 130
},
{
"lineText": " ConfigManager.testFiles = ConfigManager.testFiles.sort((a, b) => {\r",
"lineNumber": 131
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 132
},
{
"lineText": " return -1;\r",
"lineNumber": 133
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 134
},
{
"lineText": " });\r",
"lineNumber": 135
},
{
"lineText": " }\r",
"lineNumber": 136
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 124
},
{
"lineText": " private orderSourceAndTestFiles () {\r",
"lineNumber": 125
},
{
"lineText": " ConfigManager.filesToMutate = ConfigManager.filesToMutate.sort((a, b) => {\r",
"lineNumber": 126
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 127
},
{
"lineText": " return -1;\r",
"lineNumber": 128
},
{
"lineText": " } else { return 2; }\r",
"lineNumber": 129
},
{
"lineText": " });\r",
"lineNumber": 130
},
{
"lineText": " ConfigManager.testFiles = ConfigManager.testFiles.sort((a, b) => {\r",
"lineNumber": 131
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 132
},
{
"lineText": " return -1;\r",
"lineNumber": 133
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 134
},
{
"lineText": " });\r",
"lineNumber": 135
},
{
"lineText": " }\r",
"lineNumber": 136
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts103C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\cleanup\\Cleaner.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() - \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts22C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() / \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts26C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() *\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts30C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "5",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end + 2; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts42C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "return 0;",
"mutationType": "Modifying a Return Statement to return null"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 47
},
{
"lineText": " public static setLogLevelVerbose () {\r",
"lineNumber": 48
},
{
"lineText": " this.outputToConsole = true;\r",
"lineNumber": 49
},
{
"lineText": " this.outputToJSON = true;\r",
"lineNumber": 50
},
{
"lineText": " }\r",
"lineNumber": 51
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 47
},
{
"lineText": " public static setLogLevelVerbose () {\r",
"lineNumber": 48
},
{
"lineText": " this.outputToConsole = true;\r",
"lineNumber": 49
},
{
"lineText": " this.outputToJSON = false;\r",
"lineNumber": 50
},
{
"lineText": " }\r",
"lineNumber": 51
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.ts",
"targetNode": "true",
"mutationType": "Inverting a Boolean",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.spec.ts70C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" * this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts74C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"mutatedCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts86C5060undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "3",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 701,
"end": 703
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"plainText": "3",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private static filterOutTestFiles (files: Array<string>): Array<string> {\r",
"lineNumber": 96
},
{
"lineText": " return files.filter((file) => {\r",
"lineNumber": 97
},
{
"lineText": " return !file.endsWith(this.testFileExtension + \".ts\");\r",
"lineNumber": 98
},
{
"lineText": " });\r",
"lineNumber": 99
},
{
"lineText": " }\r",
"lineNumber": 100
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private static filterOutTestFiles (files: Array<string>): Array<string> {\r",
"lineNumber": 96
},
{
"lineText": " return files.filter((file) => {\r",
"lineNumber": 97
},
{
"lineText": " return !file.endsWith(this.testFileExtension - \".ts\");\r",
"lineNumber": 98
},
{
"lineText": " });\r",
"lineNumber": 99
},
{
"lineText": " }\r",
"lineNumber": 100
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts90C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 124
},
{
"lineText": " private orderSourceAndTestFiles () {\r",
"lineNumber": 125
},
{
"lineText": " ConfigManager.filesToMutate = ConfigManager.filesToMutate.sort((a, b) => {\r",
"lineNumber": 126
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 127
},
{
"lineText": " return -1;\r",
"lineNumber": 128
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 129
},
{
"lineText": " });\r",
"lineNumber": 130
},
{
"lineText": " ConfigManager.testFiles = ConfigManager.testFiles.sort((a, b) => {\r",
"lineNumber": 131
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 132
},
{
"lineText": " return -1;\r",
"lineNumber": 133
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 134
},
{
"lineText": " });\r",
"lineNumber": 135
},
{
"lineText": " }\r",
"lineNumber": 136
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 124
},
{
"lineText": " private orderSourceAndTestFiles () {\r",
"lineNumber": 125
},
{
"lineText": " ConfigManager.filesToMutate = ConfigManager.filesToMutate.sort((a, b) => {\r",
"lineNumber": 126
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 127
},
{
"lineText": " return -1;\r",
"lineNumber": 128
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 129
},
{
"lineText": " });\r",
"lineNumber": 130
},
{
"lineText": " ConfigManager.testFiles = ConfigManager.testFiles.sort((a, b) => {\r",
"lineNumber": 131
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 132
},
{
"lineText": " return -1;\r",
"lineNumber": 133
},
{
"lineText": " } else { return 2; }\r",
"lineNumber": 134
},
{
"lineText": " });\r",
"lineNumber": 135
},
{
"lineText": " }\r",
"lineNumber": 136
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts102C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\CodeInspector.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
}
],
[
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" - new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts14C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" / new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts18C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 48
},
{
"lineText": " public static createAllFileDescriptors (): Array<IFileDescriptor> {\r",
"lineNumber": 49
},
{
"lineText": " // ConfigManager.filesToMutate.filter((srcFile) => {if (existsSync(srcFile)) { return srcFile; } });\r",
"lineNumber": 50
},
{
"lineText": " // ConfigManager.testFiles.filter((testFile) => { if (existsSync(testFile)) {return testFile; } });\r",
"lineNumber": 51
},
{
"lineText": " console.log(\"before\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 52
},
{
"lineText": "\r",
"lineNumber": 53
},
{
"lineText": " for (let i = 0; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 54
},
{
"lineText": " // if (!this.fileExists(ConfigManager.filesToMutate[i]) || !this.fileExists(ConfigManager.testFiles[i])) {\r",
"lineNumber": 55
},
{
"lineText": " // console.log(\"file removed\", ConfigManager.filesToMutate[i]);\r",
"lineNumber": 56
},
{
"lineText": " // ConfigManager.filesToMutate.splice(\r",
"lineNumber": 57
},
{
"lineText": " // ConfigManager.filesToMutate.indexOf(ConfigManager.filesToMutate[i], 1));\r",
"lineNumber": 58
},
{
"lineText": " // ConfigManager.testFiles.splice(\r",
"lineNumber": 59
},
{
"lineText": " // ConfigManager.testFiles.indexOf(ConfigManager.testFiles[i], 1));\r",
"lineNumber": 60
},
{
"lineText": " // NodeHandler.fileDescriptors.splice(i, 1);\r",
"lineNumber": 61
},
{
"lineText": " // } else {\r",
"lineNumber": 62
},
{
"lineText": " console.log(\"file\", i);\r",
"lineNumber": 63
},
{
"lineText": " const fo = new FileObject(ConfigManager.filesToMutate[i], ConfigManager.testFiles[i]);\r",
"lineNumber": 64
},
{
"lineText": " const fh = new FileHandler(fo);\r",
"lineNumber": 65
},
{
"lineText": " const so = new SourceObject(fh.getSourceObject());\r",
"lineNumber": 66
},
{
"lineText": " const ci = new CodeInspector(so.originalSourceObject);\r",
"lineNumber": 67
},
{
"lineText": " NodeHandler.fileDescriptors.push({\r",
"lineNumber": 68
},
{
"lineText": " fileName: ConfigManager.filesToMutate[i],\r",
"lineNumber": 69
},
{
"lineText": " fileObject: fo, fileHandler: fh, sourceObject: so, codeInspector: ci\r",
"lineNumber": 70
},
{
"lineText": " });\r",
"lineNumber": 71
},
{
"lineText": " // }\r",
"lineNumber": 72
},
{
"lineText": " }\r",
"lineNumber": 73
},
{
"lineText": " console.log(\"aa\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 74
},
{
"lineText": " console.log(\"file desc\", NodeHandler.fileDescriptors.length);\r",
"lineNumber": 75
},
{
"lineText": " return NodeHandler.fileDescriptors;\r",
"lineNumber": 76
},
{
"lineText": " }\r",
"lineNumber": 77
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 48
},
{
"lineText": " public static createAllFileDescriptors (): Array<IFileDescriptor> {\r",
"lineNumber": 49
},
{
"lineText": " // ConfigManager.filesToMutate.filter((srcFile) => {if (existsSync(srcFile)) { return srcFile; } });\r",
"lineNumber": 50
},
{
"lineText": " // ConfigManager.testFiles.filter((testFile) => { if (existsSync(testFile)) {return testFile; } });\r",
"lineNumber": 51
},
{
"lineText": " console.log(\"before\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 52
},
{
"lineText": "\r",
"lineNumber": 53
},
{
"lineText": " for (let i = -1; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 54
},
{
"lineText": " // if (!this.fileExists(ConfigManager.filesToMutate[i]) || !this.fileExists(ConfigManager.testFiles[i])) {\r",
"lineNumber": 55
},
{
"lineText": " // console.log(\"file removed\", ConfigManager.filesToMutate[i]);\r",
"lineNumber": 56
},
{
"lineText": " // ConfigManager.filesToMutate.splice(\r",
"lineNumber": 57
},
{
"lineText": " // ConfigManager.filesToMutate.indexOf(ConfigManager.filesToMutate[i], 1));\r",
"lineNumber": 58
},
{
"lineText": " // ConfigManager.testFiles.splice(\r",
"lineNumber": 59
},
{
"lineText": " // ConfigManager.testFiles.indexOf(ConfigManager.testFiles[i], 1));\r",
"lineNumber": 60
},
{
"lineText": " // NodeHandler.fileDescriptors.splice(i, 1);\r",
"lineNumber": 61
},
{
"lineText": " // } else {\r",
"lineNumber": 62
},
{
"lineText": " console.log(\"file\", i);\r",
"lineNumber": 63
},
{
"lineText": " const fo = new FileObject(ConfigManager.filesToMutate[i], ConfigManager.testFiles[i]);\r",
"lineNumber": 64
},
{
"lineText": " const fh = new FileHandler(fo);\r",
"lineNumber": 65
},
{
"lineText": " const so = new SourceObject(fh.getSourceObject());\r",
"lineNumber": 66
},
{
"lineText": " const ci = new CodeInspector(so.originalSourceObject);\r",
"lineNumber": 67
},
{
"lineText": " NodeHandler.fileDescriptors.push({\r",
"lineNumber": 68
},
{
"lineText": " fileName: ConfigManager.filesToMutate[i],\r",
"lineNumber": 69
},
{
"lineText": " fileObject: fo, fileHandler: fh, sourceObject: so, codeInspector: ci\r",
"lineNumber": 70
},
{
"lineText": " });\r",
"lineNumber": 71
},
{
"lineText": " // }\r",
"lineNumber": 72
},
{
"lineText": " }\r",
"lineNumber": 73
},
{
"lineText": " console.log(\"aa\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 74
},
{
"lineText": " console.log(\"file desc\", NodeHandler.fileDescriptors.length);\r",
"lineNumber": 75
},
{
"lineText": " return NodeHandler.fileDescriptors;\r",
"lineNumber": 76
},
{
"lineText": " }\r",
"lineNumber": 77
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.spec.ts22C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "100",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "100",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber - FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts70C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber / FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts74C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 47
},
{
"lineText": " private static removeFoundFiles (fileArray) {\r",
"lineNumber": 48
},
{
"lineText": " fileArray.forEach((file) => {\r",
"lineNumber": 49
},
{
"lineText": " fs.unlinkSync(ConfigManager.filePath + file);\r",
"lineNumber": 50
},
{
"lineText": " });\r",
"lineNumber": 51
},
{
"lineText": " }\r",
"lineNumber": 52
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 47
},
{
"lineText": " private static removeFoundFiles (fileArray) {\r",
"lineNumber": 48
},
{
"lineText": " fileArray.forEach((file) => {\r",
"lineNumber": 49
},
{
"lineText": " fs.unlinkSync(ConfigManager.filePath / file);\r",
"lineNumber": 50
},
{
"lineText": " });\r",
"lineNumber": 51
},
{
"lineText": " }\r",
"lineNumber": 52
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\cleanup\\Cleaner.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\cleanup\\Cleaner.spec.ts86C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\sourceCodeModifier\\SourceCodeModifier.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" * new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts14C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" - new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts18C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / 4))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / 3))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "4",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts22C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / 4))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / -1))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "4",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts26C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 47
},
{
"lineText": " public static setLogLevelVerbose () {\r",
"lineNumber": 48
},
{
"lineText": " this.outputToConsole = true;\r",
"lineNumber": 49
},
{
"lineText": " this.outputToJSON = true;\r",
"lineNumber": 50
},
{
"lineText": " }\r",
"lineNumber": 51
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 47
},
{
"lineText": " public static setLogLevelVerbose () {\r",
"lineNumber": 48
},
{
"lineText": " this.outputToConsole = false;\r",
"lineNumber": 49
},
{
"lineText": " this.outputToJSON = true;\r",
"lineNumber": 50
},
{
"lineText": " }\r",
"lineNumber": 51
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.ts",
"targetNode": "true",
"mutationType": "Inverting a Boolean",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.spec.ts70C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter * \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts74C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"mutatedCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts82C9160undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "-",
"nodeToBeMutated": {
"syntaxType": 38,
"positions": {
"pos": 699,
"end": 701
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"plainText": "-",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath + \"/\" + file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath + \"/\" * file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts86C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": " [SyntaxKind.StringLiteral]: false\r",
"lineNumber": 14
},
{
"lineText": " }\r",
"lineNumber": 15
}
],
"mutatedCode": [
{
"lineText": " [SyntaxKind.StringLiteral]: true\r",
"lineNumber": 14
},
{
"lineText": " }\r",
"lineNumber": 15
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "false",
"mutationType": "Inverting a Boolean",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.spec.ts0C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 58
},
{
"lineText": " public getIndividualFileResults () {\r",
"lineNumber": 59
},
{
"lineText": " this.progressDisplay.summaryProgressBar = this.progressDisplay.createProgressBar(\r",
"lineNumber": 60
},
{
"lineText": " \"Generating Summary: |:bar| :percent | Time Elapsed :elapsed\",\r",
"lineNumber": 61
},
{
"lineText": " this.threadResults.length);\r",
"lineNumber": 62
},
{
"lineText": "\r",
"lineNumber": 63
},
{
"lineText": " const filesMutated: IMutationScoresPerFile = {\r",
"lineNumber": 64
},
{
"lineText": " files: ConfigManager.filesToMutate,\r",
"lineNumber": 65
},
{
"lineText": " mutantsSurvivedForEach: [],\r",
"lineNumber": 66
},
{
"lineText": " totalMutationsForEach: []\r",
"lineNumber": 67
},
{
"lineText": " };\r",
"lineNumber": 68
},
{
"lineText": " filesMutated.files.forEach((file) => {\r",
"lineNumber": 69
},
{
"lineText": " filesMutated.mutantsSurvivedForEach.push(0);\r",
"lineNumber": 70
},
{
"lineText": " filesMutated.totalMutationsForEach.push(0);\r",
"lineNumber": 71
},
{
"lineText": " });\r",
"lineNumber": 72
},
{
"lineText": "\r",
"lineNumber": 73
},
{
"lineText": " this.threadResults.forEach((item, index) => {\r",
"lineNumber": 74
},
{
"lineText": " const indexOfSRCFile = ConfigManager.filesToMutate.indexOf(item.SRC_FILE);\r",
"lineNumber": 75
},
{
"lineText": " if (indexOfSRCFile >= 0) {\r",
"lineNumber": 76
},
{
"lineText": " filesMutated.totalMutationsForEach[indexOfSRCFile] ++;\r",
"lineNumber": 77
},
{
"lineText": " }\r",
"lineNumber": 78
},
{
"lineText": " if (item.mutatedCode !== null) {\r",
"lineNumber": 79
},
{
"lineText": " filesMutated.mutantsSurvivedForEach[indexOfSRCFile] ++;\r",
"lineNumber": 80
},
{
"lineText": " }\r",
"lineNumber": 81
},
{
"lineText": " this.progressDisplay.tickBar(this.progressDisplay.summaryProgressBar);\r",
"lineNumber": 82
},
{
"lineText": " });\r",
"lineNumber": 83
},
{
"lineText": " return filesMutated;\r",
"lineNumber": 84
},
{
"lineText": " }\r",
"lineNumber": 85
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 58
},
{
"lineText": " public getIndividualFileResults () {\r",
"lineNumber": 59
},
{
"lineText": " this.progressDisplay.summaryProgressBar = this.progressDisplay.createProgressBar(\r",
"lineNumber": 60
},
{
"lineText": " \"Generating Summary: |:bar| :percent | Time Elapsed :elapsed\",\r",
"lineNumber": 61
},
{
"lineText": " this.threadResults.length);\r",
"lineNumber": 62
},
{
"lineText": "\r",
"lineNumber": 63
},
{
"lineText": " const filesMutated: IMutationScoresPerFile = {\r",
"lineNumber": 64
},
{
"lineText": " files: ConfigManager.filesToMutate,\r",
"lineNumber": 65
},
{
"lineText": " mutantsSurvivedForEach: [],\r",
"lineNumber": 66
},
{
"lineText": " totalMutationsForEach: []\r",
"lineNumber": 67
},
{
"lineText": " };\r",
"lineNumber": 68
},
{
"lineText": " filesMutated.files.forEach((file) => {\r",
"lineNumber": 69
},
{
"lineText": " filesMutated.mutantsSurvivedForEach.push(0);\r",
"lineNumber": 70
},
{
"lineText": " filesMutated.totalMutationsForEach.push(0);\r",
"lineNumber": 71
},
{
"lineText": " });\r",
"lineNumber": 72
},
{
"lineText": "\r",
"lineNumber": 73
},
{
"lineText": " this.threadResults.forEach((item, index) => {\r",
"lineNumber": 74
},
{
"lineText": " const indexOfSRCFile = ConfigManager.filesToMutate.indexOf(item.SRC_FILE);\r",
"lineNumber": 75
},
{
"lineText": " if (indexOfSRCFile >= -1) {\r",
"lineNumber": 76
},
{
"lineText": " filesMutated.totalMutationsForEach[indexOfSRCFile] ++;\r",
"lineNumber": 77
},
{
"lineText": " }\r",
"lineNumber": 78
},
{
"lineText": " if (item.mutatedCode !== null) {\r",
"lineNumber": 79
},
{
"lineText": " filesMutated.mutantsSurvivedForEach[indexOfSRCFile] ++;\r",
"lineNumber": 80
},
{
"lineText": " }\r",
"lineNumber": 81
},
{
"lineText": " this.progressDisplay.tickBar(this.progressDisplay.summaryProgressBar);\r",
"lineNumber": 82
},
{
"lineText": " });\r",
"lineNumber": 83
},
{
"lineText": " return filesMutated;\r",
"lineNumber": 84
},
{
"lineText": " }\r",
"lineNumber": 85
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.spec.ts4C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"mutatedCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts8C13516undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "60",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 539,
"end": 542
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"plainText": "60",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts"
}
}
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "{\r\n super(parenthesisNode);\r\n }",
"mutationType": "Remove all content from a block of code"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() - \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts16C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() / \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts20C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 82
},
{
"lineText": " private static removeFileFromAnalysis (file: string, arrayContainingFile: Array<string>) {\r",
"lineNumber": 83
},
{
"lineText": " arrayContainingFile.splice(arrayContainingFile.indexOf(file), 1);\r",
"lineNumber": 84
},
{
"lineText": " Logger.warn(\"Could not find File: \", file);\r",
"lineNumber": 85
},
{
"lineText": " }\r",
"lineNumber": 86
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 82
},
{
"lineText": " private static removeFileFromAnalysis (file: string, arrayContainingFile: Array<string>) {\r",
"lineNumber": 83
},
{
"lineText": " arrayContainingFile.splice(arrayContainingFile.indexOf(file), 2);\r",
"lineNumber": 84
},
{
"lineText": " Logger.warn(\"Could not find File: \", file);\r",
"lineNumber": 85
},
{
"lineText": " }\r",
"lineNumber": 86
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.spec.ts36C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end / 1; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts40C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "2",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "2",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath / FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts84C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath + \"/\" + file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 112
},
{
"lineText": " private getAllProjectFiles (filePath: string): Array<string> {\r",
"lineNumber": 113
},
{
"lineText": " const currentDir = ConfigManager.readfileDirectory(filePath);\r",
"lineNumber": 114
},
{
"lineText": " currentDir.forEach((file) => {\r",
"lineNumber": 115
},
{
"lineText": " if (ConfigManager.isTypescriptFile(file)) {\r",
"lineNumber": 116
},
{
"lineText": " this.projectFilesRetrieved.push(resolve(filePath, file));\r",
"lineNumber": 117
},
{
"lineText": " } else {\r",
"lineNumber": 118
},
{
"lineText": " this.getAllProjectFiles(filePath * \"/\" + file);\r",
"lineNumber": 119
},
{
"lineText": " }\r",
"lineNumber": 120
},
{
"lineText": " });\r",
"lineNumber": 121
},
{
"lineText": " return this.projectFilesRetrieved;\r",
"lineNumber": 122
},
{
"lineText": " }\r",
"lineNumber": 123
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts100C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\cleanup\\Cleaner.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": " [SyntaxKind.PropertyAccessExpression]: false\r",
"lineNumber": 23
},
{
"lineText": " },\r",
"lineNumber": 24
}
],
"mutatedCode": [
{
"lineText": " [SyntaxKind.PropertyAccessExpression]: true\r",
"lineNumber": 23
},
{
"lineText": " },\r",
"lineNumber": 24
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "false",
"mutationType": "Inverting a Boolean",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.spec.ts3C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": " [SyntaxKind.BinaryExpression] : false\r",
"lineNumber": 19
}
],
"mutatedCode": [
{
"lineText": " [SyntaxKind.BinaryExpression] : false\r",
"lineNumber": 19
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"targetNode": "{\r\n bar.tick(1);\r\n }",
"mutationType": "Remove all content from a block of code",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts15C5060undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "{\r\n bar.tick(1);\r\n }",
"nodeToBeMutated": {
"syntaxType": 208,
"positions": {
"pos": 665,
"end": 696
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"plainText": "{\r\n bar.tick(1);\r\n }",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName - \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts19C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() / \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts23C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() * \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts27C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 18
},
{
"lineText": " public static traverseFilesForNodes () {\r",
"lineNumber": 19
},
{
"lineText": " Logger.dumpLogToConsole();\r",
"lineNumber": 20
},
{
"lineText": " console.log(\"dd\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 21
},
{
"lineText": " for (let i = 0; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 22
},
{
"lineText": " NodeHandler.getAllNodesInFile(NodeHandler.fileDescriptors[i].codeInspector, i);\r",
"lineNumber": 23
},
{
"lineText": " }\r",
"lineNumber": 24
},
{
"lineText": " if (this.fileNameNodes.length === 0) {\r",
"lineNumber": 25
},
{
"lineText": " Logger.fatal(\"No nodes found to mutate, check Professor X config settings.\", NodeHandler);\r",
"lineNumber": 26
},
{
"lineText": " throw Error(\"No nodes found to mutate, check Professor X config settings.\");\r",
"lineNumber": 27
},
{
"lineText": " }\r",
"lineNumber": 28
},
{
"lineText": " Logger.info(\"Found Nodes\", NodeHandler.fileNameNodes.length);\r",
"lineNumber": 29
},
{
"lineText": " return NodeHandler.fileNameNodes;\r",
"lineNumber": 30
},
{
"lineText": " }\r",
"lineNumber": 31
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 18
},
{
"lineText": " public static traverseFilesForNodes () {\r",
"lineNumber": 19
},
{
"lineText": " Logger.dumpLogToConsole();\r",
"lineNumber": 20
},
{
"lineText": " console.log(\"dd\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 21
},
{
"lineText": " for (let i = 0; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 22
},
{
"lineText": " NodeHandler.getAllNodesInFile(NodeHandler.fileDescriptors[i].codeInspector, i);\r",
"lineNumber": 23
},
{
"lineText": " }\r",
"lineNumber": 24
},
{
"lineText": " if (this.fileNameNodes.length === 1) {\r",
"lineNumber": 25
},
{
"lineText": " Logger.fatal(\"No nodes found to mutate, check Professor X config settings.\", NodeHandler);\r",
"lineNumber": 26
},
{
"lineText": " throw Error(\"No nodes found to mutate, check Professor X config settings.\");\r",
"lineNumber": 27
},
{
"lineText": " }\r",
"lineNumber": 28
},
{
"lineText": " Logger.info(\"Found Nodes\", NodeHandler.fileNameNodes.length);\r",
"lineNumber": 29
},
{
"lineText": " return NodeHandler.fileNameNodes;\r",
"lineNumber": 30
},
{
"lineText": " }\r",
"lineNumber": 31
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.spec.ts31C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "5",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end + 0; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts43C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % 1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % 60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % 60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 24);\r",
"lineNumber": 27
},
{
"lineText": " h = h % 24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"mutatedCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % 1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % 60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % -60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 24);\r",
"lineNumber": 27
},
{
"lineText": " h = h % 24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.spec.ts63C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.ts",
"targetNode": "false",
"mutationType": "Inverting a Boolean"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" - this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts75C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"mutatedCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts87C5060undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "3",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 701,
"end": 703
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"plainText": "3",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private static filterOutTestFiles (files: Array<string>): Array<string> {\r",
"lineNumber": 96
},
{
"lineText": " return files.filter((file) => {\r",
"lineNumber": 97
},
{
"lineText": " return !file.endsWith(this.testFileExtension + \".ts\");\r",
"lineNumber": 98
},
{
"lineText": " });\r",
"lineNumber": 99
},
{
"lineText": " }\r",
"lineNumber": 100
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private static filterOutTestFiles (files: Array<string>): Array<string> {\r",
"lineNumber": 96
},
{
"lineText": " return files.filter((file) => {\r",
"lineNumber": 97
},
{
"lineText": " return !file.endsWith(this.testFileExtension / \".ts\");\r",
"lineNumber": 98
},
{
"lineText": " });\r",
"lineNumber": 99
},
{
"lineText": " }\r",
"lineNumber": 100
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts91C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 124
},
{
"lineText": " private orderSourceAndTestFiles () {\r",
"lineNumber": 125
},
{
"lineText": " ConfigManager.filesToMutate = ConfigManager.filesToMutate.sort((a, b) => {\r",
"lineNumber": 126
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 127
},
{
"lineText": " return -1;\r",
"lineNumber": 128
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 129
},
{
"lineText": " });\r",
"lineNumber": 130
},
{
"lineText": " ConfigManager.testFiles = ConfigManager.testFiles.sort((a, b) => {\r",
"lineNumber": 131
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 132
},
{
"lineText": " return -1;\r",
"lineNumber": 133
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 134
},
{
"lineText": " });\r",
"lineNumber": 135
},
{
"lineText": " }\r",
"lineNumber": 136
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 124
},
{
"lineText": " private orderSourceAndTestFiles () {\r",
"lineNumber": 125
},
{
"lineText": " ConfigManager.filesToMutate = ConfigManager.filesToMutate.sort((a, b) => {\r",
"lineNumber": 126
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 127
},
{
"lineText": " return -1;\r",
"lineNumber": 128
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 129
},
{
"lineText": " });\r",
"lineNumber": 130
},
{
"lineText": " ConfigManager.testFiles = ConfigManager.testFiles.sort((a, b) => {\r",
"lineNumber": 131
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 132
},
{
"lineText": " return -1;\r",
"lineNumber": 133
},
{
"lineText": " } else { return 0; }\r",
"lineNumber": 134
},
{
"lineText": " });\r",
"lineNumber": 135
},
{
"lineText": " }\r",
"lineNumber": 136
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts103C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\CodeInspector.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
}
],
[
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 158
},
{
"lineText": " private getRunDuration (): IDurationFormat {\r",
"lineNumber": 159
},
{
"lineText": " const endTimestamp = new Date().getTime();\r",
"lineNumber": 160
},
{
"lineText": " const timeTaken = MathFunctions.calculateRunTime(\r",
"lineNumber": 161
},
{
"lineText": " new Date(endTimestamp - this.startTimestamp).getTime()\r",
"lineNumber": 162
},
{
"lineText": " );\r",
"lineNumber": 163
},
{
"lineText": " Logger.info(\"Mutations Complete in: \", timeTaken);\r",
"lineNumber": 164
},
{
"lineText": " return timeTaken;\r",
"lineNumber": 165
},
{
"lineText": " }\r",
"lineNumber": 166
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 158
},
{
"lineText": " private getRunDuration (): IDurationFormat {\r",
"lineNumber": 159
},
{
"lineText": " const endTimestamp = new Date().getTime();\r",
"lineNumber": 160
},
{
"lineText": " const timeTaken = MathFunctions.calculateRunTime(\r",
"lineNumber": 161
},
{
"lineText": " new Date(endTimestamp / this.startTimestamp).getTime()\r",
"lineNumber": 162
},
{
"lineText": " );\r",
"lineNumber": 163
},
{
"lineText": " Logger.info(\"Mutations Complete in: \", timeTaken);\r",
"lineNumber": 164
},
{
"lineText": " return timeTaken;\r",
"lineNumber": 165
},
{
"lineText": " }\r",
"lineNumber": 166
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.spec.ts3C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" -\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts11C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" / new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts15C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" * new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts19C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end - 1; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts23C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "100",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "100",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber / FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts71C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber * FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts75C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 39
},
{
"lineText": " public getSourceObject (): ts.SourceFile {\r",
"lineNumber": 40
},
{
"lineText": " return this.file.sourceObject ? this.file.sourceObject :\r",
"lineNumber": 41
},
{
"lineText": " ts.createSourceFile(this.file.filename, this.getSourceCode (), ts.ScriptTarget.ES2015, true);\r",
"lineNumber": 42
},
{
"lineText": " }\r",
"lineNumber": 43
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 39
},
{
"lineText": " public getSourceObject (): ts.SourceFile {\r",
"lineNumber": 40
},
{
"lineText": " return this.file.sourceObject ? this.file.sourceObject :\r",
"lineNumber": 41
},
{
"lineText": " ts.createSourceFile(this.file.filename, this.getSourceCode (), ts.ScriptTarget.ES2015, false);\r",
"lineNumber": 42
},
{
"lineText": " }\r",
"lineNumber": 43
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "true",
"mutationType": "Inverting a Boolean",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts79C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 124
},
{
"lineText": " private orderSourceAndTestFiles () {\r",
"lineNumber": 125
},
{
"lineText": " ConfigManager.filesToMutate = ConfigManager.filesToMutate.sort((a, b) => {\r",
"lineNumber": 126
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 127
},
{
"lineText": " return -1;\r",
"lineNumber": 128
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 129
},
{
"lineText": " });\r",
"lineNumber": 130
},
{
"lineText": " ConfigManager.testFiles = ConfigManager.testFiles.sort((a, b) => {\r",
"lineNumber": 131
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 132
},
{
"lineText": " return -1;\r",
"lineNumber": 133
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 134
},
{
"lineText": " });\r",
"lineNumber": 135
},
{
"lineText": " }\r",
"lineNumber": 136
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 124
},
{
"lineText": " private orderSourceAndTestFiles () {\r",
"lineNumber": 125
},
{
"lineText": " ConfigManager.filesToMutate = ConfigManager.filesToMutate.sort((a, b) => {\r",
"lineNumber": 126
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 127
},
{
"lineText": " return -1;\r",
"lineNumber": 128
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 129
},
{
"lineText": " });\r",
"lineNumber": 130
},
{
"lineText": " ConfigManager.testFiles = ConfigManager.testFiles.sort((a, b) => {\r",
"lineNumber": 131
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 132
},
{
"lineText": " return -1;\r",
"lineNumber": 133
},
{
"lineText": " } else { return null; }\r",
"lineNumber": 134
},
{
"lineText": " });\r",
"lineNumber": 135
},
{
"lineText": " }\r",
"lineNumber": 136
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "return 1;",
"mutationType": "Modifying a Return Statement to return null",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts83C8692undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 47
},
{
"lineText": " private static removeFoundFiles (fileArray) {\r",
"lineNumber": 48
},
{
"lineText": " fileArray.forEach((file) => {\r",
"lineNumber": 49
},
{
"lineText": " fs.unlinkSync(ConfigManager.filePath + file);\r",
"lineNumber": 50
},
{
"lineText": " });\r",
"lineNumber": 51
},
{
"lineText": " }\r",
"lineNumber": 52
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 47
},
{
"lineText": " private static removeFoundFiles (fileArray) {\r",
"lineNumber": 48
},
{
"lineText": " fileArray.forEach((file) => {\r",
"lineNumber": 49
},
{
"lineText": " fs.unlinkSync(ConfigManager.filePath * file);\r",
"lineNumber": 50
},
{
"lineText": " });\r",
"lineNumber": 51
},
{
"lineText": " }\r",
"lineNumber": 52
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\cleanup\\Cleaner.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\cleanup\\Cleaner.spec.ts87C8692undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\sourceCodeModifier\\SourceCodeModifier.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" -\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts15C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" / new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts19C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / 4))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 11
},
{
"lineText": " public static writeResults (collatedResults: EndResult) {\r",
"lineNumber": 12
},
{
"lineText": " this.getOutFilePath();\r",
"lineNumber": 13
},
{
"lineText": " const header = {\r",
"lineNumber": 14
},
{
"lineText": " runner: collatedResults.runner,\r",
"lineNumber": 15
},
{
"lineText": " config: collatedResults.runnerConf,\r",
"lineNumber": 16
},
{
"lineText": " duration: collatedResults.duration,\r",
"lineNumber": 17
},
{
"lineText": " scoresPerFile: collatedResults.mutationScoresPerFile,\r",
"lineNumber": 18
},
{
"lineText": " overallScores: collatedResults.overallScores\r",
"lineNumber": 19
},
{
"lineText": " };\r",
"lineNumber": 20
},
{
"lineText": " const results = collatedResults.results;\r",
"lineNumber": 21
},
{
"lineText": " const transformStream = JSONStream.stringify();\r",
"lineNumber": 22
},
{
"lineText": " const outputStream = fs.createWriteStream(OutputToJSON.outputfilePath);\r",
"lineNumber": 23
},
{
"lineText": " Logger.log(\"Results File Path\", OutputToJSON.outputfilePath);\r",
"lineNumber": 24
},
{
"lineText": " transformStream.pipe(outputStream);\r",
"lineNumber": 25
},
{
"lineText": "\r",
"lineNumber": 26
},
{
"lineText": " transformStream.write(header);\r",
"lineNumber": 27
},
{
"lineText": " MathFunctions.divideItemsAmongArrays(results,\r",
"lineNumber": 28
},
{
"lineText": " Math.floor(results.length / (results.length / -4))\r",
"lineNumber": 29
},
{
"lineText": " ).forEach((result) => {\r",
"lineNumber": 30
},
{
"lineText": " transformStream.write(result);\r",
"lineNumber": 31
},
{
"lineText": " Logger.info(\"Length of Division\", result.length);\r",
"lineNumber": 32
},
{
"lineText": " });\r",
"lineNumber": 33
},
{
"lineText": "\r",
"lineNumber": 34
},
{
"lineText": " transformStream.end();\r",
"lineNumber": 35
},
{
"lineText": " outputStream.on(\"finish\", () => {Logger.log(\"Results Written to Disk\"); });\r",
"lineNumber": 36
},
{
"lineText": " }\r",
"lineNumber": 37
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "4",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts23C9160undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 18
},
{
"lineText": " public static traverseFilesForNodes () {\r",
"lineNumber": 19
},
{
"lineText": " Logger.dumpLogToConsole();\r",
"lineNumber": 20
},
{
"lineText": " console.log(\"dd\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 21
},
{
"lineText": " for (let i = 0; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 22
},
{
"lineText": " NodeHandler.getAllNodesInFile(NodeHandler.fileDescriptors[i].codeInspector, i);\r",
"lineNumber": 23
},
{
"lineText": " }\r",
"lineNumber": 24
},
{
"lineText": " if (this.fileNameNodes.length === 0) {\r",
"lineNumber": 25
},
{
"lineText": " Logger.fatal(\"No nodes found to mutate, check Professor X config settings.\", NodeHandler);\r",
"lineNumber": 26
},
{
"lineText": " throw Error(\"No nodes found to mutate, check Professor X config settings.\");\r",
"lineNumber": 27
},
{
"lineText": " }\r",
"lineNumber": 28
},
{
"lineText": " Logger.info(\"Found Nodes\", NodeHandler.fileNameNodes.length);\r",
"lineNumber": 29
},
{
"lineText": " return NodeHandler.fileNameNodes;\r",
"lineNumber": 30
},
{
"lineText": " }\r",
"lineNumber": 31
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 18
},
{
"lineText": " public static traverseFilesForNodes () {\r",
"lineNumber": 19
},
{
"lineText": " Logger.dumpLogToConsole();\r",
"lineNumber": 20
},
{
"lineText": " console.log(\"dd\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 21
},
{
"lineText": " for (let i = 1; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 22
},
{
"lineText": " NodeHandler.getAllNodesInFile(NodeHandler.fileDescriptors[i].codeInspector, i);\r",
"lineNumber": 23
},
{
"lineText": " }\r",
"lineNumber": 24
},
{
"lineText": " if (this.fileNameNodes.length === 0) {\r",
"lineNumber": 25
},
{
"lineText": " Logger.fatal(\"No nodes found to mutate, check Professor X config settings.\", NodeHandler);\r",
"lineNumber": 26
},
{
"lineText": " throw Error(\"No nodes found to mutate, check Professor X config settings.\");\r",
"lineNumber": 27
},
{
"lineText": " }\r",
"lineNumber": 28
},
{
"lineText": " Logger.info(\"Found Nodes\", NodeHandler.fileNameNodes.length);\r",
"lineNumber": 29
},
{
"lineText": " return NodeHandler.fileNameNodes;\r",
"lineNumber": 30
},
{
"lineText": " }\r",
"lineNumber": 31
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.spec.ts27C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 85
},
{
"lineText": " private setoriginalCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 86
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 87
},
{
"lineText": " for (let line = method.start; line < method.end + 2; line++) {\r",
"lineNumber": 88
},
{
"lineText": " this.currentMutationResult.originalCode.push({\r",
"lineNumber": 89
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 90
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 91
},
{
"lineText": " });\r",
"lineNumber": 92
},
{
"lineText": " }\r",
"lineNumber": 93
},
{
"lineText": " }\r",
"lineNumber": 94
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts35C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.ts",
"targetNode": "false",
"mutationType": "Inverting a Boolean"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ - \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts75C9160undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"mutatedCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts83C9160undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "-",
"nodeToBeMutated": {
"syntaxType": 38,
"positions": {
"pos": 699,
"end": 701
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"plainText": "-",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts"
}
}
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "return 1;",
"mutationType": "Modifying a Return Statement to return null"
},
{
"originalCode": [
{
"lineText": " [SyntaxKind.GreaterThanToken || SyntaxKind.LessThanToken]: {\r",
"lineNumber": 17
}
],
"mutatedCode": [
{
"lineText": " [SyntaxKind.GreaterThanToken && SyntaxKind.LessThanToken]: {\r",
"lineNumber": 17
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "||",
"mutationType": "Replacing one Logical operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.spec.ts1C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\sourceCodeModifier\\SourceCodeModifier.ts",
"targetNode": "||",
"mutationType": "Replacing one Logical operator with another"
},
{
"originalCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"mutatedCode": [
{
"lineText": "import { OutputToJSON } from \"../outputResults/OutputToJSON\";\r",
"lineNumber": 12
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts9C13516undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "60",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 539,
"end": 542
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.ts",
"plainText": "60",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\progressDisplay\\ProgressDisplay.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() - \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts13C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() / \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts17C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() * \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts21C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "*",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 22
},
{
"lineText": " public isNodeValidForMutation (nodeText: string) {\r",
"lineNumber": 23
},
{
"lineText": " return !isNaN(parseInt(nodeText, 10));\r",
"lineNumber": 24
},
{
"lineText": " }\r",
"lineNumber": 25
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 22
},
{
"lineText": " public isNodeValidForMutation (nodeText: string) {\r",
"lineNumber": 23
},
{
"lineText": " return !isNaN(parseInt(nodeText, 0));\r",
"lineNumber": 24
},
{
"lineText": " }\r",
"lineNumber": 25
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.ts",
"targetNode": "10",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\NumericLiteral.spec.ts33C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 82
},
{
"lineText": " private static removeFileFromAnalysis (file: string, arrayContainingFile: Array<string>) {\r",
"lineNumber": 83
},
{
"lineText": " arrayContainingFile.splice(arrayContainingFile.indexOf(file), 1);\r",
"lineNumber": 84
},
{
"lineText": " Logger.warn(\"Could not find File: \", file);\r",
"lineNumber": 85
},
{
"lineText": " }\r",
"lineNumber": 86
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 82
},
{
"lineText": " private static removeFileFromAnalysis (file: string, arrayContainingFile: Array<string>) {\r",
"lineNumber": 83
},
{
"lineText": " arrayContainingFile.splice(arrayContainingFile.indexOf(file), 0);\r",
"lineNumber": 84
},
{
"lineText": " Logger.warn(\"Could not find File: \", file);\r",
"lineNumber": 85
},
{
"lineText": " }\r",
"lineNumber": 86
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.spec.ts37C13516undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end * 1; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts41C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "2",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % 1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % 60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % 60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 24);\r",
"lineNumber": 27
},
{
"lineText": " h = h % 24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"mutatedCode": [
{
"lineText": " public static calculateRunTime (runTime: number): IDurationFormat {\r",
"lineNumber": 15
},
{
"lineText": " /*\r",
"lineNumber": 16
},
{
"lineText": " convert millis to date time adapted from\r",
"lineNumber": 17
},
{
"lineText": " https://gist.github.com/remino/1563878\r",
"lineNumber": 18
},
{
"lineText": " */\r",
"lineNumber": 19
},
{
"lineText": " let ms = runTime;\r",
"lineNumber": 20
},
{
"lineText": " ms = ms % 1000;\r",
"lineNumber": 21
},
{
"lineText": " let s = Math.floor(runTime / 1000);\r",
"lineNumber": 22
},
{
"lineText": " let m = Math.floor(s / 60);\r",
"lineNumber": 23
},
{
"lineText": " s = s % 60;\r",
"lineNumber": 24
},
{
"lineText": " let h = Math.floor(m / 60);\r",
"lineNumber": 25
},
{
"lineText": " m = m % 60;\r",
"lineNumber": 26
},
{
"lineText": " const d = Math.floor(h / 24);\r",
"lineNumber": 27
},
{
"lineText": " h = h % -24;\r",
"lineNumber": 28
},
{
"lineText": " return { d, h, m, s, ms };\r",
"lineNumber": 29
},
{
"lineText": " }\r",
"lineNumber": 30
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "24",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.spec.ts77C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\logging\\Logger.ts",
"targetNode": "true",
"mutationType": "Inverting a Boolean"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath * FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts85C13516undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\CodeInspector\\ValidMutationRules.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\supervisor\\Supervisor.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationFactory\\complexMutations\\ParenthesesModifier.ts",
"targetNode": "-",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName / \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts20C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() * \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts24C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() +\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 38
},
{
"lineText": " private static getOutFilePath () {\r",
"lineNumber": 39
},
{
"lineText": " const rootName = ConfigManager.filePath.split(\"/\")[1];\r",
"lineNumber": 40
},
{
"lineText": " OutputToJSON.outputfilePath = \"./mutationResults/\" + rootName + \"_\" +\r",
"lineNumber": 41
},
{
"lineText": " new Date().getDay() + \"_\" + new Date().getMonth() + \"_\" + new Date().getFullYear() + \"_\" +\r",
"lineNumber": 42
},
{
"lineText": " new Date().getUTCHours() + \"-\" + new Date().getUTCMinutes() + \"-\" + new Date().getUTCSeconds() -\r",
"lineNumber": 43
},
{
"lineText": " \".json\".toString();\r",
"lineNumber": 44
},
{
"lineText": " return OutputToJSON.outputfilePath;\r",
"lineNumber": 45
},
{
"lineText": " }\r",
"lineNumber": 46
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\outputResults\\OutputToJSON.spec.ts28C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 18
},
{
"lineText": " public static traverseFilesForNodes () {\r",
"lineNumber": 19
},
{
"lineText": " Logger.dumpLogToConsole();\r",
"lineNumber": 20
},
{
"lineText": " console.log(\"dd\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 21
},
{
"lineText": " for (let i = 0; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 22
},
{
"lineText": " NodeHandler.getAllNodesInFile(NodeHandler.fileDescriptors[i].codeInspector, i);\r",
"lineNumber": 23
},
{
"lineText": " }\r",
"lineNumber": 24
},
{
"lineText": " if (this.fileNameNodes.length === 0) {\r",
"lineNumber": 25
},
{
"lineText": " Logger.fatal(\"No nodes found to mutate, check Professor X config settings.\", NodeHandler);\r",
"lineNumber": 26
},
{
"lineText": " throw Error(\"No nodes found to mutate, check Professor X config settings.\");\r",
"lineNumber": 27
},
{
"lineText": " }\r",
"lineNumber": 28
},
{
"lineText": " Logger.info(\"Found Nodes\", NodeHandler.fileNameNodes.length);\r",
"lineNumber": 29
},
{
"lineText": " return NodeHandler.fileNameNodes;\r",
"lineNumber": 30
},
{
"lineText": " }\r",
"lineNumber": 31
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 18
},
{
"lineText": " public static traverseFilesForNodes () {\r",
"lineNumber": 19
},
{
"lineText": " Logger.dumpLogToConsole();\r",
"lineNumber": 20
},
{
"lineText": " console.log(\"dd\", ConfigManager.filesToMutate.length);\r",
"lineNumber": 21
},
{
"lineText": " for (let i = 0; i < ConfigManager.filesToMutate.length; i++) {\r",
"lineNumber": 22
},
{
"lineText": " NodeHandler.getAllNodesInFile(NodeHandler.fileDescriptors[i].codeInspector, i);\r",
"lineNumber": 23
},
{
"lineText": " }\r",
"lineNumber": 24
},
{
"lineText": " if (this.fileNameNodes.length === -1) {\r",
"lineNumber": 25
},
{
"lineText": " Logger.fatal(\"No nodes found to mutate, check Professor X config settings.\", NodeHandler);\r",
"lineNumber": 26
},
{
"lineText": " throw Error(\"No nodes found to mutate, check Professor X config settings.\");\r",
"lineNumber": 27
},
{
"lineText": " }\r",
"lineNumber": 28
},
{
"lineText": " Logger.info(\"Found Nodes\", NodeHandler.fileNameNodes.length);\r",
"lineNumber": 29
},
{
"lineText": " return NodeHandler.fileNameNodes;\r",
"lineNumber": 30
},
{
"lineText": " }\r",
"lineNumber": 31
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\nodeHandler\\NodeHandler.spec.ts32C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "5",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "5",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end + 1; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private setMutatedCode (code: string, method: {start: number, end: number}) {\r",
"lineNumber": 96
},
{
"lineText": " const splitCode = this.splitCodeByLine(code);\r",
"lineNumber": 97
},
{
"lineText": " for (let line = method.start; line < method.end + -1; line++) {\r",
"lineNumber": 98
},
{
"lineText": " this.currentMutationResult.mutatedCode.push({\r",
"lineNumber": 99
},
{
"lineText": " lineText: splitCode[line],\r",
"lineNumber": 100
},
{
"lineText": " lineNumber: ++ method.start\r",
"lineNumber": 101
},
{
"lineText": " });\r",
"lineNumber": 102
},
{
"lineText": " }\r",
"lineNumber": 103
},
{
"lineText": " }\r",
"lineNumber": 104
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\mutationResultManager\\MutationResultManager.spec.ts44C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "%",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "1000",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "60",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\maths\\MathFunctions.ts",
"targetNode": "0",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" + this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 44
},
{
"lineText": " public writeTempSourceModifiedFile (modifiedCode: string): string {\r",
"lineNumber": 45
},
{
"lineText": " const tempFilename =\r",
"lineNumber": 46
},
{
"lineText": " this.file.fullPath + FileObject.counter + \"C\" - this.file.coreNumber + FileObject.M_SOURCE_FILE_SUFFIX;\r",
"lineNumber": 47
},
{
"lineText": " fs.writeFileSync(tempFilename, modifiedCode);\r",
"lineNumber": 48
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 49
},
{
"lineText": " }\r",
"lineNumber": 50
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts72C5060undefined.m.ts"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" + this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 51
},
{
"lineText": " public createTempTestModifiedFile (): string {\r",
"lineNumber": 52
},
{
"lineText": " const updatedContents = this.mutateTestFileReference(this.getTestFileContents());\r",
"lineNumber": 53
},
{
"lineText": " const tempFilename = this.file.testFilePath\r",
"lineNumber": 54
},
{
"lineText": " + FileObject.counter++ + \"C\" / this.file.coreNumber + FileObject.M_TEST_FILE_SUFFIX;\r",
"lineNumber": 55
},
{
"lineText": " fs.writeFileSync(tempFilename, updatedContents);\r",
"lineNumber": 56
},
{
"lineText": " return tempFilename;\r",
"lineNumber": 57
},
{
"lineText": " }\r",
"lineNumber": 58
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts76C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another"
},
{
"originalCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"mutatedCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts84C5060undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "3",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 701,
"end": 703
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"plainText": "3",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"mutatedCode": [
{
"lineText": " if (!(this.file.filename.substring(this.file.filename.length - 3) === FileExtensions.source)) {\r",
"lineNumber": 19
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts88C5060undefined.m.ts",
"mutationAttemptFailure": {
"reasonForFailure": "Mutant Errored Due to: Mocha Errored.",
"attemptedMutation": "3",
"nodeToBeMutated": {
"syntaxType": 8,
"positions": {
"pos": 701,
"end": 703
},
"parentFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.ts",
"plainText": "3",
"associatedTestFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\FileHandler\\FileHandler.spec.ts"
}
}
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private static filterOutTestFiles (files: Array<string>): Array<string> {\r",
"lineNumber": 96
},
{
"lineText": " return files.filter((file) => {\r",
"lineNumber": 97
},
{
"lineText": " return !file.endsWith(this.testFileExtension + \".ts\");\r",
"lineNumber": 98
},
{
"lineText": " });\r",
"lineNumber": 99
},
{
"lineText": " }\r",
"lineNumber": 100
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 95
},
{
"lineText": " private static filterOutTestFiles (files: Array<string>): Array<string> {\r",
"lineNumber": 96
},
{
"lineText": " return files.filter((file) => {\r",
"lineNumber": 97
},
{
"lineText": " return !file.endsWith(this.testFileExtension * \".ts\");\r",
"lineNumber": 98
},
{
"lineText": " });\r",
"lineNumber": 99
},
{
"lineText": " }\r",
"lineNumber": 100
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "+",
"mutationType": "Replacing one Binary Operator with another",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts92C5060undefined.m.ts"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": null,
"mutatedCode": null,
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "3",
"mutationType": "Modification of Numeric Literal"
},
{
"originalCode": [
{
"lineText": "\r",
"lineNumber": 124
},
{
"lineText": " private orderSourceAndTestFiles () {\r",
"lineNumber": 125
},
{
"lineText": " ConfigManager.filesToMutate = ConfigManager.filesToMutate.sort((a, b) => {\r",
"lineNumber": 126
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 127
},
{
"lineText": " return -1;\r",
"lineNumber": 128
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 129
},
{
"lineText": " });\r",
"lineNumber": 130
},
{
"lineText": " ConfigManager.testFiles = ConfigManager.testFiles.sort((a, b) => {\r",
"lineNumber": 131
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 132
},
{
"lineText": " return -1;\r",
"lineNumber": 133
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 134
},
{
"lineText": " });\r",
"lineNumber": 135
},
{
"lineText": " }\r",
"lineNumber": 136
}
],
"mutatedCode": [
{
"lineText": "\r",
"lineNumber": 124
},
{
"lineText": " private orderSourceAndTestFiles () {\r",
"lineNumber": 125
},
{
"lineText": " ConfigManager.filesToMutate = ConfigManager.filesToMutate.sort((a, b) => {\r",
"lineNumber": 126
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 127
},
{
"lineText": " return -1;\r",
"lineNumber": 128
},
{
"lineText": " } else { return 1; }\r",
"lineNumber": 129
},
{
"lineText": " });\r",
"lineNumber": 130
},
{
"lineText": " ConfigManager.testFiles = ConfigManager.testFiles.sort((a, b) => {\r",
"lineNumber": 131
},
{
"lineText": " if (basename(a) >= basename(b)) {\r",
"lineNumber": 132
},
{
"lineText": " return -1;\r",
"lineNumber": 133
},
{
"lineText": " } else { return -1; }\r",
"lineNumber": 134
},
{
"lineText": " });\r",
"lineNumber": 135
},
{
"lineText": " }\r",
"lineNumber": 136
}
],
"SRC_FILE_PATH": "../ProfessorX-Test/src/",
"SRC_FILE": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.ts",
"targetNode": "1",
"mutationType": "Modification of Numeric Literal",
"testFilePath": "C:\\git\\Honours-Project\\ProfessorX-Test\\src\\configManager\\ConfigManager.spec.ts104C5060undefined.m.ts"
}
]
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment