1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 package ffx.crystal;
39
40 import static org.junit.Assert.assertEquals;
41 import static org.junit.Assert.assertNotNull;
42 import static org.junit.Assert.assertNull;
43
44 import ffx.utilities.FFXTest;
45 import java.util.Arrays;
46 import java.util.Collection;
47 import org.junit.Test;
48 import org.junit.runner.RunWith;
49 import org.junit.runners.Parameterized;
50 import org.junit.runners.Parameterized.Parameters;
51
52
53
54
55
56
57 @RunWith(Parameterized.class)
58 public class ReflectionListTest extends FFXTest {
59
60 private final String info;
61 private final int size;
62 private final HKL valid;
63 private final HKL invalid;
64 private final int epsilon;
65 private final int allowed;
66 private final boolean ciOnly;
67 private final ReflectionList reflectionlist;
68
69 public ReflectionListTest(
70 boolean ciOnly,
71 String info,
72 double a,
73 double b,
74 double c,
75 double alpha,
76 double beta,
77 double gamma,
78 String sg,
79 double resolution,
80 int size,
81 HKL valid,
82 HKL invalid,
83 int epsilon,
84 int allowed) {
85 this.ciOnly = ciOnly;
86 this.info = info;
87 this.size = size;
88 this.valid = valid;
89 this.invalid = invalid;
90 this.epsilon = epsilon;
91 this.allowed = allowed;
92
93 if (!ffxCI && ciOnly) {
94 this.reflectionlist = null;
95 return;
96 }
97
98 Crystal crystal = new Crystal(a, b, c, alpha, beta, gamma, sg);
99 Resolution res = new Resolution(resolution);
100 this.reflectionlist = new ReflectionList(crystal, res);
101 }
102
103 @Parameters
104 public static Collection<Object[]> data() {
105 return Arrays.asList(
106 new Object[][] {
107 {
108 false,
109 "P6 test",
110 115.996,
111 115.996,
112 44.13,
113 90.0,
114 90.0,
115 120.0,
116 "P6",
117 1.89631,
118 27200,
119 new HKL(0, 0, 4),
120 new HKL(-1, 0, 0),
121 6,
122 0
123 },
124 {
125 true,
126 "I222 test",
127 86.031,
128 92.854,
129 98.312,
130 90.0,
131 90.0,
132 90.0,
133 "I222",
134 1.0,
135 210663,
136 new HKL(0, 0, 4),
137 new HKL(0, 0, 3),
138 8,
139 0
140 },
141 {
142 true,
143 "P1 test",
144 25.015,
145 29.415,
146 52.761,
147 89.54,
148 86.1,
149 82.39,
150 "P1",
151 1.0,
152 80373,
153 new HKL(-24, -10, 1),
154 new HKL(-24, -10, 8),
155 1,
156 0
157 }
158 });
159 }
160
161 @Test
162 public void testreflections() {
163 if (!ffxCI && ciOnly) {
164 return;
165 }
166
167 assertNotNull(info + " list should have valid reflection", reflectionlist.getHKL(valid));
168 assertNull(info + " list should NOT have invalid reflection", reflectionlist.getHKL(invalid));
169
170 HKL hkl = reflectionlist.getHKL(0, 0, 0);
171 assertEquals(
172 info + " list 0 0 0 reflection should have correct epsilon", epsilon, hkl.getEpsilon());
173 assertEquals(
174 info + " list 0 0 0 reflection should have correct allowance", allowed, hkl.allowed);
175 }
176
177 @Test
178 public void testsize() {
179 if (!ffxCI && ciOnly) {
180 return;
181 }
182
183 assertEquals(
184 info + " hash map and arraylist should have equal length",
185 reflectionlist.hklMap.size(),
186 reflectionlist.hklList.size());
187 assertEquals(
188 info + " reflection list should have correct size", size, reflectionlist.hklList.size());
189 }
190 }