code: def test_raises_no_input_dim(
      self, model_configs_no_input_dim, custom_encoder, custom_decoder
  ):
      with pytest.raises(AttributeError):
          model = PoincareVAE(model_configs_no_input_dim)
  
      with pytest.raises(AttributeError):
          model = PoincareVAE(
              model_configs_no_input_dim, encoder=custom_encoder
          )
  
      with pytest.raises(AttributeError):
          model = PoincareVAE(
              model_configs_no_input_dim, decoder=custom_decoder
          )
  
      model = PoincareVAE(
          model_configs_no_input_dim,
          encoder=custom_encoder,
          decoder=custom_decoder,
      )
  
imports: import os
  from copy import deepcopy
  import pytest
  import torch
  from pythae.customexception import BadInheritanceError
  from pythae.models import AutoModel, PoincareVAE, PoincareVAEConfig
  from pythae.models.base.base_utils import ModelOutput
  from pythae.models.pvae.pvae_utils import PoincareBall
  from pythae.pipelines import GenerationPipeline, TrainingPipeline
  from pythae.samplers import GaussianMixtureSamplerConfig, IAFSamplerConfig, MAFSamplerConfig, NormalSamplerConfig, PoincareDiskSamplerConfig, TwoStageVAESamplerConfig
  from pythae.trainers import BaseTrainer, BaseTrainerConfig
  from tests.data.custom_architectures import Decoder_AE_Conv, Encoder_SVAE_Conv, Encoder_VAE_Conv, NetBadInheritance
label_desc: Use image node_id 4 for calling the Test_Model_Building obj's underlying member method code with example usage: obj.test_raises_no_input_dim(model_configs_no_input_dim, custom_encoder, custom_decoder) without return types