mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-05-18 23:21:28 +00:00
Add test_fuzzy_logic.py
This commit is contained in:
parent
c6022c2be5
commit
1183dd9ee0
@ -5,6 +5,7 @@ from fuzzy_operations import FuzzySet
|
|||||||
class TestFuzzySet(unittest.TestCase):
|
class TestFuzzySet(unittest.TestCase):
|
||||||
def test_membership_within_boundaries(self):
|
def test_membership_within_boundaries(self):
|
||||||
A = FuzzySet("A", 0, 0.5, 1)
|
A = FuzzySet("A", 0, 0.5, 1)
|
||||||
|
<<<<<<< Updated upstream
|
||||||
|
|
||||||
self.assertAlmostEqual(A.membership(0), 1.0) # Left boundary
|
self.assertAlmostEqual(A.membership(0), 1.0) # Left boundary
|
||||||
self.assertAlmostEqual(A.membership(0.25), 0.5) # Peak value
|
self.assertAlmostEqual(A.membership(0.25), 0.5) # Peak value
|
||||||
@ -25,12 +26,35 @@ class TestFuzzySet(unittest.TestCase):
|
|||||||
self.assertAlmostEqual(union_ab.membership(0.1), 1.0) # Member of A
|
self.assertAlmostEqual(union_ab.membership(0.1), 1.0) # Member of A
|
||||||
self.assertAlmostEqual(union_ab.membership(0.35), 0.5) # Member of both A and B
|
self.assertAlmostEqual(union_ab.membership(0.35), 0.5) # Member of both A and B
|
||||||
self.assertAlmostEqual(union_ab.membership(0.75), 0.0) # Outside boundaries
|
self.assertAlmostEqual(union_ab.membership(0.75), 0.0) # Outside boundaries
|
||||||
|
=======
|
||||||
|
|
||||||
|
self.assertEqual(A.membership(0), 1.0) # Left boundary
|
||||||
|
self.assertEqual(A.membership(0.25), 0.5) # Peak value
|
||||||
|
self.assertEqual(A.membership(0.5), 0.0) # Right boundary
|
||||||
|
|
||||||
|
def test_membership_outside_boundaries(self):
|
||||||
|
a = FuzzySet("A", 0, 0.5, 1)
|
||||||
|
|
||||||
|
self.assertEqual(a.membership(0.75), 0.0) # Outside boundaries
|
||||||
|
self.assertEqual(a.membership(-0.1), 0.0) # Outside boundaries
|
||||||
|
|
||||||
|
def test_union(self):
|
||||||
|
a = FuzzySet("A", 0, 0.5, 1)
|
||||||
|
b = FuzzySet("B", 0.2, 0.7, 1)
|
||||||
|
|
||||||
|
union_ab = a.union(b)
|
||||||
|
|
||||||
|
self.assertEqual(union_ab.membership(0.1), 1.0) # Member of A
|
||||||
|
self.assertEqual(union_ab.membership(0.35), 0.5) # Member of both A and B
|
||||||
|
self.assertEqual(union_ab.membership(0.75), 0.0) # Outside boundaries
|
||||||
|
>>>>>>> Stashed changes
|
||||||
|
|
||||||
def test_intersection(self):
|
def test_intersection(self):
|
||||||
A = FuzzySet("A", 0, 0.5, 1)
|
A = FuzzySet("A", 0, 0.5, 1)
|
||||||
B = FuzzySet("B", 0.2, 0.7, 1)
|
B = FuzzySet("B", 0.2, 0.7, 1)
|
||||||
|
|
||||||
intersection_ab = A.intersection(B)
|
intersection_ab = A.intersection(B)
|
||||||
|
<<<<<<< Updated upstream
|
||||||
|
|
||||||
self.assertAlmostEqual(
|
self.assertAlmostEqual(
|
||||||
intersection_ab.membership(0.1), 0.0
|
intersection_ab.membership(0.1), 0.0
|
||||||
@ -49,6 +73,20 @@ class TestFuzzySet(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertAlmostEqual(complement_a.membership(0.1), 0.0) # Member of A
|
self.assertAlmostEqual(complement_a.membership(0.1), 0.0) # Member of A
|
||||||
self.assertAlmostEqual(complement_a.membership(0.75), 1.0) # Outside boundaries
|
self.assertAlmostEqual(complement_a.membership(0.75), 1.0) # Outside boundaries
|
||||||
|
=======
|
||||||
|
|
||||||
|
self.assertEqual(intersection_ab.membership(0.1), 0.0) # Not a member of B
|
||||||
|
self.assertEqual(intersection_ab.membership(0.35), 0.5) # Member of both A and B
|
||||||
|
self.assertEqual(intersection_ab.membership(0.75), 0.0) # Not a member of A
|
||||||
|
|
||||||
|
def test_complement(self):
|
||||||
|
a = FuzzySet("a", 0, 0.5, 1)
|
||||||
|
|
||||||
|
complement_a = a.complement()
|
||||||
|
|
||||||
|
self.assertEqual(complement_a.membership(0.1), 0.0) # Member of A
|
||||||
|
self.assertEqual(complement_a.membership(0.75), 1.0) # Outside boundaries
|
||||||
|
>>>>>>> Stashed changes
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user