override public void Process(string filename1, string filename2, string srcCode1, string srcCode2) { string[] lines1 = srcCode1.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); string[] lines2 = srcCode2.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); double index = 0.0; string cleanLine; foreach (string line in lines1) { cleanLine = line.TrimEnd(';').TrimStart(' ', '\t'); if (cleanLine.Length > MinLineLengthThreshold && lines2.Contains(cleanLine) && Regex.Matches(cleanLine, FunctionPattern).Count == 0) { LoggedMessages.Add("<p>Code line matched comparing " + "<a href=\"" + filename1 + "\">" + Path.GetFileName(filename1) + "</a> and " + "<a href=\"" + filename2 + "\">" + Path.GetFileName(filename2) + "</a>:" + cleanLine + "</p>"); index += codeLineUniqueness(cleanLine); } } SimilarityIndex = index; }
public void WriteEvent(ILogEventHeader logEventHeader, byte[] messageBytes, int messageLength) { if (_captureLoggedMessages) { LoggedMessages.Add(Encoding.ASCII.GetString(messageBytes, 0, messageLength)); } if (++_messageCount == _messageCountTarget) { _signal.Set(); } }
override public void Process(string filename1, string filename2, string srcCode1, string srcCode2) { string structure1 = AnalyzeCodeStructure(srcCode1); string structure2 = AnalyzeCodeStructure(srcCode2); if (structure1.Length > MinLengthThreshold && structure1 == structure2) { double index = (double)(structure1.Length - MinLengthThreshold) / (double)MaxStructureLength; SimilarityIndex = Math.Max(0.0, index); LoggedMessages.Add("<p>Same structure comparing " + "<a href=\"" + filename1 + "\">" + Path.GetFileName(filename1) + "</a> and " + "<a href=\"" + filename2 + "\">" + Path.GetFileName(filename2) + "</a></p>"); LoggedMessages.Add("<p>Pattern: " + structure1 + "</p>"); } }
double CompareVariableLists(string filename1, string filename2, List <string> list1, List <string> list2) { double similarityIndex = 0.0; foreach (string VarName in list1) { if (VarName.Length >= MinNameLengthThreshold && list2.Exists(name => VarName == name) && !MatchedVariables.Exists(name => VarName == name)) { LoggedMessages.Add("<p>Variable name matched comparing " + "<a href=\"" + filename1 + "\">" + Path.GetFileName(filename1) + "</a> and " + "<a href=\"" + filename2 + "\">" + Path.GetFileName(filename2) + "</a>:" + VarName + "</p>"); MatchedVariables.Add(VarName); similarityIndex += VariableUniquenessIndex(VarName); } } return(similarityIndex); }