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.algorithms.groovy;
39
40 import ffx.algorithms.misc.AlgorithmsTest;
41 import org.junit.Test;
42
43 import static org.junit.Assert.assertEquals;
44
45
46
47
48
49
50
51 public class ManyBodyTest extends AlgorithmsTest {
52
53
54
55
56
57 @Test
58 public void testManyBodyBoxOptimization() {
59
60 String[] args = {
61 "-a", "5",
62 "-L", "2",
63 "--bL", "10",
64 "--bB", "2",
65 "--tC", "2",
66 "--pr", "2",
67 getResourcePath("5awl.pdb")
68 };
69 binding.setVariable("args", args);
70 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
71
72
73 ManyBody manyBody = new ManyBody(binding).run();
74 algorithmsScript = manyBody;
75
76 double expectedTotalPotential = -230.1392872420811;
77 double actualTotalPotential = manyBody.getPotential().getTotalEnergy();
78 assertEquals(expectedTotalPotential, actualTotalPotential, 1E-7);
79
80 double expectedApproximateEnergy = -225.97693128995238;
81 double actualApproximateEnergy = manyBody.getManyBodyOptions().getApproximate();
82 assertEquals(expectedApproximateEnergy, actualApproximateEnergy, 1E-7);
83 }
84
85
86
87
88
89
90 @Test
91 public void testManyBodyBoxRestart() {
92
93 String[] args = {
94 "-a", "5",
95 "--bL", "10",
96 "--tC", "1.5",
97 "-T", "--thC",
98 "1.5", "--eR",
99 getResourcePath("5awl.box.restart"),
100 getResourcePath("5awl.pdb")
101 };
102 binding.setVariable("args", args);
103 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
104
105
106 ManyBody manyBody = new ManyBody(binding).run();
107 algorithmsScript = manyBody;
108
109 double expectedTotalPotential = -230.13928724208006;
110 double actualTotalPotential =
111 manyBody.getPotential().getTotalEnergy();
112 assertEquals(expectedTotalPotential, actualTotalPotential, 1E-7);
113
114 double expectedApproximateEnergy = -230.88286802981403;
115 double actualApproximateEnergy = manyBody.getManyBodyOptions().getApproximate();
116 assertEquals(expectedApproximateEnergy, actualApproximateEnergy, 1E-7);
117 }
118
119 @Test
120 public void testManyBodyGlobal() {
121
122 String[] args = {
123 "-a", "2", "-L", "2", "--tC", "2", getResourcePath("5awl.pdb")
124 };
125 binding.setVariable("args", args);
126 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
127
128
129 ManyBody manyBody = new ManyBody(binding).run();
130 algorithmsScript = manyBody;
131
132
133 manyBody.run();
134 double expectedTotalPotential = -230.1392865715949;
135 double actualTotalPotential = manyBody.getPotential().getTotalEnergy();
136 assertEquals(expectedTotalPotential, actualTotalPotential, 1E-5);
137
138 double expectedApproximateEnergy = -216.57578192741352;
139 double actualApproximateEnergy = manyBody.getManyBodyOptions().getApproximate();
140 assertEquals(expectedApproximateEnergy, actualApproximateEnergy, 1E-5);
141
142
143 manyBody.getManyBodyOptions().getRestartFile().delete();
144 }
145
146 @Test
147 public void testManyBodyHelp() {
148
149 String[] args = {"-h"};
150 binding.setVariable("args", args);
151
152
153 ManyBody manyBody = new ManyBody(binding).run();
154 algorithmsScript = manyBody;
155 }
156
157
158
159
160
161
162 @Test
163 public void testManyBodyMonteCarlo() {
164
165
166 System.setProperty("polarization", "direct");
167 System.setProperty("manybody-testing", "true");
168 System.setProperty("manybody-testing-mc", "true");
169
170
171 String[] args = {
172 "-a", "2",
173 "-L", "2",
174 "--tC", "2",
175 "--pr", "2",
176 "--mC", "100",
177 getResourcePath("5awl.pdb")
178 };
179 binding.setVariable("args", args);
180 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
181
182
183 ManyBody manyBody = new ManyBody(binding);
184 algorithmsScript = manyBody;
185 manyBody.run();
186
187 double expectedTotalPotential = -204.72742343060315;
188 double actualTotalPotential = manyBody.getPotential().getTotalEnergy();
189 assertEquals(expectedTotalPotential, actualTotalPotential, 1E-5);
190
191 double expectedApproximateEnergy = -195.16120410395288;
192 double actualApproximateEnergy = manyBody.getManyBodyOptions().getApproximate();
193 assertEquals(expectedApproximateEnergy, actualApproximateEnergy, 1E-5);
194
195
196 manyBody.getManyBodyOptions().getRestartFile().delete();
197 }
198
199
200
201
202
203 @Test
204 public void testManyBodyRestart() {
205
206 String[] args = {"-a", "2", "-L", "2", "--tC", "1.5", "-T", "--thC", "1.5", "--eR",
207 getResourcePath("5awl.test.restart"),
208 getResourcePath("5awl.pdb")
209 };
210 binding.setVariable("args", args);
211 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
212
213
214 ManyBody manyBody = new ManyBody(binding).run();
215 algorithmsScript = manyBody;
216
217 double expectedTotalPotential = -230.33490844427203;
218 double actualTotalPotential = manyBody.getPotential().getTotalEnergy();
219 assertEquals(expectedTotalPotential, actualTotalPotential, 1E-5);
220
221 double expectedApproximateEnergy = -296.824576745933;
222 double actualApproximateEnergy = manyBody.getManyBodyOptions().getApproximate();
223 assertEquals(expectedApproximateEnergy, actualApproximateEnergy, 1E-5);
224 }
225
226 @Test
227 public void testManyBodyTitration() {
228
229 String[] args = {"--tR", "--pH", "7.0", "--eR",
230 getResourcePath("DEHK.rot.restart"),
231 getResourcePath("DEHK.rot.pdb")
232 };
233 binding.setVariable("args", args);
234 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
235
236
237 ManyBody manyBody = new ManyBody(binding).run();
238 algorithmsScript = manyBody;
239
240 double expectedTotalPotential = -321.72679980;
241 double actualTotalPotential = manyBody.getPotential().getTotalEnergy();
242 assertEquals(expectedTotalPotential, actualTotalPotential, 1E-5);
243
244 double expectedApproximateEnergy = -227.523807;
245 double actualApproximateEnergy = manyBody.getManyBodyOptions().getApproximate();
246
247 assertEquals(expectedApproximateEnergy, actualApproximateEnergy, 1E-0);
248 }
249
250 }