class_docstr: Test def has_cyclic(x, axis=-1, cyclic=360, precision=1e-4):
  - variations of x with and without axis keyword
  - different unit of x - cyclic keyword
  - detection of cyclic points - precision keyword
docstr: Test 3d with axis keyword, no keyword name for axis
docstr_tok: ["Test","3d","with","axis","keyword",",","no","keyword","name","for","axis"]
code: def test_3d_axis(self):
      """Test 3d with axis keyword, no keyword name for axis"""
      assert has_cyclic(self.c_lon3d, 1)
      assert not has_cyclic(self.lon3d, 1)
  
imports: import numpy
  import numpy.ma
  from numpy.testing import assert_array_equal
  import pytest
  from cartopy.util import add_cyclic, add_cyclic_point, has_cyclic
label_desc: Use image node_id 3 for calling the TestHasCyclic obj's underlying member method code with example usage: obj.test_3d_axis() without return types