func TestDefuzzify(t *testing.T) { engine.Fuzzify(testObject) engine.Infer() defuzzyOperator = "cog" engine.Defuzzify() if !engine.isComputed { t.Error("Return value not computed...") } output := engine.result expected := -25.3125 if !utilities.CompareEpsilon(output, expected) { t.Errorf("Expected: %v, got: %v", expected, output) } defuzzyOperator = "mm" engine.Defuzzify() if !engine.isComputed { t.Error("Return value not computed...") } output = engine.result expected = -78.75 if !utilities.CompareEpsilon(output, expected) { t.Errorf("Expected: %v, got: %v", expected, output) } }
func TestSinusoidalSetBuilder(t *testing.T) { var expected = []float64{ 0, 0, 0, 0, 0.146447, 0.5, 0.853553, 1, 1, 1, 1, 1, 1, 1, 0.853553, 0.5, 0.146447, 0, 0, 0, 0, } function, err := SinusoidalSetBuilder(minSupport, minCore, maxCore, maxSupport) if err != nil { t.Error("Error while building the function.") } for i, value := range values { result := function(value) if !utilities.CompareEpsilon(result, expected[i]) { t.Errorf("Expected: %v, got: %v", expected[i], result) } } }
func TestBooleanSetBuilder(t *testing.T) { var expected = []float64{ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, } function, err := BooleanSetBuilder(minCore, maxCore) if err != nil { t.Error("Error while building the function.") } for i, value := range values { result := function(value) if !utilities.CompareEpsilon(result, expected[i]) { t.Errorf("Expected: %v, got: %v", expected[i], result) } } }