private Tuple <ISet <ITestMethod>, ISet <ITestMethod> > GetSelectedAndKnownTestCases() { if (!_versionManager.IsPreviousVersionsAvailable()) { return(new Tuple <ISet <ITestMethod>, ISet <ITestMethod> >(new HashSet <ITestMethod>(), new HashSet <ITestMethod>())); } var storedCoverage = _coverageData.GetStored(); var differences = new HashSet <IMethodChange>(); var types = new List <TypeDefinition>(); _versionManager.GetPreviousAndCurrentVersions().ToList().ForEach(tuple => { string previous = tuple.Item1, current = tuple.Item2; differences.UnionWith(new ModuleDifferencer(previous, current).GetDifferences()); types.AddRange(ModuleDefinition.ReadModule(previous).Types); }); var classDiagram = new ClassDiagram(types); var acd = new AffectedClassDiagram(storedCoverage, differences, classDiagram); return(new Tuple <ISet <ITestMethod>, ISet <ITestMethod> >(GetSelectedTestCases(acd), GetKnownTestCases(storedCoverage))); }