code: def generate_valid_scalar_unaop_combos():
      results = []
  
      # All ops valid for integer values
      int_values = [0, 1, -1]
      int_dtypes = utils.INTEGER_TYPES
      int_ops = _unaops
  
      results += list(
          itertools.product(int_values, int_dtypes, int_ops)
      )
  
      float_values = [0.0, 1.0, -1.1]
      float_dtypes = utils.FLOAT_TYPES
      float_ops = [op for op in _unaops if op is not operator.invert]
      results += list(
          itertools.product(float_values, float_dtypes, float_ops)
      )
  
      bool_values = [True, False]
      bool_dtypes = ["bool"]
      bool_ops = [op for op in _unaops if op is not operator.neg]
      results += list(
          itertools.product(bool_values, bool_dtypes, bool_ops)
      )
  
      return results
  
file_path: cudf/python/cudf/cudf/tests/test_unaops.py
imports: import itertools
  import operator
  import re
  import numpy
  import pandas
  import pytest
  import cudf
  from cudf import Series
  from cudf.testing import _utils
label_desc: Use image node_id 6 for calling a global function with example usage: generate_valid_scalar_unaop_combos() and returns: results