Skip to content

Commit 2bcea24

Browse files
committed
Use local random seeds in slater determinant tests
1 parent 379f63a commit 2bcea24

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

src/openfermion/circuits/slater_determinants_test.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,16 @@ def test_bad_input(self):
137137
class JWGetGaussianStateTest(unittest.TestCase):
138138
def setUp(self):
139139
self.n_qubits_range = range(2, 10)
140+
self.rng = numpy.random.default_rng(5387)
141+
self.hamiltonian_seed_sequence = numpy.random.SeedSequence(5387)
140142

141143
def test_ground_state_particle_conserving(self):
142144
"""Test getting the ground state of a Hamiltonian that conserves
143145
particle number."""
144146
for n_qubits in self.n_qubits_range:
145147
# Initialize a particle-number-conserving Hamiltonian
146-
quadratic_hamiltonian = random_quadratic_hamiltonian(n_qubits, True)
148+
hamiltonian_seed = self.hamiltonian_seed_sequence.spawn(1)[0].generate_state(1)[0]
149+
quadratic_hamiltonian = random_quadratic_hamiltonian(n_qubits, True, seed=hamiltonian_seed)
147150

148151
# Compute the true ground state
149152
sparse_operator = get_sparse_operator(quadratic_hamiltonian)
@@ -165,7 +168,8 @@ def test_ground_state_particle_nonconserving(self):
165168
conserve particle number."""
166169
for n_qubits in self.n_qubits_range:
167170
# Initialize a non-particle-number-conserving Hamiltonian
168-
quadratic_hamiltonian = random_quadratic_hamiltonian(n_qubits, False)
171+
hamiltonian_seed = self.hamiltonian_seed_sequence.spawn(1)[0].generate_state(1)[0]
172+
quadratic_hamiltonian = random_quadratic_hamiltonian(n_qubits, False, seed=hamiltonian_seed)
169173

170174
# Compute the true ground state
171175
sparse_operator = get_sparse_operator(quadratic_hamiltonian)
@@ -187,11 +191,12 @@ def test_excited_state_particle_conserving(self):
187191
particle number."""
188192
for n_qubits in self.n_qubits_range:
189193
# Initialize a particle-number-conserving Hamiltonian
190-
quadratic_hamiltonian = random_quadratic_hamiltonian(n_qubits, True)
194+
hamiltonian_seed = self.hamiltonian_seed_sequence.spawn(1)[0].generate_state(1)[0]
195+
quadratic_hamiltonian = random_quadratic_hamiltonian(n_qubits, True, seed=hamiltonian_seed)
191196

192197
# Pick some orbitals to occupy
193-
num_occupied_orbitals = numpy.random.randint(1, n_qubits + 1)
194-
occupied_orbitals = numpy.random.choice(range(n_qubits), num_occupied_orbitals, False)
198+
num_occupied_orbitals = self.rng.integers(1, n_qubits + 1)
199+
occupied_orbitals = self.rng.choice(range(n_qubits), num_occupied_orbitals, False)
195200

196201
# Compute the Gaussian state
197202
circuit_energy, gaussian_state = jw_get_gaussian_state(
@@ -219,11 +224,12 @@ def test_excited_state_particle_nonconserving(self):
219224
particle number."""
220225
for n_qubits in self.n_qubits_range:
221226
# Initialize a non-particle-number-conserving Hamiltonian
222-
quadratic_hamiltonian = random_quadratic_hamiltonian(n_qubits, False)
227+
hamiltonian_seed = self.hamiltonian_seed_sequence.spawn(1)[0].generate_state(1)[0]
228+
quadratic_hamiltonian = random_quadratic_hamiltonian(n_qubits, False, seed=hamiltonian_seed)
223229

224230
# Pick some orbitals to occupy
225-
num_occupied_orbitals = numpy.random.randint(1, n_qubits + 1)
226-
occupied_orbitals = numpy.random.choice(range(n_qubits), num_occupied_orbitals, False)
231+
num_occupied_orbitals = self.rng.integers(1, n_qubits + 1)
232+
occupied_orbitals = self.rng.choice(range(n_qubits), num_occupied_orbitals, False)
227233

228234
# Compute the Gaussian state
229235
circuit_energy, gaussian_state = jw_get_gaussian_state(

0 commit comments

Comments
 (0)