public void CreateMembershipFunctionEntity_ThrowsInvalidEnumArgumentExceptionIfMembershipFunctionTypeIsUnknown()
        {
            // Arrange
            MembershipFunctionType membershipFunctionType = MembershipFunctionType.Triangular;
            string        membershipFunctionName          = "High";
            List <double> points = new List <double>();

            // Act & Assert
            Assert.Throws <InvalidEnumArgumentException>(() =>
            {
                _membershipFunctionCreator.CreateMembershipFunctionEntity(membershipFunctionType, membershipFunctionName, points);
            });
        }
        public void CreateMembershipFunctionEntity_ThrowsArgumentOutOfRangeExceptionForTrapezoidalFunction()
        {
            // Arrange
            MembershipFunctionType membershipFunctionType = MembershipFunctionType.Trapezoidal;
            string        membershipFunctionName          = "High";
            List <double> points = new List <double> {
                1, 2
            };

            // Act & Assert
            Assert.Throws <ArgumentOutOfRangeException>(() =>
            {
                _membershipFunctionCreator.CreateMembershipFunctionEntity(membershipFunctionType, membershipFunctionName, points);
            });
        }
Exemple #3
0
        public MembershipFunction CreateMembershipFunctionEntity(MembershipFunctionType membershipFunctionType, string membershipFunctionName, List <double> points)
        {
            int countOfPoints = points.Count;

            switch (membershipFunctionType)
            {
            case MembershipFunctionType.Trapezoidal:
                if (countOfPoints != 4)
                {
                    throw new ArgumentOutOfRangeException($"Trapesoidal membership function contains {countOfPoints} points instead of 4.");
                }
                return(new TrapezoidalMembershipFunction(membershipFunctionName, points[0], points[1], points[2], points[3]));

            default:
                throw new InvalidEnumArgumentException($"Not supported membership function type: {membershipFunctionType}.");
            }
        }
        public void CreateMembershipFunctionEntity_ReturnsCorrectMembershipFunction()
        {
            // Arrange
            MembershipFunctionType membershipFunctionType = MembershipFunctionType.Trapezoidal;
            string        membershipFunctionName          = "High";
            List <double> points = new List <double> {
                1, 2, 3, 5
            };

            TrapezoidalMembershipFunction expectedMembershipFunction = new TrapezoidalMembershipFunction(membershipFunctionName,
                                                                                                         points[0], points[1], points[2], points[3]);

            // Act
            TrapezoidalMembershipFunction actualMembershipFunction = (TrapezoidalMembershipFunction)
                                                                     _membershipFunctionCreator.CreateMembershipFunctionEntity(membershipFunctionType, membershipFunctionName, points);

            // Assert
            Assert.IsNotNull(actualMembershipFunction);
            Assert.IsTrue(ObjectComparer.MembershipFunctionsAreEqual(expectedMembershipFunction, actualMembershipFunction));
        }