From 231b33ea1a85189002f0e229303b0c97a546340f Mon Sep 17 00:00:00 2001 From: Shreya123714 Date: Sat, 28 Oct 2023 11:43:05 +0530 Subject: [PATCH] Add Test For fuzzy_operations.py --- fuzzy_logic/test_fuzzy_logic.py | 47 +++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 fuzzy_logic/test_fuzzy_logic.py diff --git a/fuzzy_logic/test_fuzzy_logic.py b/fuzzy_logic/test_fuzzy_logic.py new file mode 100644 index 000000000..e94b0a763 --- /dev/null +++ b/fuzzy_logic/test_fuzzy_logic.py @@ -0,0 +1,47 @@ +import unittest +from fuzzy_operations import FuzzySet + +class TestFuzzySet(unittest.TestCase): + def test_membership_within_boundaries(self): + A = FuzzySet("A", 0, 0.5, 1) + + self.assertAlmostEqual(A.membership(0), 1.0) # Left boundary + self.assertAlmostEqual(A.membership(0.25), 0.5) # Peak value + self.assertAlmostEqual(A.membership(0.5), 0.0) # Right boundary + + def test_membership_outside_boundaries(self): + A = FuzzySet("A", 0, 0.5, 1) + + self.assertAlmostEqual(A.membership(0.75), 0.0) # Outside boundaries + self.assertAlmostEqual(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.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.75), 0.0) # Outside boundaries + + def test_intersection(self): + A = FuzzySet("A", 0, 0.5, 1) + B = FuzzySet("B", 0.2, 0.7, 1) + + intersection_ab = A.intersection(B) + + self.assertAlmostEqual(intersection_ab.membership(0.1), 0.0) # Not a member of B + self.assertAlmostEqual(intersection_ab.membership(0.35), 0.5) # Member of both A and B + self.assertAlmostEqual(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.assertAlmostEqual(complement_a.membership(0.1), 0.0) # Member of A + self.assertAlmostEqual(complement_a.membership(0.75), 1.0) # Outside boundaries + +if __name__ == "__main__": + unittest.main()