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.ArrayList;
19 import java.util.HashSet;
20 import java.util.List;
21 import java.util.Set;
22
23 import junit.framework.TestCase;
24
25
26
27
28
29
30
31
32 public class TestAssignmentAndAssignmentEnumerator extends TestCase {
33
34
35 final static double SOME_PROBABILITY = .5;
36
37
38 Assignment a1;
39
40
41 Assignment a2;
42
43
44 Assignment a3;
45
46
47 Assignment a1Copy;
48
49 @Override
50 public void setUp() {
51
52 List<Integer> indexList1 = new ArrayList<Integer>();
53 indexList1.add(0);
54 indexList1.add(0);
55 indexList1.add(0);
56 a1 = new Assignment(indexList1, SOME_PROBABILITY);
57
58 List<Integer> indexList2 = new ArrayList<Integer>(indexList1);
59 a2 = new Assignment(indexList2, SOME_PROBABILITY * SOME_PROBABILITY);
60
61 List<Integer> indexList3 = new ArrayList<Integer>(indexList1);
62 indexList3.remove(0);
63 indexList3.add(0, 1);
64 a3 = new Assignment(indexList3, SOME_PROBABILITY);
65
66 a1Copy = new Assignment(new ArrayList<Integer>(a1.getAssignmentIndices()),
67 a1.getProbability());
68 }
69
70 public void testAssignment() {
71
72 assertEquals("0-0-0-", a1.getID());
73 assertEquals("0-0-0-", a2.getID());
74 assertEquals("1-0-0-", a3.getID());
75
76 assertFalse(a1.equals(a2));
77 assertFalse(a1.equals(a3));
78 assertTrue(a1.equals(a1Copy));
79 }
80
81 public void testAssignmentEnumerator() {
82 AssignmentEnumerator assignmentEnumerator = new AssignmentEnumerator(a2);
83 assertEquals(a2, assignmentEnumerator.getMostProbable());
84
85 Set<Assignment> assignmentSet = new HashSet<Assignment>();
86 assignmentSet.add(a1);
87 assignmentEnumerator.add(assignmentSet);
88
89
90 assertNotSame(a1, assignmentEnumerator.getMostProbable());
91 assertEquals(a2, assignmentEnumerator.getMostProbable());
92
93 assignmentSet.clear();
94 assignmentSet.add(a3);
95 assignmentEnumerator.add(assignmentSet);
96
97 assertNotSame(a2, assignmentEnumerator.getMostProbable());
98 assertEquals(a3, assignmentEnumerator.getMostProbable());
99
100
101 assertNotNull(assignmentEnumerator.removeMostProbable());
102 assertNotNull(assignmentEnumerator.removeMostProbable());
103 assertNull(assignmentEnumerator.removeMostProbable());
104 }
105 }