def test_uncontract(self): basis = gto.basis.parse(''' H S 0.9 0.8 0 0.5 0.5 0.6 0.3 0.5 0.8 H S 0.3 1 H P 0.9 0.6 0.5 0.6 0.3 0.6 ''') self.assertEqual(gto.uncontract(basis), [[0, [0.9, 1]], [0, [0.5, 1]], [0, [0.3, 1]], [1, [0.9, 1]], [1, [0.5, 1]], [1, [0.3, 1]]]) basis = [[1, 0, [0.9, .7], [0.5, .7]], [1, [0.5, .8], [0.3, .6]], [1, [0.3, 1]]] self.assertEqual(gto.uncontract(basis), [[1, [0.9, 1]], [1, [0.5, 1]], [1, [0.3, 1]]]) basis = [[1, -2, [0.9, .7], [0.5, .7]], [1, [0.5, .8], [0.3, .6]], [1, [0.3, 1]]] self.assertEqual(gto.uncontract(basis), [[1, -2, [0.9, 1]], [1, -2, [0.5, 1]], [1, [0.3, 1]]])
def setup(atom): if l_max is None: conf = lib.parameters.ELEMENTS[gto.mole._charge(atom)][2] # pp exchange for p elements, dd exchange for d elements, ff exchange # for f elements l = len([i for i in conf if i > 0]) - 1 lmax = max(1, l*2) else: lmax = l_max return (atom, [(b[0], (b[1][0], 1)) for b in gto.uncontract(basis[atom]) if b[0] <= lmax and b[1][0] > eta])