private HintDirectory GetApplicableHintsForIncompleteMethods(List <CaDETClass> solutionAttempt) { var challengeHints = new HintDirectory(); foreach (var caDETMethod in GetMethodsFromClasses(solutionAttempt)) { foreach (var metricRule in MethodMetricRules) { var result = metricRule.Evaluate(caDETMethod.Metrics); if (result == null) { continue; } challengeHints.AddHint(caDETMethod.Signature(), result); } } return(challengeHints); }
private HintDirectory GetApplicableHintsForIncompleteClasses(List <CaDETClass> solutionAttempt) { var challengeHints = new HintDirectory(); foreach (var caDETClass in solutionAttempt) { foreach (var metricRule in ClassMetricRules) { var result = metricRule.Evaluate(caDETClass.Metrics); if (result == null) { continue; } challengeHints.AddHint(caDETClass.FullName, result); } } return(challengeHints); }
private HintDirectory EvaluateBannedWords(Dictionary <string, List <string> > namesUsedInCodeSnippet) { if (BannedWords == null || BannedWords.Count == 0) { return(null); } var hints = new HintDirectory(); foreach (var codeSnippetId in namesUsedInCodeSnippet.Keys) { if (ContainsBannedName(namesUsedInCodeSnippet[codeSnippetId])) { hints.AddHint(codeSnippetId, Hint); } } return(hints); }
private HintDirectory EvaluateRequiredWords(Dictionary <string, List <string> > namesUsedInCodeSnippet) { if (RequiredWords == null || RequiredWords.Count == 0) { return(null); } var allNames = namesUsedInCodeSnippet.Values.SelectMany(n => n); var allWords = allNames.SelectMany(GetWordsFromName).ToList(); if (RequiredWords.All(req => allWords.Contains(req, StringComparer.OrdinalIgnoreCase))) { return(null); } var hints = new HintDirectory(); hints.AddHint("ALL", Hint); return(hints); }