public bool TryGetEquivalentFrameworks(FrameworkRange range, out IEnumerable <NuGetFramework> frameworks)
        {
            if (range == null)
            {
                throw new ArgumentNullException("range");
            }

            HashSet <NuGetFramework> relevant = new HashSet <NuGetFramework>(NuGetFramework.Comparer);

            foreach (var framework in _equivalentFrameworks.Keys.Where(f => range.Satisfies(f)))
            {
                relevant.Add(framework);
            }

            HashSet <NuGetFramework> results = new HashSet <NuGetFramework>(NuGetFramework.Comparer);

            foreach (var framework in relevant)
            {
                IEnumerable <NuGetFramework> values = null;
                if (TryGetEquivalentFrameworks(framework, out values))
                {
                    foreach (var val in values)
                    {
                        results.Add(val);
                    }
                }
            }

            frameworks = results;
            return(results.Count > 0);
        }
        public void FrameworkRange_BasicDoesNotSatisfy(string framework)
        {
            // Arrange
            var test  = NuGetFramework.ParseFolder(framework);
            var range = new FrameworkRange(NuGetFramework.ParseFolder("net35"), NuGetFramework.ParseFolder("net451"));

            // Act & Assert
            Assert.False(range.Satisfies(test));
        }
        public void FrameworkRange_BasicSatisfiesExclusive(string framework)
        {
            // Arrange
            var test  = NuGetFramework.ParseFolder(framework);
            var range = new FrameworkRange(
                NuGetFramework.ParseFolder("net35"),
                NuGetFramework.ParseFolder("net451"),
                includeMin: false,
                includeMax: false);

            // Act & Assert
            Assert.True(range.Satisfies(test));
        }