def test_zero_coeff(self): """ test addition """ pauli_a = 'IXYZ' pauli_b = 'IXYZ' coeff_a = 0.5 coeff_b = -0.5 pauli_term_a = [coeff_a, label_to_pauli(pauli_a)] pauli_term_b = [coeff_b, label_to_pauli(pauli_b)] opA = Operator(paulis=[pauli_term_a]) opB = Operator(paulis=[pauli_term_b]) newOP = opA + opB newOP.zeros_coeff_elimination() self.assertEqual(0, len(newOP.paulis), "{}".format(newOP.print_operators())) paulis = ['IXYZ', 'XXZY', 'IIZZ', 'XXYY', 'ZZXX', 'YYYY'] coeffs = [0.2, 0.6, 0.8, -0.2, -0.6, -0.8] op = Operator(paulis=[]) for coeff, pauli in zip(coeffs, paulis): pauli_term = [coeff, label_to_pauli(pauli)] op += Operator(paulis=[pauli_term]) for i in range(6): opA = Operator(paulis=[[-coeffs[i], label_to_pauli(paulis[i])]]) op += opA op.zeros_coeff_elimination() self.assertEqual(6-(i+1), len(op.paulis))
def test_zero_elimination(self): pauli_a = 'IXYZ' coeff_a = 0.0 pauli_term_a = [coeff_a, label_to_pauli(pauli_a)] opA = Operator(paulis=[pauli_term_a]) self.assertEqual(1, len(opA.paulis), "{}".format(opA.print_operators())) opA.zeros_coeff_elimination() self.assertEqual(0, len(opA.paulis), "{}".format(opA.print_operators()))