code: def test_vflip(device):
      script_vflip = torch.jit.script(F.vflip)
  
      img_tensor, pil_img = _create_data(16, 18, device=device)
      vflipped_img = F.vflip(img_tensor)
      vflipped_pil_img = F.vflip(pil_img)
      _assert_equal_tensor_to_pil(vflipped_img, vflipped_pil_img)
  
      # scriptable function test
      vflipped_img_script = script_vflip(img_tensor)
      assert_equal(vflipped_img, vflipped_img_script)
  
      batch_tensors = _create_data_batch(
          16, 18, num_samples=4, device=device
      )
      _test_fn_on_batch(batch_tensors, F.vflip)
  
imports: import colorsys
  import itertools
  import math
  import os
  from functools import partial
  from typing import Sequence
  import numpy
  import PIL.Image
  import pytest
  import torch
  import torchvision.transforms
  import torchvision.transforms._functional_pil
  import torchvision.transforms._functional_tensor
  import torchvision.transforms.functional
  from common_utils import _assert_approx_equal_tensor_to_pil, _assert_equal_tensor_to_pil, _create_data, _create_data_batch, _test_fn_on_batch, assert_equal, cpu_and_cuda, needs_cuda
  from torchvision.transforms import InterpolationMode
label_desc: Use image node_id 29 for calling a global function with example usage: test_vflip(device) without return types