public Task SelectTests(StructuralDelta <TestsModel <TTestCase>, TTestCase> testsDelta, TProgramDelta programDelta, CancellationToken cancellationToken) { var delta = deltaAdapter.Convert(programDelta); CorrespondenceModel = correspondenceModelProvider.GetCorrespondenceModel(delta.OldModel, testsDelta.OldModel); ISet <TTestCase> impactedTests = new HashSet <TTestCase>(); foreach (var testcase in testsDelta.NewModel.TestSuite) { cancellationToken.ThrowIfCancellationRequested(); HashSet <string> linkedElements; if (CorrespondenceModel.CorrespondenceModelLinks.TryGetValue(testcase.Id, out linkedElements)) { if (delta.ChangedElements.Any(x => linkedElements.Any(y => x.Id.Equals(y, StringComparison.Ordinal))) || delta.DeletedElements.Any(x => linkedElements.Any(y => x.Id.Equals(y, StringComparison.Ordinal)))) { impactedTests.Add(testcase); } } else { impactedTests.Add(testcase); } } SelectedTests = impactedTests; return(Task.CompletedTask); }