44from unittest import TestCase , skip
55import numpy as np
66
7- from fuzzy .classes import Domain , Set , Rule
7+ from fuzzy .classes import Domain , Set
88from fuzzy import functions as fun
99from fuzzy import hedges
1010from fuzzy import combinators as combi
11+ import fuzzy .rules as ru
1112
1213class Test_Functions (TestCase ):
1314 @given (st .floats (allow_nan = False ))
@@ -343,4 +344,18 @@ def test_complement(self):
343344 D = Domain ("d" , 0 , 10 , res = 0.1 )
344345 D .s1 = Set (fun .bounded_linear (3 , 12 ))
345346 D .s2 = ~ ~ D .s1
346- assert all (np .isclose (D .s1 .array (), D .s2 .array ()))
347+ assert all (np .isclose (D .s1 .array (), D .s2 .array ()))
348+
349+
350+ class Test_Rules (TestCase ):
351+ @given (st .floats (min_value = 0 , max_value = 1 ),
352+ st .floats (min_value = 0 , max_value = 1 ),
353+ st .floats (min_value = 0 , max_value = 1 ),
354+ st .floats (allow_infinity = False , allow_nan = False ),
355+ st .floats (allow_infinity = False , allow_nan = False ))
356+ def test_scaling (self , x , IN_min , IN_max , OUT_min , OUT_max ):
357+ assume (IN_min < IN_max )
358+ assume (IN_min <= x <= IN_max )
359+ assume (OUT_min < OUT_max )
360+ f = ru .scale (OUT_min , OUT_max , IN_min = IN_min , IN_max = IN_max )
361+ assert (OUT_min <= f (x ) <= OUT_max )
0 commit comments