def test_functional(): from pylada.dftcrystal import Functional, Shell from pylada.dftcrystal.input import print_input a = Functional() assert repr(a) == repr(loads(dumps(a))) a.basis['H'] = [ Shell( 's', 1.0, a0=[18.731137, 0.0334946], a1=[2.8253937, 0.23472695], a2=[0.6401217, 0.81375733] ), Shell('s', 0.0, a0=[0.1612778, 1.0]), Shell('p', 0.0, a0=[1.1, 1.0]) ] a.shrink = [8, 8, 9], None a.tolinteg = 8, 8, 8, 8, 14 a.dft.b3lyp = True a.dft.exchange = 'lda' a.dft.xxlgrid = True a.optgeom.maxcycle = 50 a.optgeom.fulloptg = True assert repr(Functional()) != repr(loads(dumps(a))) assert repr(a) == repr(loads(dumps(a))) b = loads(dumps(a)) assert print_input(a.output_map(crystal=a)) == print_input(b.output_map(crystal=b))