code: def test_valid_param_combinations(
      self, batch_size, same_on_batch, device, dtype
  ):
      degrees = torch.tensor(
          [[0.0, 30.0], [0.0, 30.0], [0.0, 30.0]],
          device=device,
          dtype=dtype,
      )
      param_gen = RotationGenerator3D(
          degrees=degrees.to(device=device, dtype=dtype)
      )
      param_gen(torch.Size((batch_size,)), same_on_batch=same_on_batch)
  
imports: import pytest
  import torch
  from kornia.augmentation.random_generator import AffineGenerator3D, CropGenerator3D, MotionBlurGenerator3D, PerspectiveGenerator3D, RotationGenerator3D, center_crop_generator3d
  from kornia.testing import assert_close
label_desc: Use image node_id 1 for calling the TestRandomRotationGen3D obj's underlying member method code with example usage: obj.test_valid_param_combinations(batch_size, same_on_batch, device, dtype) without return types