code: def test_invalid_obs_dim(self, obs_dim):
      with pytest.raises(ValueError):
          env = GymEnv(DummyDiscreteEnv(obs_dim=obs_dim))
          ContinuousCNNQFunction(
              env_spec=env.spec, filters=((5, (3, 3)),), strides=(1,)
          )
  
imports: import pickle
  from unittest import mock
  import numpy
  import pytest
  import tensorflow
  from garage.envs import GymEnv
  from garage.tf.q_functions import ContinuousCNNQFunction
  from tests.fixtures import TfGraphTestCase
  from tests.fixtures.envs.dummy import DummyDictEnv, DummyDiscreteEnv, DummyDiscretePixelEnv
  from tests.fixtures.models import SimpleCNNModel, SimpleCNNModelWithMaxPooling, SimpleMLPMergeModel
label_desc: Use image node_id 3 for calling the TestContinuousCNNQFunction obj's underlying member method code with example usage: obj.test_invalid_obs_dim(obs_dim) without return types