code: def test_astype():
      arr = ones((10, 20, 30), chunk_size=3)
  
      arr2 = arr.astype(np.int32)
      arr2 = tile(arr2)
  
      assert arr2.shape == (10, 20, 30)
      assert np.issubdtype(arr2.dtype, np.int32) is True
      assert arr2.op.casting == "unsafe"
  
      with pytest.raises(TypeError):
          arr.astype(np.int32, casting="safe")
  
      arr3 = arr.astype(arr.dtype, order="F")
      assert arr3.flags["F_CONTIGUOUS"] is True
      assert arr3.flags["C_CONTIGUOUS"] is False
  
      arr3 = tile(arr3)
  
      assert arr3.chunks[0].order.value == "F"
  
imports: import numpy
  import pytest
  from ....core import tile
  from ....core.operand import OperandStage
  from ...datasource import ones, tensor, arange
  from ..None import transpose, broadcast_to, where, argwhere, array_split, split, squeeze, result_type, repeat, copyto, isin, moveaxis, TensorCopyTo, atleast_1d, atleast_2d, atleast_3d, ravel, searchsorted, unique, sort, partition, topk, to_gpu, to_cpu
label_desc: Use image node_id 3 for calling a global function with example usage: test_astype() without return types