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); }
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); }
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); }