def METHOD_NAME(self):
    fcisolver1 = fci.direct_uhf.FCISolver(mol)
    class FCI_as_DMRG(fci.direct_uhf.FCISolver):
        def __getattribute__(self, attr):
            """Prevent 'private' attribute access"""
            if attr in ('make_rdm1s', 'spin_square', 'contract_2e',
                        'absorb_h1e'):
                raise AttributeError
            else:
                return object.__getattribute__(self, attr)
        def kernel(self, *args, **kwargs):
            return fcisolver1.kernel(*args, **kwargs)
        def approx_kernel(self, *args, **kwargs):
            return fcisolver1.kernel(*args, **kwargs)
    solver1 = FCI_as_DMRG(mol)
    solver1.spin = 0
    solver2 = fci.direct_uhf.FCI(mol)
    solver2.spin = 2
    mc = mcscf.UCASSCF(m, 5, (4, 2))
    mc = mcscf.addons.state_average_mix_(mc, [solver1, solver2])
    mc.kernel()
    self.assertAlmostEqual(mc.e_states[0], -76.02072193565274, 4)
    self.assertAlmostEqual(mc.e_states[1], -75.75071005397444, 4)