1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package p3j.simulation.assignments.exhaustive;
17
18 import junit.framework.TestCase;
19 import p3j.pppm.parameters.ParameterAssignment;
20 import p3j.pppm.sets.Set;
21
22
23
24
25
26
27
28
29 public class TestSetTypeManager extends TestCase {
30
31
32 final static double PRECISION = 0.000001;
33
34
35 final static int NUM_ASSIGNMENTS = 5;
36
37
38 protected final TestSetManager setManagerTest = new TestSetManager();
39
40
41 protected final ParameterAssignment assignmentInst1 = new ParameterAssignment(
42 setManagerTest.instance1, "#1", "", 1.0, 0.0, null);
43
44
45 protected final ParameterAssignment assignmentInst2 = new ParameterAssignment(
46 setManagerTest.instance2, "#2", "", 1.0, 0.0, null);
47
48
49 Set secondSet = setManagerTest.setType.createSet("Second test set.",
50 "This is just another test set.", TestSetManager.probSecond / 2);
51 {
52 setManagerTest.set.setProbability(1 - (TestSetManager.probSecond / 2));
53 secondSet.addParameterAssignment(assignmentInst1);
54 secondSet.addParameterAssignment(assignmentInst2);
55 }
56
57
58 SetTypeManager setTypeManager;
59
60 @Override
61 public void setUp() {
62 setTypeManager = new SetTypeManager(setManagerTest.setType);
63 }
64
65
66
67
68 public void testSetTypeManager() {
69 assertTrue(setTypeManager.createAssignments(NUM_ASSIGNMENTS));
70 assertFalse(setTypeManager.createAssignments(NUM_ASSIGNMENTS + 1));
71 assertFalse(setTypeManager.createAssignments(NUM_ASSIGNMENTS + 100));
72
73
74 for (ParameterAssignment pa : setTypeManager.getAssignment(0).values()) {
75 assertEquals(TestSetManager.probFirst, pa.getProbability());
76 }
77 assertEquals((1.0 - (TestSetManager.probSecond / 2.0))
78 * (TestSetManager.probFirst * TestSetManager.probFirst),
79 setTypeManager.getProbability(0), PRECISION);
80
81
82 for (ParameterAssignment pa : setTypeManager.getAssignment(
83 NUM_ASSIGNMENTS - 1).values()) {
84 assertEquals(TestSetManager.probSecond, pa.getProbability());
85 }
86 assertEquals((1 - TestSetManager.probSecond / 2.0)
87 * TestSetManager.probSecond * TestSetManager.probSecond,
88 setTypeManager.getProbability(NUM_ASSIGNMENTS - 1), PRECISION);
89 }
90
91 }