class_docstr: Checks if an expected error is raised.
  
  This checks if an expected error is raised when no available algorithm
  is found by cuDNN for a configuration. This (no available algorithm found)
  can occur when convolution_backward_data or convolution_backward_filter is
  performed with NHWC layout.
  
  Please notice that conditions that cause the error may change depending on
  cuDNN version. The conditions below are set based on cuDNN 7.5.0 and 7.6.0.
class_docstr_tok: ["Checks","if","an","expected","error","is","raised",".","This","checks","if","an","expected","error","is","raised","when","no","available","algorithm","is","found","by","cuDNN","for","a","configuration",".","This","(","no","available","algorithm","found",")","can","occur","when","convolution_backward_data","or","convolution_backward_filter","is","performed","with","NHWC","layout",".","Please","notice","that","conditions","that","cause","the","error","may","change","depending","on","cuDNN","version",".","The","conditions","below","are","set","based","on","cuDNN","7.5.0","and","7.6.0","."]
code: def test_backward_data(self):
      if self.layout != libcudnn.CUDNN_TENSOR_NHWC:
          pytest.skip()
      with pytest.raises(RuntimeError):
          cudnn.convolution_backward_data(
              self.W,
              self.gy,
              None,
              self.gx,
              pad=(self.pad, self.pad),
              stride=(self.stride, self.stride),
              dilation=(1, 1),
              groups=1,
              deterministic=0,
              auto_tune=self.auto_tune,
              tensor_core="always",
              d_layout=self.layout,
              w_layout=self.layout,
          )
  
imports: import sys
  import numpy
  import pytest
  import cupy
  import cupy.cuda.cudnn
  from cupy import testing
label_desc: Use image node_id 3 for calling the TestConvolutionNoAvailableAlgorithm obj's underlying member method code with example usage: obj.test_backward_data() without return types