public void AfterProductionLevelsCountIsSameAsInFirstFactor() { var levelsLeft = new Dictionary<double, IntervalD> { {0.0, new IntervalD(1.0, 3.0)}, {0.5, new IntervalD(0.5, 2.5)}, {1.0, new IntervalD(2.0, 2.0)}, }; var x = new DiscreteFuzzyNumber(levelsLeft); var levelsRight = new Dictionary<double, IntervalD> { {0.0, new IntervalD(1.0, 3.0)}, {0.5, new IntervalD(0.5, 2.5)}, {1.0, new IntervalD(2.0, 2.0)}, }; var y = new DiscreteFuzzyNumber(levelsRight); var product = x.Mul(y); Assert.That(product.LevelsCount, Is.EqualTo(3)); }
public void CorrectlyMultiplyZeroByZero() { var levelsLeft = new Dictionary<double, IntervalD> { {0.0, new IntervalD(-2.0, 2.0)}, {0.5, new IntervalD(-1.0, 1.0)}, {1.0, new IntervalD(0.0, 0.0)}, }; var x = new DiscreteFuzzyNumber(levelsLeft); var levelsRight = new Dictionary<double, IntervalD> { {0.0, new IntervalD(-2.0, 2.0)}, {0.5, new IntervalD(-1.0, 1.0)}, {1.0, new IntervalD(0.0, 0.0)}, }; var y = new DiscreteFuzzyNumber(levelsRight); var product = x.Mul(y); Assert.That(product.GetAlphaLevel(0.0), Is.EqualTo(new IntervalD(-4.0, 4.0))); Assert.That(product.GetAlphaLevel(0.5), Is.EqualTo(new IntervalD(-1.0, 1.0))); Assert.That(product.GetAlphaLevel(1.0), Is.EqualTo(new IntervalD(0.0, 0.0))); }
public void CorrectlyMultiplyPositiveNumbers() { var levelsLeft = new Dictionary<double, IntervalD> { {0.0, new IntervalD(1.0, 3.0)}, {0.5, new IntervalD(1.5, 2.5)}, {1.0, new IntervalD(2.0, 2.0)}, }; var x = new DiscreteFuzzyNumber(levelsLeft); var levelsRight = new Dictionary<double, IntervalD> { {0.0, new IntervalD(1.0, 3.0)}, {0.5, new IntervalD(1.5, 2.5)}, {1.0, new IntervalD(2.0, 2.0)}, }; var y = new DiscreteFuzzyNumber(levelsRight); var product = x.Mul(y); Assert.That(product.GetAlphaLevel(0.0), Is.EqualTo(new IntervalD(1.0, 9.0))); Assert.That(product.GetAlphaLevel(0.5), Is.EqualTo(new IntervalD(2.25, 6.25))); Assert.That(product.GetAlphaLevel(1.0), Is.EqualTo(new IntervalD(4.0, 4.0))); }
public void CorrectlyMultiplyPositiveByZero2() { var x = new DiscreteFuzzyNumber(new TriangularFuzzyFunction(-3.0,-1.0,2.0), 3); var y = new DiscreteFuzzyNumber(new TriangularFuzzyFunction(-2.0, 1.0, 4.0), 3); var product = x.Mul(y); Assert.That(product.GetAlphaLevel(0.0), Is.EqualTo(new IntervalD(-12.0, 8.0))); Assert.That(product.GetAlphaLevel(0.5), Is.EqualTo(new IntervalD(-5.0, 1.25))); Assert.That(product.GetAlphaLevel(1.0), Is.EqualTo(new IntervalD(-1.0, -1.0))); }