protected virtual IEnumerable <IXunitTestCase> CreateTestCasesForTheory(
            ITestFrameworkDiscoveryOptions discoveryOptions,
            ITestMethod testMethod,
            IAttributeInfo theoryAttribute)
        {
            var compatibilityLevels = DataCompatibilityRangeFactDiscoverer.GetAllowedCompatibilityLevels(theoryAttribute);

            foreach (var compatibilityLevel in compatibilityLevels)
            {
                yield return(new DataCompatibilityRangeTheoryTestCase(
                                 compatibilityLevel,
                                 DiagnosticMessageSink,
                                 discoveryOptions.MethodDisplayOrDefault(),
                                 testMethod));
            }
        }
        protected virtual IEnumerable <IXunitTestCase> CreateTestCasesForDataRow(
            ITestFrameworkDiscoveryOptions discoveryOptions,
            ITestMethod testMethod,
            IAttributeInfo theoryAttribute,
            object[] dataRow)
        {
            var compatibilityLevels = DataCompatibilityRangeFactDiscoverer.GetAllowedCompatibilityLevels(theoryAttribute);

            foreach (var compatibilityLevel in compatibilityLevels)
            {
                yield return(new DataCompatibilityRangeTestCase(
                                 DiagnosticMessageSink,
                                 discoveryOptions.MethodDisplayOrDefault(),
                                 testMethod,
                                 dataRow.Concat(new object[] { compatibilityLevel }).ToArray()));
            }
        }