def METHOD_NAME():
    state_vector_array = np.array([[1], [2], [3], [4]])
    state_vector = StateVector(state_vector_array)
    # test standard indexing
    assert state_vector[2, 0] == 3
    assert not isinstance(state_vector[2, 0], StateVector)
    # test Slicing
    assert state_vector[1:2, 0] == 2
    assert isinstance(state_vector[1:2, 0], Matrix)  # (n,)
    assert isinstance(state_vector[1:2, :], StateVector)  # (n, 1)
    assert np.array_equal(state_vector[:], state_vector)
    assert isinstance(state_vector[:, 0], Matrix)  # (n,)
    assert isinstance(state_vector[:, :], StateVector)  # (n, 1)
    assert np.array_equal(state_vector[0:], state_vector)
    assert isinstance(state_vector[0:, 0], Matrix)  # (n,)
    assert isinstance(state_vector[0:, :], StateVector)  # (n, 1)
    # test list indices
    assert np.array_equal(state_vector[[1, 3]], StateVector([2, 4]))
    assert isinstance(state_vector[[1, 3], 0], Matrix)
    # test int indexing
    assert state_vector[2] == 3
    assert not isinstance(state_vector[2], StateVector)
    # test behaviour of ravel and flatten functions
    state_vector_ravel = state_vector.ravel()
    state_vector_flatten = state_vector.flatten()
    assert isinstance(state_vector_ravel, Matrix)
    assert isinstance(state_vector_flatten, Matrix)
    assert state_vector_flatten[0] == 1
    assert state_vector_ravel[0] == 1