code: def test_cardinality(
      self, batch_size, kernel_size, stride, device, dtype
  ):
      inpt = torch.zeros(
          batch_size, 4, 4, 8, device=device, dtype=dtype
      )
      actual = BlurPool2D(kernel_size, stride=stride)(inpt)
      expected = (batch_size, 4, int(4 / stride), int(8 / stride))
      assert actual.shape == expected
  
imports: import pytest
  import torch
  from kornia.filters import BlurPool2D, EdgeAwareBlurPool2D, MaxBlurPool2D, blur_pool2d, edge_aware_blur_pool2d, max_blur_pool2d
  from kornia.testing import BaseTester, tensor_to_gradcheck_var
label_desc: Use image node_id 2 for calling the TestBlurPool obj's underlying member method code with example usage: obj.test_cardinality(batch_size, kernel_size, stride, device, dtype) without return types