def test_setattr_standard_constructor(self): '''Testing overidden __setattr__ function in FCSSolver which changes __cache_is_stale flag.''' srl_solver = utils.setup_srl_solver(1., 1.) self.assertTrue(srl_solver._FCSSolver__cache_is_stale) # check __cache_is_stale is True on initialization # change of variable in srl_solver.__watch_variables should trigger stale cache srl_solver._FCSSolver__cache_is_stale = False self.assertFalse(srl_solver._FCSSolver__cache_is_stale) srl_solver.L = utils.reduced_srl_liouvillian(2., 2.) self.assertTrue(srl_solver._FCSSolver__cache_is_stale) srl_solver._FCSSolver__cache_is_stale = False self.assertFalse(srl_solver._FCSSolver__cache_is_stale) srl_solver.jump_op = np.array([[0,0],[1,0]]) self.assertTrue(srl_solver._FCSSolver__cache_is_stale) srl_solver._FCSSolver__cache_is_stale = False self.assertFalse(srl_solver._FCSSolver__cache_is_stale) srl_solver.pops = np.array([1,0]) self.assertTrue(srl_solver._FCSSolver__cache_is_stale) # variables not in srl_solver.__watch_variables shouldn't trigger stale cache srl_solver._FCSSolver__cache_is_stale = False self.assertFalse(srl_solver._FCSSolver__cache_is_stale) srl_solver.H = 8 self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
def test_setattr_standard_constructor(self): '''Testing overidden __setattr__ function in FCSSolver which changes __cache_is_stale flag.''' srl_solver = utils.setup_srl_solver(1., 1.) self.assertTrue(srl_solver._FCSSolver__cache_is_stale ) # check __cache_is_stale is True on initialization # change of variable in srl_solver.__watch_variables should trigger stale cache srl_solver._FCSSolver__cache_is_stale = False self.assertFalse(srl_solver._FCSSolver__cache_is_stale) srl_solver.L = utils.reduced_srl_liouvillian(2., 2.) self.assertTrue(srl_solver._FCSSolver__cache_is_stale) srl_solver._FCSSolver__cache_is_stale = False self.assertFalse(srl_solver._FCSSolver__cache_is_stale) srl_solver.jump_op = np.array([[0, 0], [1, 0]]) self.assertTrue(srl_solver._FCSSolver__cache_is_stale) srl_solver._FCSSolver__cache_is_stale = False self.assertFalse(srl_solver._FCSSolver__cache_is_stale) srl_solver.pops = np.array([1, 0]) self.assertTrue(srl_solver._FCSSolver__cache_is_stale) # variables not in srl_solver.__watch_variables shouldn't trigger stale cache srl_solver._FCSSolver__cache_is_stale = False self.assertFalse(srl_solver._FCSSolver__cache_is_stale) srl_solver.H = 8 self.assertFalse(srl_solver._FCSSolver__cache_is_stale)
def test_standard_constructor(self): '''Test FCSSolver __init__ method initializes main attributes properly.''' Gamma_L = 1.; Gamma_R = 1. solver = utils.setup_srl_solver(Gamma_L, Gamma_R) npt.assert_allclose(solver.L, utils.reduced_srl_liouvillian(Gamma_L, Gamma_R)) npt.assert_allclose(solver.jump_op, np.array([[0,1],[0,0]])) npt.assert_allclose(solver.pops, np.array([1,1])) self.assertFalse(solver.from_hilbert_space)
def test_standard_constructor(self): '''Test FCSSolver __init__ method initializes main attributes properly.''' Gamma_L = 1. Gamma_R = 1. solver = utils.setup_srl_solver(Gamma_L, Gamma_R) npt.assert_allclose(solver.L, utils.reduced_srl_liouvillian(Gamma_L, Gamma_R)) npt.assert_allclose(solver.jump_op, np.array([[0, 1], [0, 0]])) npt.assert_allclose(solver.pops, np.array([1, 1])) self.assertFalse(solver.from_hilbert_space)