//[Fact]
        public void CheckDesignConstraintsOfQueryMyDesign()
        {
            var sut = new TypeDependencyStructureMatrix(new[] { typeof(CecilExtensions).Assembly });

            var problematicTypes =
                from t in sut.DefinedMembers
                let distanceFromMainSequence = sut.GetDistanceFromMainSequence(t)
                where distanceFromMainSequence > 0.5
                && !t.Namespace.StartsWith("System.Diagnostics.Contracts")
                && !t.Namespace.Contains("JetBrains")
                orderby distanceFromMainSequence descending
                select new {t, Pain = sut.GetAmountOfPain(t), Uselesness = sut.GetUselesness(t), I = sut.GetInstability(t), A = sut.GetAbstractness(t)};

            problematicTypes.Each(Console.WriteLine);

            Assert.Empty(problematicTypes);
        }
        public void DsmCanCalculateAmountOfPainAndUselesnessOfAUselessType()
        {
            // Arrange
            var sut = new TypeDependencyStructureMatrix(new[] { typeof(A.A1).Assembly });

            // Act
            double pain = sut.GetAmountOfPain<UselessType>();
            double uselessNess = sut.GetUselesness<UselessType>();

            // Assert
            Assert.Equal(0, pain);
            Assert.Equal(1, uselessNess);
        }