source: opponentmodel/src/test/java/geniusweb/opponentmodel/bayesian/TriangleValueSetUtilTest.java@ 42

Last change on this file since 42 was 42, checked in by bart, 3 years ago

Fix for IssueValue hashcode.

File size: 3.3 KB
Line 
1package geniusweb.opponentmodel.bayesian;
2
3import static org.junit.Assert.assertEquals;
4
5import java.math.BigDecimal;
6import java.util.Arrays;
7import java.util.List;
8
9import org.junit.Before;
10import org.junit.Test;
11
12import geniusweb.issuevalue.NumberValue;
13import tudelft.utilities.junit.GeneralTests;
14
15public class TriangleValueSetUtilTest
16 extends GeneralTests<TriangleValueSetUtilities> {
17
18 private static final double MAXE = 0.00000001;
19 private static final BigDecimal N0 = BigDecimal.ZERO;
20 private static final BigDecimal N01 = new BigDecimal("0.1");
21 private static final BigDecimal N02 = new BigDecimal("0.2");
22 private static final BigDecimal N03 = new BigDecimal("0.3");
23 private static final BigDecimal N04 = new BigDecimal("0.4");
24 private static final BigDecimal N05 = new BigDecimal("0.5");
25 private static final BigDecimal N07 = new BigDecimal("0.7");
26 private static final BigDecimal N09 = new BigDecimal("0.9");
27 private static final BigDecimal N1 = BigDecimal.ONE;
28
29 private TriangleValueSetUtilities vset1, vset1a, vset2, vset3;
30
31 @Before
32 public void before() {
33 vset1 = new TriangleValueSetUtilities(N01, N02, N04, N05, N07, N09);
34 vset1a = new TriangleValueSetUtilities(N01, N02, N04, N05, N07, N09);
35 vset2 = new TriangleValueSetUtilities(N01, N02, N01, N05, N07, N09);
36 vset3 = new TriangleValueSetUtilities(N01, N02, N07, N05, N07, N09);
37 }
38
39 @Override
40 public List<List<TriangleValueSetUtilities>> getGeneralTestData() {
41 return Arrays.asList(Arrays.asList(vset1, vset1a), Arrays.asList(vset2),
42 Arrays.asList(vset3));
43 }
44
45 @Override
46 public List<String> getGeneralTestStrings() {
47 return Arrays.asList(
48 "TriangleValueSetUtilities.0.1->0.2,0.4->0.5,0.7->0.9.",
49 "TriangleValueSetUtilities.0.1->0.2,0.1->0.5,0.7->0.9.",
50 "TriangleValueSetUtilities.0.1->0.2,0.7->0.5,0.7->0.9.");
51 }
52
53 @Test
54 public void testInterpolation() {
55 assertEquals(0, vset1.getUtility(new NumberValue(N0)).doubleValue(),
56 MAXE);
57 assertEquals(0.2, vset1.getUtility(new NumberValue(N01)).doubleValue(),
58 MAXE);
59 assertEquals(0.3 /* 2 + 1/2*3 */,
60 vset1.getUtility(new NumberValue(N02)).doubleValue(), MAXE);
61 assertEquals(0.5, vset1.getUtility(new NumberValue(N04)).doubleValue(),
62 MAXE);
63 assertEquals(0.9, vset1.getUtility(new NumberValue(N07)).doubleValue(),
64 MAXE);
65 assertEquals(0, vset1.getUtility(new NumberValue(N09)).doubleValue(),
66 MAXE);
67
68 }
69
70 @Test
71 public void testMidEqualsLow() {
72 assertEquals(0, vset2.getUtility(new NumberValue(N0)).doubleValue(),
73 MAXE);
74 assertEquals(0.5, vset2.getUtility(new NumberValue(N01)).doubleValue(),
75 MAXE);
76 assertEquals(0.5 + 0.4 / 6,
77 vset2.getUtility(new NumberValue(N02)).doubleValue(), MAXE);
78 assertEquals(0.9, vset2.getUtility(new NumberValue(N07)).doubleValue(),
79 MAXE);
80 assertEquals(0, vset2.getUtility(new NumberValue(N09)).doubleValue(),
81 MAXE);
82
83 }
84
85 @Test
86 public void testMidEqualsHigh() {
87 assertEquals(0, vset3.getUtility(new NumberValue(N0)).doubleValue(),
88 MAXE);
89 assertEquals(0.2, vset3.getUtility(new NumberValue(N01)).doubleValue(),
90 MAXE);
91 assertEquals(0.2 + 2 * 0.3 / 6,
92 vset3.getUtility(new NumberValue(N03)).doubleValue(), MAXE);
93 assertEquals(0.5, vset3.getUtility(new NumberValue(N07)).doubleValue(),
94 MAXE);
95 assertEquals(0, vset3.getUtility(new NumberValue(N09)).doubleValue(),
96 MAXE);
97
98 }
99
100}
Note: See TracBrowser for help on using the repository browser.