def test_term(self) -> None: term: fl.Term = fl.Triangle("A", 0.0, 1.0, 2.0, 0.5) self.assertEqual(fl.PythonExporter().to_string(term), fl.PythonExporter().term(term)) self.assertEqual(fl.PythonExporter().term(term), "fl.Triangle(\"A\", 0.000, 1.000, 2.000, 0.500)") term = fl.Discrete("B", [0.0, 0.0, 0.5, 1.0, 1.0, 0.0]) self.assertEqual(fl.PythonExporter().to_string(term), fl.PythonExporter().term(term)) self.assertEqual( fl.PythonExporter().term(term), "fl.Discrete(\"B\", [0.000, 0.000, 0.500, 1.000, 1.000, 0.000])") term = fl.Function("C", "x + 1") self.assertEqual(fl.PythonExporter().to_string(term), fl.PythonExporter().term(term)) self.assertEqual(fl.PythonExporter().term(term), "fl.Function.create(\"C\", \"x + 1\", engine)") term = fl.Linear("D", [0.0, 1.0, 2.0, -fl.inf, fl.inf]) self.assertEqual(fl.PythonExporter().to_string(term), fl.PythonExporter().term(term)) self.assertEqual( fl.PythonExporter().term(term), "fl.Linear(\"D\", [0.000, 1.000, 2.000, -fl.inf, fl.inf], engine)")
fl.InputVariable(name="AllInputTerms", description="", enabled=True, minimum=0.000, maximum=6.500, lock_range=False, terms=[ fl.Sigmoid("A", 0.500, -20.000), fl.ZShape("B", 0.000, 1.000), fl.Ramp("C", 1.000, 0.000), fl.Triangle("D", 0.500, 1.000, 1.500), fl.Trapezoid("E", 1.000, 1.250, 1.750, 2.000), fl.Concave("F", 0.850, 0.250), fl.Rectangle("G", 1.750, 2.250), fl.Discrete("H", [ 2.000, 0.000, 2.250, 1.000, 2.500, 0.500, 2.750, 1.000, 3.000, 0.000 ]), fl.Gaussian("I", 3.000, 0.200), fl.Cosine("J", 3.250, 0.650), fl.GaussianProduct("K", 3.500, 0.100, 3.300, 0.300), fl.Spike("L", 3.640, 1.040), fl.Bell("M", 4.000, 0.250, 3.000), fl.PiShape("N", 4.000, 4.500, 4.500, 5.000), fl.Concave("O", 5.650, 6.250), fl.SigmoidDifference("P", 4.750, 10.000, 30.000, 5.250), fl.SigmoidProduct("Q", 5.250, 20.000, -10.000, 5.750), fl.Ramp("R", 5.500, 6.500), fl.SShape("S", 5.500, 6.500), fl.Sigmoid("T", 6.000, 20.000) ])
fl.Discrete( "left", 0.000000000, 0.000000000, 0.006660000, 0.020000000, 0.013320000, 0.040000000, 0.019980000, 0.060000000, 0.026640000, 0.080000000, 0.033300000, 0.100000000, 0.039960000, 0.120000000, 0.046620000, 0.140000000, 0.053280000, 0.160000000, 0.059940000, 0.180000000, 0.066600000, 0.200000000, 0.073260000, 0.220000000, 0.079920000, 0.240000000, 0.086580000, 0.260000000, 0.093240000, 0.280000000, 0.099900000, 0.300000000, 0.106560000, 0.320000000, 0.113220000, 0.340000000, 0.119880000, 0.360000000, 0.126540000, 0.380000000, 0.133200000, 0.400000000, 0.139860000, 0.420000000, 0.146520000, 0.440000000, 0.153180000, 0.460000000, 0.159840000, 0.480000000, 0.166500000, 0.500000000, 0.173160000, 0.520000000, 0.179820000, 0.540000000, 0.186480000, 0.560000000, 0.193140000, 0.580000000, 0.199800000, 0.600000000, 0.206460000, 0.620000000, 0.213120000, 0.640000000, 0.219780000, 0.660000000, 0.226440000, 0.680000000, 0.233100000, 0.700000000, 0.239760000, 0.720000000, 0.246420000, 0.740000000, 0.253080000, 0.760000000, 0.259740000, 0.780000000, 0.266400000, 0.800000000, 0.273060000, 0.820000000, 0.279720000, 0.840000000, 0.286380000, 0.860000000, 0.293040000, 0.880000000, 0.299700000, 0.900000000, 0.306360000, 0.920000000, 0.313020000, 0.940000000, 0.319680000, 0.960000000, 0.326340000, 0.980000000, 0.333000000, 1.000000000, 0.339660000, 0.980000000, 0.346320000, 0.960000000, 0.352980000, 0.940000000, 0.359640000, 0.920000000, 0.366300000, 0.900000000, 0.372960000, 0.880000000, 0.379620000, 0.860000000, 0.386280000, 0.840000000, 0.392940000, 0.820000000, 0.399600000, 0.800000000, 0.406260000, 0.780000000, 0.412920000, 0.760000000, 0.419580000, 0.740000000, 0.426240000, 0.720000000, 0.432900000, 0.700000000, 0.439560000, 0.680000000, 0.446220000, 0.660000000, 0.452880000, 0.640000000, 0.459540000, 0.620000000, 0.466200000, 0.600000000, 0.472860000, 0.580000000, 0.479520000, 0.560000000, 0.486180000, 0.540000000, 0.492840000, 0.520000000, 0.499500000, 0.500000000, 0.506160000, 0.480000000, 0.512820000, 0.460000000, 0.519480000, 0.440000000, 0.526140000, 0.420000000, 0.532800000, 0.400000000, 0.539460000, 0.380000000, 0.546120000, 0.360000000, 0.552780000, 0.340000000, 0.559440000, 0.320000000, 0.566100000, 0.300000000, 0.572760000, 0.280000000, 0.579420000, 0.260000000, 0.586080000, 0.240000000, 0.592740000, 0.220000000, 0.599400000, 0.200000000, 0.606060000, 0.180000000, 0.612720000, 0.160000000, 0.619380000, 0.140000000, 0.626040000, 0.120000000, 0.632700000, 0.100000000, 0.639360000, 0.080000000, 0.646020000, 0.060000000, 0.652680000, 0.040000000, 0.659340000, 0.020000000, 0.666000000, 0.000000000),
import fuzzylite as fl engine = fl.Engine(name="Laundry", description="") engine.input_variables = [ fl.InputVariable( name="Load", description="", enabled=True, minimum=0.000, maximum=6.000, lock_range=False, terms=[ fl.Discrete( "small", [0.000, 1.000, 1.000, 1.000, 2.000, 0.800, 5.000, 0.000]), fl.Discrete("normal", [3.000, 0.000, 4.000, 1.000, 6.000, 0.000]) ]), fl.InputVariable( name="Dirt", description="", enabled=True, minimum=0.000, maximum=6.000, lock_range=False, terms=[ fl.Discrete("low", [0.000, 1.000, 2.000, 0.800, 5.000, 0.000]), fl.Discrete( "high", [1.000, 0.000, 2.000, 0.200, 4.000, 0.800, 6.000, 1.000]) ]) ]