public void S_InvalidInput()
        {
            //Arrange

            //Act
            var SmembershipFunction = new SShapedMembershipFunction("test", 50, 0);

            //Assert
        }
        public void CoG_Defuzzify_SShaped()
        {
            //manual calculation at
            //http://www.wolframalpha.com/input/?i=%E2%88%AB+%28x*%28%28tanh%28%28x-50%29%2F10%29%29%2B1%29%2F4%29+from+0+to+100+%2F+%E2%88%AB%28%28%28tanh%28%28x-50%29%2F10%29%29%2B1%29%2F4%29+from+0+to+100

            var memFunc = new SShapedMembershipFunction("mf", 50, 10);

            CoG_Defuzzify(memFunc, 74);
        }
        public void SandZ_Max_Success()
        {
            //Arrange
            var SmembershipFunction = new SShapedMembershipFunction("test", 50, 20);
            var ZmembershipFunction = new ZShapedMembershipFunction("test", 50, 20);

            //Act
            var resultS = SmembershipFunction.Max();
            var resultZ = ZmembershipFunction.Max();

            //Assert
            Assert.That(resultS, Is.EqualTo(100));
            Assert.That(resultZ, Is.EqualTo(100));
        }
        public void SandZ_Fuzzify_Success(Double a, Double b, Double inputValue, Double expectedResult)
        {
            //Arrange
            var SmembershipFunction = new SShapedMembershipFunction("test", a, b);
            var ZmembershipFunction = new ZShapedMembershipFunction("test", a, b);

            //Act
            var resultS = SmembershipFunction.Fuzzify(inputValue);
            var resultZ = ZmembershipFunction.Fuzzify(inputValue);

            //Assert
            Assert.That(Math.Round(resultS, 4), Is.EqualTo(expectedResult));
            Assert.That(Math.Round(resultZ, 4), Is.EqualTo(1 - expectedResult));
        }