class_docstr: Tests matrix applications on states and operations with larger numbers of wires.
class_docstr_tok: ["Tests","matrix","applications","on","states","and","operations","with","larger","numbers","of","wires","."]
docstr: Tests a four qubit multi-controlled x gate.
docstr_tok: ["Tests","a","four","qubit","multi-controlled","x","gate","."]
code: def test_multicontrolledx(self, method, control_values):
      """Tests a four qubit multi-controlled x gate."""
  
      op = qml.MultiControlledX(
          wires=(0, 1, 2, 3), control_values=control_values
      )
      new_state = method(op, self.state)
  
      expected_state = np.copy(self.state)
      if control_values is None:
          values = (1, 1, 1)
      else:
          values = tuple(map(int, control_values))
      expected_state[values + (1,)] = self.state[values + (0,)]
      expected_state[values + (0,)] = self.state[values + (1,)]
  
      assert qml.math.allclose(new_state, expected_state)
  
imports: from functools import reduce
  import pytest
  import numpy
  from scipy.stats import unitary_group
  import pennylane
  from pennylane.operation import _UNSET_BATCH_SIZE, Operation
  from pennylane.devices.qubit.apply_operation import apply_operation, apply_operation_einsum, apply_operation_tensordot
label_desc: Use image node_id 1 for calling the TestLargerOperations obj's underlying member method code with example usage: obj.test_multicontrolledx(method, control_values) without return types