示例#1
0
 public UnitInterval Evaluate(UnitInterval membershipA, UnitInterval membershipB)
 {
     return((membershipA + membershipB) - (membershipA * membershipB) > 0
         ? UnitInterval.Create(
                (membershipA * membershipB)
                / ((membershipA + membershipB) - (membershipA * membershipB)))
         : UnitInterval.Zero());
 }
        internal void Zero_ReturnsUnitIntervalWithValueZero()
        {
            // Arrange
            // Act
            var result = UnitInterval.Zero();

            // Assert
            Assert.Equal(0, result.Value);
        }
        internal void MinY_ReturnsExpectedResult()
        {
            // Arrange
            var function = SingletonFunction.Create(1);

            // Act
            var result = function.MinY;

            // Assert
            Assert.Equal(UnitInterval.Zero(), result);
        }
        internal void ToString_ReturnsExpectedResults()
        {
            // Arrange
            // Act
            var result1 = UnitInterval.Zero().ToString();
            var result2 = UnitInterval.One().ToString();

            // Assert
            Assert.Equal("0", result1);
            Assert.Equal("1", result2);
        }
        internal void GetHashCode_ReturnsExpectedResults()
        {
            // Arrange
            // Act
            var result1 = UnitInterval.Zero().GetHashCode();
            var result2 = UnitInterval.One().GetHashCode();

            // Assert
            Assert.Equal(0, result1);
            Assert.Equal(1072693248, result2);
        }
        internal void Equals_WhenValueNotEqual_ReturnsFalse()
        {
            // Arrange
            var unitInterval = UnitInterval.One();

            // Act
            var result1 = unitInterval.Equals(UnitInterval.Zero());
            var result2 = unitInterval.Equals(0);

            // Assert
            Assert.False(result1);
            Assert.False(result2);
        }
示例#7
0
        internal void MinY_ReturnsExpectedResult()
        {
            // Arrange
            // Arrange
            var points = new FuzzyPoint[]
            {
                new FuzzyPoint(2, 0),
                new FuzzyPoint(3, 1)
            };

            var function = new PiecewiseLinearFunction(points);

            // Act
            var result = function.MinY;

            // Assert
            Assert.Equal(UnitInterval.Zero(), result);
        }
示例#8
0
        internal void Evaluate_WithTwoGroupCompoundStatementAllZero_ReturnsExpectedResult()
        {
            // Arrange
            var evaluator = new FuzzyEvaluator();

            var evaluations = new List <Evaluation>
            {
                // Statement group 1 (assumed to evaluate to 0).
                new Evaluation(LogicOperators.If(), UnitInterval.Create(0.0)),
                new Evaluation(LogicOperators.And(), UnitInterval.Create(0.0)),
                new Evaluation(LogicOperators.And(), UnitInterval.Create(0.0)),

                // Statement group 2 (assumed to evaluate to 0).
                new Evaluation(LogicOperators.Or(), UnitInterval.Create(0)),
                new Evaluation(LogicOperators.And(), UnitInterval.Create(0)),
                new Evaluation(LogicOperators.And(), UnitInterval.Create(0))
            };

            // Act
            var result = evaluator.Evaluate(evaluations);

            // Assert
            Assert.Equal(UnitInterval.Zero(), result);
        }