class_docstr: tests for qml.ops._ctrl_decomp_bisect_md
docstr: Tests that the matrix representation of the controlled decomposition
  of a single-qubit operation is correct
docstr_tok: ["Tests","that","the","matrix","representation","of","the","controlled","decomposition","of","a","single-qubit","operation","is","correct"]
code: def test_decomposition_matrix(self, op, control_wires, tol):
      """Tests that the matrix representation of the controlled decomposition
      of a single-qubit operation is correct"""
      assert np.allclose(
          op.matrix(), _convert_to_su2(op.matrix()), atol=tol, rtol=tol
      )
  
      expected_op = qml.ctrl(op, control_wires)
      res = qml.matrix(
          record_from_list(_ctrl_decomp_bisect_md),
          wire_order=control_wires + [0],
      )(op.matrix(), op.wires, control_wires)
      expected = expected_op.matrix()
  
      assert np.allclose(res, expected, atol=tol, rtol=tol)
  
imports: import pytest
  import numpy
  import pennylane
  from pennylane.ops import ctrl_decomp_zyz
  from pennylane.wires import Wires
  from pennylane.ops.op_math.controlled_decompositions import _ctrl_decomp_bisect_od, _ctrl_decomp_bisect_md, _ctrl_decomp_bisect_general, ctrl_decomp_bisect, _convert_to_su2, _bisect_compute_a, _bisect_compute_b
  from pennylane.ops.op_math.controlled import Controlled
  from pennylane import math
label_desc: Use image node_id 3 for calling the TestControlledBisectMD obj's underlying member method code with example usage: obj.test_decomposition_matrix(op, control_wires, tol) without return types