def membership_pattern(self,membership,param): if not isinstance(membership, str): raise TypeError ("membership should be a string.") if not(membership == "gaussmf" or membership == "sigmf"): raise TypeError ("membership should be a gaussmf or sigmf.") if not isinstance(param, list): raise TypeError ("param should be a list. [sigma , offset]") if len(param)!=2: raise TypeError ("param should be a have two element") self.membership_sample = np.zeros_like(self.x) for (a,b), value in np.ndenumerate(self.x): if membership == "gaussmf": self.membership_sample[a][b] = gaussmf(value , param) if membership == "sigmf": self.membership_sample[a][b] = sigmf(value , param)
def test_gaussian2_membership_function(self): self.assertRaises(TypeError, lambda: sigmf.sigmf(0, [1.0, 0.0, 2.0]))
def test_gaussian18_membership_function(self): self.assertAlmostEqual(sigmf.sigmf(-1, [-0.5, -0.2]), 0.5986, places=2)
def test_gaussian17_membership_function(self): self.assertAlmostEqual(sigmf.sigmf(1, [0.5, -0.2]), 0.645, places=2)
def test_gaussian16_membership_function(self): self.assertAlmostEqual(sigmf.sigmf(1, [-0.5, 0.2]), 0.4013, places=4)
def test_gaussian_membership_function(self): self.assertEqual(sigmf.sigmf(0, [1.0, 0.0]), 0.5)
def test_gaussian14_membership_function(self): self.assertAlmostEqual(sigmf.sigmf(-2, [0.5, 0.2]), 0.2497, places=4)
def test_gaussian13_membership_function(self): self.assertAlmostEqual(sigmf.sigmf(-1, [1.0, 0.5]), 0.1824, places=4)
def test_gaussian12_membership_function(self): self.assertAlmostEqual(sigmf.sigmf(1, [0.0, 0.0]), 0.5, places=3)
def test_gaussian9_membership_function(self): self.assertAlmostEqual(sigmf.sigmf(0, [1.0, 0.5]), 0.3775, places=4)
def test_gaussian3_membership_function(self): self.assertRaises(TypeError, lambda: sigmf.sigmf(0, 1.0))