1
2
3
4
5
6
7
8
9
10
11
12
13
14 package fuzzy.df;
15
16 import static org.junit.Assert.assertEquals;
17
18 import java.text.DecimalFormat;
19
20 import org.apache.commons.functor.generator.range.DoubleRange;
21 import org.junit.Test;
22
23 import fuzzy.mf.MembershipFunction;
24 import fuzzy.mf.SigmoidalMembershipFunction;
25 import fuzzy.mf.TrapezoidalMembershipFunction;
26
27
28
29
30
31
32
33
34 public class TestSmallestOfMaximaDefuzzificationFunction extends BaseDefuzzificationFunctionTest<SmallestOfMaximaDefuzzificationFunction<Double>>{
35
36 @Override
37 protected SmallestOfMaximaDefuzzificationFunction<Double> makeDefuzzificationFunction() {
38 final SmallestOfMaximaDefuzzificationFunction<Double> df = new SmallestOfMaximaDefuzzificationFunction<Double>();
39 return df;
40 }
41
42 @Test
43 public void testDefuzzification() {
44 SmallestOfMaximaDefuzzificationFunction<Double> df = makeDefuzzificationFunction();
45 DoubleRange range = new DoubleRange(-10.0, 10.0, 0.1);
46 MembershipFunction<Double> mf = new TrapezoidalMembershipFunction(-10.0, -8.0, -4.0, 7.0);
47 Double d = df.apply(range, mf);
48 assertEquals(Integer.valueOf(-4).toString(), new DecimalFormat("#.#").format(d));
49 }
50
51 @Test()
52 public void testDefuzzificationEmptySet() {
53 SmallestOfMaximaDefuzzificationFunction<Double> df = makeDefuzzificationFunction();
54 DoubleRange range = new DoubleRange(0.0, 0.0);
55 MembershipFunction<Double> mf = new SigmoidalMembershipFunction(-10.0, 10.0);
56 Double d = df.apply(range, mf);
57 assertEquals(Double.valueOf(0.0), d);
58 }
59
60 }