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 static org.junit.Assert.assertEquals;
41
42 import ffx.algorithms.misc.AlgorithmsTest;
43 import org.junit.Test;
44
45
46
47
48
49
50
51 public class MinimizeCrystalsTest extends AlgorithmsTest {
52
53
54 @Test
55 public void testCrystalMinConvergenceCriteria() {
56
57 String[] args = {"-e", "0.25", "-f", "molecule", getResourcePath("acetamide.xtal.xyz")};
58 binding.setVariable("args", args);
59 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
60
61
62 MinimizeCrystals xtalMin = new MinimizeCrystals(binding).run();
63 algorithmsScript = xtalMin;
64
65 double expectedPotentialEnergy = -32.72658281436831;
66 double actualPotentialEnergy =
67 xtalMin.getPotentials().get(xtalMin.getPotentials().size() - 1).getTotalEnergy();
68 assertEquals(expectedPotentialEnergy, actualPotentialEnergy, 1E-6);
69 }
70
71
72 @Test
73 public void testCrystalMinCoords() {
74
75 String[] args = {"-c", "-f", "molecule", getResourcePath("acetamide.xtal.xyz")};
76 binding.setVariable("args", args);
77 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
78
79
80 MinimizeCrystals xtalMin = new MinimizeCrystals(binding).run();
81 algorithmsScript = xtalMin;
82
83 double expectedPotentialEnergy = -32.53569940765405;
84
85 double actualPotentialEnergy =
86 xtalMin.getPotentials().get(xtalMin.getPotentials().size() - 1).getTotalEnergy();
87 assertEquals(expectedPotentialEnergy, actualPotentialEnergy, 1E-6);
88 }
89
90
91 @Test
92 public void testCrystalMinFractional() {
93
94 String[] args = {"-f", "ATOM", "-e", "0.24", getResourcePath("acetamide.xtal.xyz")};
95 binding.setVariable("args", args);
96 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
97
98
99 MinimizeCrystals xtalMin = new MinimizeCrystals(binding).run();
100 algorithmsScript = xtalMin;
101
102 double expectedPotentialEnergy = -32.54443798845555;
103
104 double actualPotentialEnergy =
105 xtalMin.getPotentials().get(xtalMin.getPotentials().size() - 1).getTotalEnergy();
106 assertEquals(expectedPotentialEnergy, actualPotentialEnergy, 1E-6);
107 }
108
109 @Test
110 public void testCrystalMinHelp() {
111
112 String[] args = {"-h"};
113 binding.setVariable("args", args);
114
115
116 MinimizeCrystals xtalMin = new MinimizeCrystals(binding).run();
117 algorithmsScript = xtalMin;
118 }
119
120
121 @Test
122 public void testCrystalMinIterations() {
123
124 String[] args = {"-I", "1", "-e", "0.25", "-f", "molecule", getResourcePath("acetamide.xtal.xyz")};
125
126 binding.setVariable("args", args);
127 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
128
129
130 MinimizeCrystals xtalMin = new MinimizeCrystals(binding).run();
131 algorithmsScript = xtalMin;
132
133 double expectedPotentialEnergy = -32.63131694976352;
134
135 double actualPotentialEnergy =
136 xtalMin.getPotentials().get(xtalMin.getPotentials().size() - 1).getTotalEnergy();
137 assertEquals(expectedPotentialEnergy, actualPotentialEnergy, 1E-6);
138 }
139 }