vasputils 0.0.0 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. data/Gemfile +1 -0
  2. data/Rakefile +1 -1
  3. data/bin/lsvaspdir +4 -1
  4. data/lib/vasputils/poscar.rb +0 -0
  5. data/lib/vasputils/vaspdir.rb +257 -253
  6. data/test/test_vaspdir.rb +235 -235
  7. data/vasputils.gemspec +7 -110
  8. metadata +30 -170
  9. data/test/vaspdir/IBRION-1-NSW000-OUTCAR-Iter1/CONTCAR +0 -17
  10. data/test/vaspdir/IBRION-1-NSW000-OUTCAR-Iter1/INCAR +0 -27
  11. data/test/vaspdir/IBRION-1-NSW000-OUTCAR-Iter1/KPOINTS +0 -6
  12. data/test/vaspdir/IBRION-1-NSW000-OUTCAR-Iter1/OUTCAR +0 -1436
  13. data/test/vaspdir/IBRION-1-NSW000-OUTCAR-Iter1/POSCAR +0 -12
  14. data/test/vaspdir/IBRION-1-NSW000-OUTCAR-Iter1/POTCAR +0 -3151
  15. data/test/vaspdir/IBRION-1-NSW000-OUTCAR-Iter1/lock +0 -0
  16. data/test/vaspdir/ISIF2-NSW000-OUTCAR-Iter1/CONTCAR +0 -17
  17. data/test/vaspdir/ISIF2-NSW000-OUTCAR-Iter1/INCAR +0 -28
  18. data/test/vaspdir/ISIF2-NSW000-OUTCAR-Iter1/KPOINTS +0 -6
  19. data/test/vaspdir/ISIF2-NSW000-OUTCAR-Iter1/OUTCAR +0 -1436
  20. data/test/vaspdir/ISIF2-NSW000-OUTCAR-Iter1/POSCAR +0 -12
  21. data/test/vaspdir/ISIF2-NSW000-OUTCAR-Iter1/POTCAR +0 -3151
  22. data/test/vaspdir/ISIF2-NSW000-OUTCAR-Iter1/lock +0 -0
  23. data/test/vaspdir/ISIF2-NSW001-OUTCAR-Iter1/CONTCAR +0 -17
  24. data/test/vaspdir/ISIF2-NSW001-OUTCAR-Iter1/INCAR +0 -28
  25. data/test/vaspdir/ISIF2-NSW001-OUTCAR-Iter1/KPOINTS +0 -6
  26. data/test/vaspdir/ISIF2-NSW001-OUTCAR-Iter1/OUTCAR +0 -1436
  27. data/test/vaspdir/ISIF2-NSW001-OUTCAR-Iter1/POSCAR +0 -12
  28. data/test/vaspdir/ISIF2-NSW001-OUTCAR-Iter1/POTCAR +0 -3151
  29. data/test/vaspdir/ISIF2-NSW001-OUTCAR-Iter1/lock +0 -0
  30. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter1/CONTCAR +0 -17
  31. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter1/INCAR +0 -28
  32. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter1/KPOINTS +0 -6
  33. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter1/OUTCAR +0 -1436
  34. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter1/POSCAR +0 -12
  35. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter1/POTCAR +0 -3151
  36. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter1/lock +0 -0
  37. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter3/CONTCAR +0 -17
  38. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter3/INCAR +0 -28
  39. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter3/KPOINTS +0 -6
  40. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter3/OUTCAR +0 -2602
  41. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter3/POSCAR +0 -12
  42. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter3/POTCAR +0 -3151
  43. data/test/vaspdir/ISIF2-NSW100-OUTCAR-Iter3/lock +0 -0
  44. data/test/vaspdir/ISIF3-NSW000-OUTCAR-Iter1/CONTCAR +0 -17
  45. data/test/vaspdir/ISIF3-NSW000-OUTCAR-Iter1/INCAR +0 -28
  46. data/test/vaspdir/ISIF3-NSW000-OUTCAR-Iter1/KPOINTS +0 -6
  47. data/test/vaspdir/ISIF3-NSW000-OUTCAR-Iter1/OUTCAR +0 -1436
  48. data/test/vaspdir/ISIF3-NSW000-OUTCAR-Iter1/POSCAR +0 -12
  49. data/test/vaspdir/ISIF3-NSW000-OUTCAR-Iter1/POTCAR +0 -3151
  50. data/test/vaspdir/ISIF3-NSW000-OUTCAR-Iter1/lock +0 -0
  51. data/test/vaspdir/ISIF3-NSW001-OUTCAR-Iter1/CONTCAR +0 -17
  52. data/test/vaspdir/ISIF3-NSW001-OUTCAR-Iter1/INCAR +0 -28
  53. data/test/vaspdir/ISIF3-NSW001-OUTCAR-Iter1/KPOINTS +0 -6
  54. data/test/vaspdir/ISIF3-NSW001-OUTCAR-Iter1/OUTCAR +0 -1436
  55. data/test/vaspdir/ISIF3-NSW001-OUTCAR-Iter1/POSCAR +0 -12
  56. data/test/vaspdir/ISIF3-NSW001-OUTCAR-Iter1/POTCAR +0 -3151
  57. data/test/vaspdir/ISIF3-NSW001-OUTCAR-Iter1/lock +0 -0
  58. data/test/vaspdir/ISIF3-NSW002-OUTCAR-Iter2/CONTCAR +0 -17
  59. data/test/vaspdir/ISIF3-NSW002-OUTCAR-Iter2/INCAR +0 -28
  60. data/test/vaspdir/ISIF3-NSW002-OUTCAR-Iter2/KPOINTS +0 -6
  61. data/test/vaspdir/ISIF3-NSW002-OUTCAR-Iter2/OUTCAR +0 -2025
  62. data/test/vaspdir/ISIF3-NSW002-OUTCAR-Iter2/POSCAR +0 -12
  63. data/test/vaspdir/ISIF3-NSW002-OUTCAR-Iter2/POTCAR +0 -3151
  64. data/test/vaspdir/ISIF3-NSW002-OUTCAR-Iter2/lock +0 -0
  65. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter1-INT/CONTCAR +0 -0
  66. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter1-INT/INCAR +0 -28
  67. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter1-INT/KPOINTS +0 -6
  68. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter1-INT/OUTCAR +0 -619
  69. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter1-INT/POSCAR +0 -12
  70. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter1-INT/POTCAR +0 -3151
  71. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter1-INT/lock +0 -0
  72. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter3/CONTCAR +0 -17
  73. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter3/INCAR +0 -28
  74. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter3/KPOINTS +0 -6
  75. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter3/OUTCAR +0 -2602
  76. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter3/POSCAR +0 -12
  77. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter3/POTCAR +0 -3151
  78. data/test/vaspdir/ISIF3-NSW100-OUTCAR-Iter3/lock +0 -0
  79. data/test/vaspdir/PI/INCAR +0 -28
  80. data/test/vaspdir/PI/KPOINTS +0 -5
  81. data/test/vaspdir/PI/PI12345 +0 -0
  82. data/test/vaspdir/PI/POSCAR +0 -57
  83. data/test/vaspdir/PI/POTCAR +0 -698
  84. data/test/vaspdir/lock/INCAR +0 -28
  85. data/test/vaspdir/lock/KPOINTS +0 -5
  86. data/test/vaspdir/lock/POSCAR +0 -57
  87. data/test/vaspdir/lock/POTCAR +0 -698
  88. data/test/vaspdir/lock/lock +0 -0
  89. data/test/vaspdir/lock-PI/INCAR +0 -28
  90. data/test/vaspdir/lock-PI/KPOINTS +0 -5
  91. data/test/vaspdir/lock-PI/PI12345 +0 -0
  92. data/test/vaspdir/lock-PI/POSCAR +0 -57
  93. data/test/vaspdir/lock-PI/POTCAR +0 -698
  94. data/test/vaspdir/lock-PI/lock +0 -0
  95. data/test/vaspdir/next-try00/CONTCAR +0 -17
  96. data/test/vaspdir/next-try00/INCAR +0 -28
  97. data/test/vaspdir/next-try00/KPOINTS +0 -6
  98. data/test/vaspdir/next-try00/OUTCAR +0 -2025
  99. data/test/vaspdir/next-try00/POSCAR +0 -12
  100. data/test/vaspdir/next-try00/POTCAR +0 -3151
  101. data/test/vaspdir/next-try00/lock +0 -0
  102. data/test/vaspdir/not-yet-ISIF2/INCAR +0 -28
  103. data/test/vaspdir/not-yet-ISIF2/KPOINTS +0 -5
  104. data/test/vaspdir/not-yet-ISIF2/PI17489 +0 -2
  105. data/test/vaspdir/not-yet-ISIF2/PI17736 +0 -2
  106. data/test/vaspdir/not-yet-ISIF2/PI1858 +0 -2
  107. data/test/vaspdir/not-yet-ISIF2/PI1866 +0 -2
  108. data/test/vaspdir/not-yet-ISIF2/PI2059 +0 -2
  109. data/test/vaspdir/not-yet-ISIF2/POSCAR +0 -57
  110. data/test/vaspdir/not-yet-ISIF2/POTCAR +0 -698
  111. data/test/vaspdir/not-yet-ISIF3/INCAR +0 -28
  112. data/test/vaspdir/not-yet-ISIF3/KPOINTS +0 -5
  113. data/test/vaspdir/not-yet-ISIF3/POSCAR +0 -57
  114. data/test/vaspdir/not-yet-ISIF3/POTCAR +0 -698
data/test/test_vaspdir.rb CHANGED
@@ -4,250 +4,250 @@
4
4
  $TEST = true
5
5
 
6
6
  class VaspDir
7
- attr_reader :mode
7
+ attr_reader :mode
8
8
  end
9
9
 
10
10
  require "test/unit"
11
11
  require "vasputils/vaspdir.rb"
12
12
 
13
- # assert_equal( cor, data)
14
- # assert_in_delta( cor, data, $tolerance )
15
- # assert_raise( RuntimeError ){}
13
+ # assert_equal( cor, data)
14
+ # assert_in_delta( cor, data, $tolerance )
15
+ # assert_raise( RuntimeError ){}
16
16
 
17
17
 
18
18
  class TC_VaspDir < Test::Unit::TestCase
19
19
 
20
- GENERATED_FILES_VD00 =
21
- [
22
- "test/vaspdir/not-yet-ISIF2/CHG",
23
- "test/vaspdir/not-yet-ISIF2/CHGCAR",
24
- "test/vaspdir/not-yet-ISIF2/CONTCAR",
25
- "test/vaspdir/not-yet-ISIF2/DOSCAR",
26
- "test/vaspdir/not-yet-ISIF2/EIGENVAL",
27
- "test/vaspdir/not-yet-ISIF2/IBZKPT",
28
- "test/vaspdir/not-yet-ISIF2/OSZICAR",
29
- "test/vaspdir/not-yet-ISIF2/OUTCAR",
30
- "test/vaspdir/not-yet-ISIF2/PCDAT",
31
- "test/vaspdir/not-yet-ISIF2/WAVECAR",
32
- "test/vaspdir/not-yet-ISIF2/XDATCAR",
33
- "test/vaspdir/not-yet-ISIF2/machines",
34
- "test/vaspdir/not-yet-ISIF2/vasprun.xml",
35
- "test/vaspdir/not-yet-ISIF2/lock",
36
- ]
37
-
38
- def setup
39
- @vd00 = VaspDir.new("test/vaspdir/not-yet-ISIF2")
40
- @vd01 = VaspDir.new("test/vaspdir/not-yet-ISIF3")
41
- @vd02 = VaspDir.new("test/vaspdir/ISIF3-NSW100-OUTCAR-Iter1-INT")
42
- @vd03 = VaspDir.new("test/vaspdir/ISIF2-NSW100-OUTCAR-Iter1")
43
- @vd04 = VaspDir.new("test/vaspdir/ISIF3-NSW002-OUTCAR-Iter2")
44
- @vd05 = VaspDir.new("test/vaspdir/ISIF3-NSW100-OUTCAR-Iter3")
45
- @vd06 = VaspDir.new("test/vaspdir/PI")
46
- @vd07 = VaspDir.new("test/vaspdir/lock")
47
- @vd08 = VaspDir.new("test/vaspdir/lock-PI")
48
- @vd09 = VaspDir.new("test/vaspdir/ISIF2-NSW100-OUTCAR-Iter3")
49
- @vd10 = VaspDir.new("test/vaspdir/next-try00")
50
- @vd11 = VaspDir.new("test/vaspdir/ISIF2-NSW000-OUTCAR-Iter1")
51
- @vd12 = VaspDir.new("test/vaspdir/ISIF2-NSW001-OUTCAR-Iter1")
52
- @vd13 = VaspDir.new("test/vaspdir/ISIF3-NSW000-OUTCAR-Iter1")
53
- @vd14 = VaspDir.new("test/vaspdir/ISIF3-NSW001-OUTCAR-Iter1")
54
- @vd15 = VaspDir.new("test/vaspdir/IBRION-1-NSW000-OUTCAR-Iter1")
55
-
56
- GENERATED_FILES_VD00.each do |file|
57
- FileUtils.rm file if File.exist? file
58
- end
59
- end
60
-
61
- def teardown
62
- ["test/vaspdir/next-try01/POSCAR" ,
63
- "test/vaspdir/next-try01/POTCAR" ,
64
- "test/vaspdir/next-try01/INCAR" ,
65
- "test/vaspdir/next-try01/KPOINTS"].each do |filename|
66
- FileUtils.rm(filename) if File.exist?(filename)
67
- end
68
- Dir.rmdir("test/vaspdir/next-try01") if File.exist?("test/vaspdir/next-try01")
69
-
70
- GENERATED_FILES_VD00.each do |file|
71
- FileUtils.rm file if File.exist? file
72
- end
73
- end
74
-
75
- def test_initialize
76
- assert_raise(VaspDir::InitializeError){VaspDir.new("test/vaspdir/lack-INCAR" )}
77
- assert_raise(VaspDir::InitializeError){VaspDir.new("test/vaspdir/lack-KPOINTS")}
78
- assert_raise(VaspDir::InitializeError){VaspDir.new("test/vaspdir/lack-POSCAR" )}
79
- assert_raise(VaspDir::InitializeError){VaspDir.new("test/vaspdir/lack-POTCAR" )}
80
-
81
- assert_equal(:geom_opt_atoms, @vd00.mode)
82
- assert_equal(:geom_opt_lattice, @vd01.mode)
83
- assert_equal(:geom_opt_lattice, @vd02.mode)
84
- assert_equal(:geom_opt_atoms, @vd03.mode)
85
- end
86
-
87
- def test_name
88
- assert_equal("test/vaspdir/not-yet-ISIF2" , @vd00.name)
89
- assert_equal("test/vaspdir/not-yet-ISIF3" , @vd01.name)
90
- assert_equal("test/vaspdir/ISIF3-NSW100-OUTCAR-Iter1-INT", @vd02.name)
91
- assert_equal("test/vaspdir/ISIF2-NSW100-OUTCAR-Iter1" , @vd03.name)
92
- assert_equal("test/vaspdir/ISIF3-NSW002-OUTCAR-Iter2" , @vd04.name)
93
- assert_equal("test/vaspdir/ISIF3-NSW100-OUTCAR-Iter3" , @vd05.name)
94
- assert_equal("test/vaspdir/PI" , @vd06.name)
95
- assert_equal("test/vaspdir/lock" , @vd07.name)
96
- assert_equal("test/vaspdir/lock-PI" , @vd08.name)
97
- assert_equal("test/vaspdir/ISIF2-NSW100-OUTCAR-Iter3" , @vd09.name)
98
- assert_equal("test/vaspdir/next-try00" , @vd10.name)
99
- assert_equal("test/vaspdir/ISIF2-NSW000-OUTCAR-Iter1" , @vd11.name)
100
- assert_equal("test/vaspdir/ISIF2-NSW001-OUTCAR-Iter1" , @vd12.name)
101
- assert_equal("test/vaspdir/ISIF3-NSW000-OUTCAR-Iter1" , @vd13.name)
102
- assert_equal("test/vaspdir/ISIF3-NSW001-OUTCAR-Iter1" , @vd14.name)
103
- assert_equal("test/vaspdir/IBRION-1-NSW000-OUTCAR-Iter1" , @vd15.name)
104
- end
105
-
106
- def test_started?
107
- assert_equal(false, @vd00.started?)
108
- assert_equal(false, @vd01.started?)
109
- assert_equal(true , @vd02.started?)
110
- assert_equal(true , @vd03.started?)
111
- assert_equal(true , @vd04.started?)
112
- assert_equal(true , @vd05.started?)
113
- assert_equal(false, @vd06.started?)
114
- assert_equal(true , @vd07.started?)
115
- assert_equal(true , @vd08.started?)
116
- assert_equal(true , @vd09.started?)
117
- assert_equal(true , @vd10.started?)
118
- assert_equal(true , @vd11.started?)
119
- assert_equal(true , @vd12.started?)
120
- assert_equal(true , @vd13.started?)
121
- assert_equal(true , @vd14.started?)
122
- assert_equal(true , @vd15.started?)
123
- end
124
-
125
- def test_normal_ended?
126
- assert_equal(false, @vd00.normal_ended?)
127
- assert_equal(false, @vd01.normal_ended?)
128
- assert_equal(false, @vd02.normal_ended?)
129
- assert_equal(true , @vd03.normal_ended?)
130
- assert_equal(true , @vd04.normal_ended?)
131
- assert_equal(true , @vd05.normal_ended?)
132
- assert_equal(false, @vd06.normal_ended?)
133
- assert_equal(false, @vd07.normal_ended?)
134
- assert_equal(false, @vd08.normal_ended?)
135
- assert_equal(true , @vd09.normal_ended?)
136
- end
137
-
138
- def test_to_be_continued?
139
- assert_equal(false, @vd00.to_be_continued?)
140
- assert_equal(false, @vd01.to_be_continued?)
141
- assert_equal(false, @vd02.to_be_continued?)
142
- assert_equal(false, @vd03.to_be_continued?)
143
- assert_equal(true , @vd04.to_be_continued?)
144
- assert_equal(true , @vd05.to_be_continued?)
145
- assert_equal(false, @vd06.to_be_continued?)
146
- assert_equal(false, @vd07.to_be_continued?)
147
- assert_equal(false, @vd08.to_be_continued?)
148
- assert_equal(false, @vd09.to_be_continued?)
149
- assert_equal(true , @vd10.to_be_continued?)
150
- assert_equal(false, @vd11.to_be_continued?)
151
- assert_equal(false, @vd12.to_be_continued?)
152
- assert_equal(false, @vd13.to_be_continued?)
153
- assert_equal(false, @vd14.to_be_continued?)
154
- assert_equal(false, @vd15.to_be_continued?)
155
- end
156
-
157
- def test_calculate
158
- assert_raise(VaspDir::LockedError){@vd07.calculate}
159
- assert_raise(VaspDir::LockedError){@vd08.calculate}
160
-
161
- #
162
- assert_nothing_raised{@vd00.calculate}
163
- GENERATED_FILES_VD00.each do |file|
164
- assert(FileTest.exist?(file), "#{file} not found.")
165
- end
166
- assert(FileTest.exist? "test/vaspdir/not-yet-ISIF2/INCAR")
167
- assert(FileTest.exist? "test/vaspdir/not-yet-ISIF2/KPOINTS")
168
- assert(FileTest.exist? "test/vaspdir/not-yet-ISIF2/POSCAR")
169
- assert(FileTest.exist? "test/vaspdir/not-yet-ISIF2/POTCAR")
170
- #
171
- io = File.open("test/vaspdir/not-yet-ISIF2/lock", "r")
172
- lines = io.readlines
173
- assert_equal("HOST: #{ENV["HOST"]}\n", lines[0])
174
- assert(/^START: / =~ lines[1])
175
- assert_equal("STATUS: normal ended.\n", lines[2])
176
-
177
- io.close
178
- # あとかたづけは teardown にまかせる。
179
- end
180
-
181
- def test_next
182
- assert_raise(VaspDir::NotEndedError){@vd00.next}
183
- assert_raise(VaspDir::NotEndedError){@vd01.next}
184
- assert_raise(VaspDir::NotEndedError){@vd02.next}
185
- assert_raise(VaspDir::ConvergedError){@vd03.next}
186
- assert_raise(VaspDir::NotEndedError){@vd06.next}
187
- assert_raise(VaspDir::NotEndedError){@vd07.next}
188
- assert_raise(VaspDir::NotEndedError){@vd08.next}
189
- assert_raise(VaspDir::ConvergedError){@vd09.next}
190
-
191
- assert_equal(true , FileTest.exist?("test/vaspdir/next-try00"))
192
- assert_equal(false, FileTest.exist?("test/vaspdir/next-try01"))
193
- @vd10.next
194
- assert_equal("test/vaspdir/next-try01", @vd10.name)
195
- assert_equal(true , FileTest.exist?("test/vaspdir/next-try00"))
196
- assert_equal(true , FileTest.exist?("test/vaspdir/next-try01"))
197
- assert_equal(true , FileTest.exist?("test/vaspdir/next-try01/POSCAR"))
198
- assert_equal(true , FileTest.exist?("test/vaspdir/next-try01/POTCAR"))
199
- assert_equal(true , FileTest.exist?("test/vaspdir/next-try01/INCAR"))
200
- assert_equal(true , FileTest.exist?("test/vaspdir/next-try01/KPOINTS"))
201
- assert_equal(4 , Dir.glob("test/vaspdir/next-try01/*").size)
202
- #
203
- poscar_00 = File.open("test/vaspdir/next-try00/POSCAR" ).readlines
204
- contcar_00 = File.open("test/vaspdir/next-try00/CONTCAR").readlines
205
- poscar_01 = File.open("test/vaspdir/next-try01/POSCAR" ).readlines
206
- assert_equal(false, poscar_00 == contcar_00)
207
- assert_equal(true, contcar_00 == poscar_01)
208
- assert_equal(false, poscar_01 == poscar_00)
209
- # あとかたづけは teardown にまかせる。
210
- end
211
-
212
- def test_teardown
213
- # NO TEST
214
- end
215
-
216
- def test_internal_steps
217
- assert_equal(18, @vd10.internal_steps)
218
- end
219
-
220
- def test_external_steps
221
- assert_equal(2, @vd10.external_steps)
222
- end
223
-
224
- def test_elapsed_time
225
- assert_in_delta(126.383, @vd10.elapsed_time)
226
- end
227
-
228
- def test_outcar
229
- assert_equal("test/vaspdir/next-try00/OUTCAR", @vd10.outcar[:name])
230
- end
231
-
232
- def test_contcar
233
- t = @vd10.contcar
234
- assert_equal(Cell, t.class)
235
- assert_in_delta(3.8678456093562040, t.axes[2][2])
236
-
237
- assert_raise(Errno::ENOENT){@vd00.contcar}
238
- end
239
-
240
- def test_incar
241
- t = @vd10.incar
242
- assert_equal("400", t["ENCUT"])
243
- end
244
-
245
- def test_kpoints
246
- t = @vd10.kpoints
247
- assert_equal("Automatic mesh", t[:comment])
248
- end
249
-
250
- #undef test_next
20
+ GENERATED_FILES_VD00 =
21
+ [
22
+ "test/vaspdir/not-yet-ISIF2/CHG",
23
+ "test/vaspdir/not-yet-ISIF2/CHGCAR",
24
+ "test/vaspdir/not-yet-ISIF2/CONTCAR",
25
+ "test/vaspdir/not-yet-ISIF2/DOSCAR",
26
+ "test/vaspdir/not-yet-ISIF2/EIGENVAL",
27
+ "test/vaspdir/not-yet-ISIF2/IBZKPT",
28
+ "test/vaspdir/not-yet-ISIF2/OSZICAR",
29
+ "test/vaspdir/not-yet-ISIF2/OUTCAR",
30
+ "test/vaspdir/not-yet-ISIF2/PCDAT",
31
+ "test/vaspdir/not-yet-ISIF2/WAVECAR",
32
+ "test/vaspdir/not-yet-ISIF2/XDATCAR",
33
+ "test/vaspdir/not-yet-ISIF2/machines",
34
+ "test/vaspdir/not-yet-ISIF2/vasprun.xml",
35
+ "test/vaspdir/not-yet-ISIF2/lock",
36
+ ]
37
+
38
+ def setup
39
+ @vd00 = VaspDir.new("test/vaspdir/not-yet-ISIF2")
40
+ @vd01 = VaspDir.new("test/vaspdir/not-yet-ISIF3")
41
+ @vd02 = VaspDir.new("test/vaspdir/ISIF3-NSW100-OUTCAR-Iter1-INT")
42
+ @vd03 = VaspDir.new("test/vaspdir/ISIF2-NSW100-OUTCAR-Iter1")
43
+ @vd04 = VaspDir.new("test/vaspdir/ISIF3-NSW002-OUTCAR-Iter2")
44
+ @vd05 = VaspDir.new("test/vaspdir/ISIF3-NSW100-OUTCAR-Iter3")
45
+ @vd06 = VaspDir.new("test/vaspdir/PI")
46
+ @vd07 = VaspDir.new("test/vaspdir/lock")
47
+ @vd08 = VaspDir.new("test/vaspdir/lock-PI")
48
+ @vd09 = VaspDir.new("test/vaspdir/ISIF2-NSW100-OUTCAR-Iter3")
49
+ @vd10 = VaspDir.new("test/vaspdir/next-try00")
50
+ @vd11 = VaspDir.new("test/vaspdir/ISIF2-NSW000-OUTCAR-Iter1")
51
+ @vd12 = VaspDir.new("test/vaspdir/ISIF2-NSW001-OUTCAR-Iter1")
52
+ @vd13 = VaspDir.new("test/vaspdir/ISIF3-NSW000-OUTCAR-Iter1")
53
+ @vd14 = VaspDir.new("test/vaspdir/ISIF3-NSW001-OUTCAR-Iter1")
54
+ @vd15 = VaspDir.new("test/vaspdir/IBRION-1-NSW000-OUTCAR-Iter1")
55
+
56
+ GENERATED_FILES_VD00.each do |file|
57
+ FileUtils.rm file if File.exist? file
58
+ end
59
+ end
60
+
61
+ def teardown
62
+ ["test/vaspdir/next-try01/POSCAR" ,
63
+ "test/vaspdir/next-try01/POTCAR" ,
64
+ "test/vaspdir/next-try01/INCAR" ,
65
+ "test/vaspdir/next-try01/KPOINTS"].each do |filename|
66
+ FileUtils.rm(filename) if File.exist?(filename)
67
+ end
68
+ Dir.rmdir("test/vaspdir/next-try01") if File.exist?("test/vaspdir/next-try01")
69
+
70
+ GENERATED_FILES_VD00.each do |file|
71
+ FileUtils.rm file if File.exist? file
72
+ end
73
+ end
74
+
75
+ def test_initialize
76
+ assert_raise(VaspDir::InitializeError){VaspDir.new("test/vaspdir/lack-INCAR" )}
77
+ assert_raise(VaspDir::InitializeError){VaspDir.new("test/vaspdir/lack-KPOINTS")}
78
+ assert_raise(VaspDir::InitializeError){VaspDir.new("test/vaspdir/lack-POSCAR" )}
79
+ assert_raise(VaspDir::InitializeError){VaspDir.new("test/vaspdir/lack-POTCAR" )}
80
+
81
+ assert_equal(:geom_opt_atoms, @vd00.mode)
82
+ assert_equal(:geom_opt_lattice, @vd01.mode)
83
+ assert_equal(:geom_opt_lattice, @vd02.mode)
84
+ assert_equal(:geom_opt_atoms, @vd03.mode)
85
+ end
86
+
87
+ def test_name
88
+ assert_equal("test/vaspdir/not-yet-ISIF2" , @vd00.name)
89
+ assert_equal("test/vaspdir/not-yet-ISIF3" , @vd01.name)
90
+ assert_equal("test/vaspdir/ISIF3-NSW100-OUTCAR-Iter1-INT", @vd02.name)
91
+ assert_equal("test/vaspdir/ISIF2-NSW100-OUTCAR-Iter1" , @vd03.name)
92
+ assert_equal("test/vaspdir/ISIF3-NSW002-OUTCAR-Iter2" , @vd04.name)
93
+ assert_equal("test/vaspdir/ISIF3-NSW100-OUTCAR-Iter3" , @vd05.name)
94
+ assert_equal("test/vaspdir/PI" , @vd06.name)
95
+ assert_equal("test/vaspdir/lock" , @vd07.name)
96
+ assert_equal("test/vaspdir/lock-PI" , @vd08.name)
97
+ assert_equal("test/vaspdir/ISIF2-NSW100-OUTCAR-Iter3" , @vd09.name)
98
+ assert_equal("test/vaspdir/next-try00" , @vd10.name)
99
+ assert_equal("test/vaspdir/ISIF2-NSW000-OUTCAR-Iter1" , @vd11.name)
100
+ assert_equal("test/vaspdir/ISIF2-NSW001-OUTCAR-Iter1" , @vd12.name)
101
+ assert_equal("test/vaspdir/ISIF3-NSW000-OUTCAR-Iter1" , @vd13.name)
102
+ assert_equal("test/vaspdir/ISIF3-NSW001-OUTCAR-Iter1" , @vd14.name)
103
+ assert_equal("test/vaspdir/IBRION-1-NSW000-OUTCAR-Iter1" , @vd15.name)
104
+ end
105
+
106
+ def test_started?
107
+ assert_equal(false, @vd00.started?)
108
+ assert_equal(false, @vd01.started?)
109
+ assert_equal(true , @vd02.started?)
110
+ assert_equal(true , @vd03.started?)
111
+ assert_equal(true , @vd04.started?)
112
+ assert_equal(true , @vd05.started?)
113
+ assert_equal(false, @vd06.started?)
114
+ assert_equal(true , @vd07.started?)
115
+ assert_equal(true , @vd08.started?)
116
+ assert_equal(true , @vd09.started?)
117
+ assert_equal(true , @vd10.started?)
118
+ assert_equal(true , @vd11.started?)
119
+ assert_equal(true , @vd12.started?)
120
+ assert_equal(true , @vd13.started?)
121
+ assert_equal(true , @vd14.started?)
122
+ assert_equal(true , @vd15.started?)
123
+ end
124
+
125
+ def test_normal_ended?
126
+ assert_equal(false, @vd00.normal_ended?)
127
+ assert_equal(false, @vd01.normal_ended?)
128
+ assert_equal(false, @vd02.normal_ended?)
129
+ assert_equal(true , @vd03.normal_ended?)
130
+ assert_equal(true , @vd04.normal_ended?)
131
+ assert_equal(true , @vd05.normal_ended?)
132
+ assert_equal(false, @vd06.normal_ended?)
133
+ assert_equal(false, @vd07.normal_ended?)
134
+ assert_equal(false, @vd08.normal_ended?)
135
+ assert_equal(true , @vd09.normal_ended?)
136
+ end
137
+
138
+ def test_to_be_continued?
139
+ assert_equal(false, @vd00.to_be_continued?)
140
+ assert_equal(false, @vd01.to_be_continued?)
141
+ assert_equal(false, @vd02.to_be_continued?)
142
+ assert_equal(false, @vd03.to_be_continued?)
143
+ assert_equal(true , @vd04.to_be_continued?)
144
+ assert_equal(true , @vd05.to_be_continued?)
145
+ assert_equal(false, @vd06.to_be_continued?)
146
+ assert_equal(false, @vd07.to_be_continued?)
147
+ assert_equal(false, @vd08.to_be_continued?)
148
+ assert_equal(false, @vd09.to_be_continued?)
149
+ assert_equal(true , @vd10.to_be_continued?)
150
+ assert_equal(false, @vd11.to_be_continued?)
151
+ assert_equal(false, @vd12.to_be_continued?)
152
+ assert_equal(false, @vd13.to_be_continued?)
153
+ assert_equal(false, @vd14.to_be_continued?)
154
+ assert_equal(false, @vd15.to_be_continued?)
155
+ end
156
+
157
+ def test_calculate
158
+ assert_raise(VaspDir::LockedError){@vd07.calculate}
159
+ assert_raise(VaspDir::LockedError){@vd08.calculate}
160
+
161
+ #
162
+ assert_nothing_raised{@vd00.calculate}
163
+ GENERATED_FILES_VD00.each do |file|
164
+ assert(FileTest.exist?(file), "#{file} not found.")
165
+ end
166
+ assert(FileTest.exist? "test/vaspdir/not-yet-ISIF2/INCAR")
167
+ assert(FileTest.exist? "test/vaspdir/not-yet-ISIF2/KPOINTS")
168
+ assert(FileTest.exist? "test/vaspdir/not-yet-ISIF2/POSCAR")
169
+ assert(FileTest.exist? "test/vaspdir/not-yet-ISIF2/POTCAR")
170
+ #
171
+ io = File.open("test/vaspdir/not-yet-ISIF2/lock", "r")
172
+ lines = io.readlines
173
+ assert_equal("HOST: #{ENV["HOST"]}\n", lines[0])
174
+ assert(/^START: / =~ lines[1])
175
+ assert_equal("STATUS: normal ended.\n", lines[2])
176
+
177
+ io.close
178
+ # あとかたづけは teardown にまかせる。
179
+ end
180
+
181
+ def test_next
182
+ assert_raise(VaspDir::NotEndedError){@vd00.next}
183
+ assert_raise(VaspDir::NotEndedError){@vd01.next}
184
+ assert_raise(VaspDir::NotEndedError){@vd02.next}
185
+ assert_raise(VaspDir::ConvergedError){@vd03.next}
186
+ assert_raise(VaspDir::NotEndedError){@vd06.next}
187
+ assert_raise(VaspDir::NotEndedError){@vd07.next}
188
+ assert_raise(VaspDir::NotEndedError){@vd08.next}
189
+ assert_raise(VaspDir::ConvergedError){@vd09.next}
190
+
191
+ assert_equal(true , FileTest.exist?("test/vaspdir/next-try00"))
192
+ assert_equal(false, FileTest.exist?("test/vaspdir/next-try01"))
193
+ @vd10.next
194
+ assert_equal("test/vaspdir/next-try01", @vd10.name)
195
+ assert_equal(true , FileTest.exist?("test/vaspdir/next-try00"))
196
+ assert_equal(true , FileTest.exist?("test/vaspdir/next-try01"))
197
+ assert_equal(true , FileTest.exist?("test/vaspdir/next-try01/POSCAR"))
198
+ assert_equal(true , FileTest.exist?("test/vaspdir/next-try01/POTCAR"))
199
+ assert_equal(true , FileTest.exist?("test/vaspdir/next-try01/INCAR"))
200
+ assert_equal(true , FileTest.exist?("test/vaspdir/next-try01/KPOINTS"))
201
+ assert_equal(4 , Dir.glob("test/vaspdir/next-try01/*").size)
202
+ #
203
+ poscar_00 = File.open("test/vaspdir/next-try00/POSCAR" ).readlines
204
+ contcar_00 = File.open("test/vaspdir/next-try00/CONTCAR").readlines
205
+ poscar_01 = File.open("test/vaspdir/next-try01/POSCAR" ).readlines
206
+ assert_equal(false, poscar_00 == contcar_00)
207
+ assert_equal(true, contcar_00 == poscar_01)
208
+ assert_equal(false, poscar_01 == poscar_00)
209
+ # あとかたづけは teardown にまかせる。
210
+ end
211
+
212
+ def test_teardown
213
+ # NO TEST
214
+ end
215
+
216
+ def test_internal_steps
217
+ assert_equal(18, @vd10.internal_steps)
218
+ end
219
+
220
+ def test_external_steps
221
+ assert_equal(2, @vd10.external_steps)
222
+ end
223
+
224
+ def test_elapsed_time
225
+ assert_in_delta(126.383, @vd10.elapsed_time)
226
+ end
227
+
228
+ def test_outcar
229
+ assert_equal("test/vaspdir/next-try00/OUTCAR", @vd10.outcar[:name])
230
+ end
231
+
232
+ def test_contcar
233
+ t = @vd10.contcar
234
+ assert_equal(Cell, t.class)
235
+ assert_in_delta(3.8678456093562040, t.axes[2][2])
236
+
237
+ assert_raise(Errno::ENOENT){@vd00.contcar}
238
+ end
239
+
240
+ def test_incar
241
+ t = @vd10.incar
242
+ assert_equal("400", t["ENCUT"])
243
+ end
244
+
245
+ def test_kpoints
246
+ t = @vd10.kpoints
247
+ assert_equal("Automatic mesh", t[:comment])
248
+ end
249
+
250
+ #undef test_next
251
251
 
252
252
  end
253
253