def test_save_and_load_fermion_operators(self): save_operator(self.fermion_operator, self.file_name) loaded_fermion_operator = load_operator(self.file_name) self.assertEqual(self.fermion_operator, loaded_fermion_operator, msg=str(self.fermion_operator - loaded_fermion_operator))
def test_overwrite_flag_save_on_top_of_existing_operator(self): save_operator(self.fermion_operator, self.file_name) save_operator(self.fermion_operator, self.file_name, allow_overwrite=True) fermion_operator = load_operator(self.file_name) self.assertEqual(fermion_operator, self.fermion_operator)
def test_save_readably(self): save_operator(self.fermion_operator, self.file_name, plain_text=True) file_path = os.path.join(DATA_DIRECTORY, self.file_name + '.data') with open(file_path, "r") as f: self.assertEqual( f.read(), "\n".join([ "FermionOperator:", "-3.17 [1^ 2^ 3 4] +", "-3.17 [4^ 3^ 2 1]" ]))
def test_save_interaction_operator_not_implemented(self): constant = 100.0 one_body = numpy.zeros((self.n_qubits, self.n_qubits), float) two_body = numpy.zeros( (self.n_qubits, self.n_qubits, self.n_qubits, self.n_qubits), float) one_body[1, 1] = 10.0 two_body[1, 2, 3, 4] = 12.0 interaction_operator = InteractionOperator(constant, one_body, two_body) with self.assertRaises(NotImplementedError): save_operator(interaction_operator, self.file_name)
def test_save_bad_type(self): with self.assertRaises(TypeError): save_operator('ping', 'somewhere')
def test_save_on_top_of_existing_operator_error_with_explicit_flag(self): save_operator(self.fermion_operator, self.file_name) with self.assertRaises(OperatorUtilsError): save_operator(self.fermion_operator, self.file_name, allow_overwrite=False)
def test_save_on_top_of_existing_operator_utils_error(self): save_operator(self.fermion_operator, self.file_name) with self.assertRaises(OperatorUtilsError): save_operator(self.fermion_operator, self.file_name)
def test_basic_save(self): save_operator(self.fermion_operator, self.file_name)
def test_save_no_filename_operator_utils_error(self): with self.assertRaises(OperatorUtilsError): save_operator(self.fermion_operator)
def test_save_and_load_qubit_operators_readably(self): save_operator(self.qubit_operator, self.file_name, plain_text=True) loaded_qubit_operator = load_operator(self.file_name, plain_text=True) self.assertEqual(self.qubit_operator, loaded_qubit_operator)
def test_save_and_load_qubit_operators(self): save_operator(self.qubit_operator, self.file_name) loaded_qubit_operator = load_operator(self.file_name) self.assertTrue(self.qubit_operator == loaded_qubit_operator)
def test_save_and_load_quad_operators(self): save_operator(self.quad_operator, self.file_name) loaded_quad_operator = load_operator(self.file_name) self.assertEqual(self.quad_operator.terms, loaded_quad_operator.terms)
def test_save_and_load_boson_operators_readably(self): save_operator(self.boson_operator, self.file_name, plain_text=True) loaded_boson_operator = load_operator(self.file_name, plain_text=True) self.assertTrue(self.boson_operator == loaded_boson_operator)
def test_save_and_load_boson_operators(self): save_operator(self.boson_operator, self.file_name) loaded_boson_operator = load_operator(self.file_name) self.assertEqual(self.boson_operator.terms, loaded_boson_operator.terms, msg=str(self.boson_operator - loaded_boson_operator))
def test_raises_error_sympy(self): operator = FermionOperator('1^', sympy.Symbol('x')) with self.assertRaises(TypeError): save_operator(operator, self.file_name, plain_text=False)
def test_save_sympy_plaintext(self): operator = FermionOperator('1^', sympy.Symbol('x')) with self.assertRaises(TypeError): save_operator(operator, self.file_name, plain_text=True)