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)));
        }