code: def test_variant_check(self):
      sa = SArray([1, 2, 3, 4, 5])
      sf = SFrame({"a": sa})
      import array
  
      self.variant_turnaround(1)
      self.variant_turnaround(1.0)
      self.variant_turnaround(array.array("d", [1.0, 2.0, 3.0]))
      # numeric lists currently converts to array
      self.variant_turnaround(
          [1, 2, 3], array.array("d", [1, 0.0, 2.0, 3.0])
      )
      self.variant_turnaround("abc")
      self.variant_turnaround(["abc", "def"])
      self.variant_turnaround({"a": 1, "b": "c"})
      self.variant_turnaround({"a": [1, 2, "d"], "b": ["a", "b", "c"]})
      # numeric lists currently converts to array
      self.variant_turnaround(
          {"a": [1, 2, 3], "b": ["a", "b", "c"]},
          {"a": array.array("d", [1, 2, 3]), "b": ["a", "b", "c"]},
      )
      self.variant_turnaround(sa)
      self.variant_turnaround(sf)
      self.variant_turnaround([sa, sf])
      self.variant_turnaround([sa, sa])
      self.variant_turnaround([sf, sf])
      self.variant_turnaround(
          {"a": sa, "b": sf, "c": ["a", "b", "c", "d"]}
      )
      self.variant_turnaround(
          {"a": [{"a": 1, "b": 2}], "b": [{"a": 3}]}
      )
      self.variant_turnaround(
          {"a": [{"a": sa, "b": sa}], "b": [{"a": sa}]}
      )
      self.variant_turnaround(
          {"a": [sa, {"c": sa, "d": sa}], "e": [{"f": sa}]}
      )
      self.variant_turnaround({"a": [sa, {"a": sa}]})
      self.variant_turnaround({"a": [{"a": sa, "b": "c"}]})
      self.variant_turnaround({"a": [sa, {"a": sa, "b": "c"}]})
      self.variant_turnaround(
          {
              "a": [sa, sf, {"a": sa, "b": "c"}],
              "b": sf,
              "c": ["a", "b", "c", "d"],
          }
      )
  
file_path: turicreate/src/python/turicreate/test/test_extensions.py
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import unittest
  from ..data_structures.sarray import SArray
  from ..data_structures.sframe import SFrame
  import sys
  import random
  from .._cython.cy_variant import _debug_is_flexible_type_encoded
  import pytest
label_desc: Use image node_id 3 for calling the VariantCheckTest obj's underlying member method code with example usage: obj.test_variant_check() without return types