1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package p3j.simulation.assignments.exhaustive;
17
18 import java.util.Map;
19
20 import junit.framework.TestCase;
21 import p3j.pppm.parameters.ParameterAssignment;
22 import p3j.pppm.parameters.ParameterInstance;
23 import p3j.pppm.parameters.Parameters;
24 import p3j.pppm.sets.Set;
25 import p3j.pppm.sets.SetType;
26
27
28
29
30
31
32
33 public class TestSetManager extends TestCase {
34
35
36 SetManager setManager;
37
38
39
40
41
42 protected final static double probFirst = 0.8;
43
44
45 protected final static double probSecond = 1 - probFirst;
46
47
48 protected final ParameterInstance instance1 = new ParameterInstance(0,
49 Parameters.EMIG_MORT_X_F);
50
51
52 protected final ParameterInstance instance2 = new ParameterInstance(1,
53 Parameters.EMIG_MORT_X_M);
54
55
56 final ParameterAssignment assignment1Inst1 = new ParameterAssignment(
57 instance1, "#1-1", "", probFirst, 0.0, null);
58
59
60 final ParameterAssignment assignment2Inst1 = new ParameterAssignment(
61 instance1, "#1-2", "", probSecond, 0.0, null);
62
63
64 final ParameterAssignment assignment1Inst2 = new ParameterAssignment(
65 instance2, "#2-1", "", probFirst, 0.0, null);
66
67
68 final ParameterAssignment assignment2Inst2 = new ParameterAssignment(
69 instance2, "#2-2", "", probSecond, 0.0, null);
70
71
72 protected final SetType setType = new SetType("Test Settype",
73 "This is just a Settype of testing.");
74 {
75 setType.addInstance(instance1);
76 setType.addInstance(instance2);
77 }
78
79
80 protected final Set set = setType.createSet("Test Set",
81 "This is just a set for testing.", 1.0);
82 {
83 set.addParameterAssignment(assignment1Inst1);
84 set.addParameterAssignment(assignment1Inst2);
85 set.addParameterAssignment(assignment2Inst1);
86 set.addParameterAssignment(assignment2Inst2);
87 }
88
89
90
91
92
93
94 @Override
95 public void setUp() {
96 setManager = new SetManager(set, setType);
97 }
98
99
100
101
102 public void testSetManager() {
103 assertEquals(probFirst * probFirst, setManager.getCurrentAssignmentProb());
104 testMapping(setManager.getCurrentMapping(), assignment1Inst1,
105 assignment1Inst2);
106
107 assertTrue(setManager.nextAssignment());
108 assertEquals(probFirst * probSecond, setManager.getCurrentAssignmentProb());
109
110 assertTrue(setManager.nextAssignment());
111 assertEquals(probFirst * probSecond, setManager.getCurrentAssignmentProb());
112
113 assertTrue(setManager.nextAssignment());
114 assertEquals(probSecond * probSecond, setManager.getCurrentAssignmentProb());
115 testMapping(setManager.getCurrentMapping(), assignment2Inst1,
116 assignment2Inst2);
117
118 assertFalse(setManager.nextAssignment());
119 }
120
121
122
123
124
125
126
127
128
129
130
131 private void testMapping(
132 Map<ParameterInstance, ParameterAssignment> currentMapping,
133 ParameterAssignment assignmentFirstInst,
134 ParameterAssignment assignmentSecondInst) {
135 assertEquals(2, currentMapping.size());
136 assertEquals(assignmentFirstInst, currentMapping.get(instance1));
137 assertEquals(assignmentSecondInst, currentMapping.get(instance2));
138 }
139
140 }