def test_seg_fault(self): vi = VaspInput.from_directory(".") from custodian.vasp.interpreter import VaspModder VaspModder(vi=vi).apply_actions([{ "dict": "INCAR", "action": { "_set": { "KPAR": 4 } } }]) h = StdErrHandler("std_err.txt.seg_fault", correct_seg_fault=True) self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['seg_fault']) self.assertEqual(d["actions"], [{ 'dict': 'INCAR', 'action': { '_set': { 'ISMEAR': '0' } } }]) self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['seg_fault']) # no fix if still seg fault self.assertEqual(d["actions"], [])
def test_lrf_comm(self): h = StdErrHandler("std_err.txt") self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['lrf_comm']) vi = VaspInput.from_directory(".") self.assertEqual(vi["INCAR"]["ISTART"], 1) self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['lrf_comm']) self.assertEqual(d["actions"], []) # don't correct twice
def test_kpoints_trans(self): h = StdErrHandler("std_err.txt.kpoints_trans") self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['kpoints_trans']) self.assertEqual(d["actions"], [{u'action': {u'_set': {u'kpoints': [[4, 4, 4]]}}, u'dict': u'KPOINTS'}]) self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['kpoints_trans']) self.assertEqual(d["actions"], []) # don't correct twice
def test_seg_fault(self): vi = VaspInput.from_directory(".") from custodian.vasp.interpreter import VaspModder VaspModder(vi=vi).apply_actions([{"dict": "INCAR", "action": {"_set": {"KPAR": 4}}}]) h = StdErrHandler("std_err.txt.seg_fault", correct_seg_fault=True) self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['seg_fault']) self.assertEqual(d["actions"], [{'dict': 'INCAR', 'action': {'_set': {'ISMEAR': '0'}}}]) self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['seg_fault']) # no fix if still seg fault self.assertEqual(d["actions"], [])
def test_oom(self): vi = VaspInput.from_directory(".") from custodian.vasp.interpreter import VaspModder VaspModder(vi=vi).apply_actions([{"dict": "INCAR", "action": {"_set": {"KPAR": 4}}}]) h = StdErrHandler("std_err.txt.oom", correct_out_of_memory=True) self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['out_of_memory']) self.assertEqual(d["actions"], [{'dict': 'INCAR', 'action': {'_set': {'KPAR': 2}}}]) h = StdErrHandler("std_err.txt.oom2", correct_out_of_memory=True) self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['out_of_memory']) self.assertEqual(d["actions"], [{'dict': 'INCAR', 'action': {'_set': {'KPAR': 1}}}]) vi = VaspInput.from_directory(".") from custodian.vasp.interpreter import VaspModder VaspModder(vi=vi).apply_actions([{"dict": "INCAR", "action": {"_set": {"KPAR": 4}}}]) h = StdErrHandler("std_err.txt.emlsp", correct_out_of_memory=True) self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['out_of_memory']) self.assertEqual(d["actions"], [{'dict': 'INCAR', 'action': {'_set': {'KPAR': 2}}}]) vi = VaspInput.from_directory(".") from custodian.vasp.interpreter import VaspModder VaspModder(vi=vi).apply_actions([{"dict": "INCAR", "action": {"_set": {"KPAR": 4}}}]) h = StdErrHandler("std_err.txt.insufficient_mem", correct_out_of_memory=True) self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['out_of_memory']) self.assertEqual(d["actions"], [{'dict': 'INCAR', 'action': {'_set': {'KPAR': 2}}}])
def test_oom(self): vi = VaspInput.from_directory(".") from custodian.vasp.interpreter import VaspModder VaspModder(vi=vi).apply_actions([{"dict": "INCAR", "action": {"_set": {"KPAR": 4}}}]) h = StdErrHandler("std_err.txt.oom") self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ['out_of_memory']) self.assertEqual(d["actions"], [{'dict': 'INCAR', 'action': {'_set': {'KPAR': 2}}}])
def test_kpoints_trans(self): h = StdErrHandler("std_err.txt.kpoints_trans") self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ["kpoints_trans"]) self.assertEqual( d["actions"], [{ "action": { "_set": { "kpoints": [[4, 4, 4]] } }, "dict": "KPOINTS" }], ) self.assertEqual(h.check(), True) d = h.correct() self.assertEqual(d["errors"], ["kpoints_trans"]) self.assertEqual(d["actions"], []) # don't correct twice