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", 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.72657973215976;
66
67 double actualPotentialEnergy =
68 xtalMin.getPotentials().get(xtalMin.getPotentials().size() - 1).getTotalEnergy();
69 assertEquals(expectedPotentialEnergy, actualPotentialEnergy, 1E-6);
70 }
71
72
73 @Test
74 public void testCrystalMinCoords() {
75
76 String[] args = {"-c", getResourcePath("acetamide.xtal.xyz")};
77 binding.setVariable("args", args);
78 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
79
80
81 MinimizeCrystals xtalMin = new MinimizeCrystals(binding).run();
82 algorithmsScript = xtalMin;
83
84 double expectedPotentialEnergy = -32.53569940765405;
85
86 double actualPotentialEnergy =
87 xtalMin.getPotentials().get(xtalMin.getPotentials().size() - 1).getTotalEnergy();
88 assertEquals(expectedPotentialEnergy, actualPotentialEnergy, 1E-6);
89 }
90
91
92 @Test
93 public void testCrystalMinFractional() {
94
95 String[] args = {"-f", "ATOM", "-e", "0.24", getResourcePath("acetamide.xtal.xyz")};
96 binding.setVariable("args", args);
97 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
98
99
100 MinimizeCrystals xtalMin = new MinimizeCrystals(binding).run();
101 algorithmsScript = xtalMin;
102
103 double expectedPotentialEnergy = -32.54443451197122;
104
105 double actualPotentialEnergy =
106 xtalMin.getPotentials().get(xtalMin.getPotentials().size() - 1).getTotalEnergy();
107 assertEquals(expectedPotentialEnergy, actualPotentialEnergy, 1E-6);
108 }
109
110 @Test
111 public void testCrystalMinHelp() {
112
113 String[] args = {"-h"};
114 binding.setVariable("args", args);
115
116
117 MinimizeCrystals xtalMin = new MinimizeCrystals(binding).run();
118 algorithmsScript = xtalMin;
119 }
120
121
122 @Test
123 public void testCrystalMinIterations() {
124
125 String[] args = {"-I", "1", "-e", "0.25", getResourcePath("acetamide.xtal.xyz")};
126
127 binding.setVariable("args", args);
128 binding.setVariable("baseDir", registerTemporaryDirectory().toFile());
129
130
131 MinimizeCrystals xtalMin = new MinimizeCrystals(binding).run();
132 algorithmsScript = xtalMin;
133
134 double expectedPotentialEnergy = -32.63131283241016;
135
136 double actualPotentialEnergy =
137 xtalMin.getPotentials().get(xtalMin.getPotentials().size() - 1).getTotalEnergy();
138 assertEquals(expectedPotentialEnergy, actualPotentialEnergy, 1E-6);
139 }
140 }