ffsim.testing¶
Testing utilities.
- ffsim.testing.assert_allclose_up_to_global_phase(actual, desired, rtol=1e-07, atol=0, equal_nan=True, err_msg='', verbose=True)[source]¶
Check if a == b * exp(i phi) for some real number phi.
- Parameters:
actual (
ndarray
) – A Numpy array.desired (
ndarray
) – Another Numpy array.rtol (
float
) – Relative tolerance.atol (
float
) – Absolute tolerance.equal_nan (
bool
) – If True, NaNs will compare equal.err_msg (
str
) – The error message to be printed in case of failure.verbose (
bool
) – If True, the conflicting values are appended to the error message.
- Raises:
AssertionError – If a and b are not equal up to global phase, up to the specified precision.
- ffsim.testing.generate_norb_nelec(norb_range)[source]¶
Generate (norb, nelec) tuples for testing.
Given a range of choices for norb, generates all possible (norb, nelec) pairs.
- Return type:
Iterator
[tuple
[int
,tuple
[int
,int
]]]
- ffsim.testing.generate_norb_nelec_spin(norb_range)[source]¶
Generate (norb, nelec, spin) tuples for testing.
Given a range of choices for norb, generates all possible (norb, nelec, spin) triplets.
- Return type:
Iterator
[tuple
[int
,tuple
[int
,int
],Spin
]]
- ffsim.testing.generate_norb_nocc(norb_range)[source]¶
Generate (norb, nocc) tuples for testing.
Given a range of choices for norb, generates all possible (norb, nocc) pairs. nocc refers to the occupation of a single spin species, so it ranges from 0 to norb.
- Return type:
Iterator
[tuple
[int
,int
]]
- ffsim.testing.generate_norb_spin(norb_range)[source]¶
Generate (norb, spin) tuples for testing.
Given a range of choices for norb, generates all possible (norb, spin) pairs.
- Return type:
Iterator
[tuple
[int
,Spin
]]
- ffsim.testing.random_nelec(norb, *, seed=None)[source]¶
Return a random pair of (n_alpha, n_beta) particle numbers.
- Parameters:
norb (
int
) – The number of spatial orbitals.seed – A seed to initialize the pseudorandom number generator. Should be a valid input to
np.random.default_rng
.
- Return type:
tuple
[int
,int
]- Returns:
The sampled pair of (n_alpha, n_beta) particle numbers.
- ffsim.testing.random_occupied_orbitals(norb, nelec, *, seed=None)[source]¶
Return a random pair of occupied orbitals lists.
- Parameters:
norb (
int
) – The number of spatial orbitals.nelec (
int
|tuple
[int
,int
]) – Either a single integer representing the number of fermions for a spinless system, or a pair of integers storing the numbers of spin alpha and spin beta fermions.seed – A seed to initialize the pseudorandom number generator. Should be a valid input to
np.random.default_rng
.
- Return type:
list
[int
] |tuple
[list
[int
],list
[int
]]- Returns:
The sampled pair of (occ_a, occ_b) occupied orbitals lists.