class_docstr: These test cases exercise the interface to the proto plan
  generation but do not call Spark.
class_docstr_tok: ["These","test","cases","exercise","the","interface","to","the","proto","plan","generation","but","do","not","call","Spark","."]
docstr: Test a more complex combination of expressions and their translation into
  the protobuf structure.
docstr_tok: ["Test","a","more","complex","combination","of","expressions","and","their","translation","into","the","protobuf","structure","."]
code: def test_column_expressions(self):
      """Test a more complex combination of expressions and their translation into
      the protobuf structure."""
      df = self.connect.with_plan(Read("table"))
  
      expr = lit(10) < lit(10)
      expr_plan = expr.to_plan(None)
      self.assertIsNotNone(expr_plan.unresolved_function)
      self.assertEqual(expr_plan.unresolved_function.function_name, "<")
  
      expr = df.id % lit(10) == lit(10)
      expr_plan = expr.to_plan(None)
      self.assertIsNotNone(expr_plan.unresolved_function)
      self.assertEqual(
          expr_plan.unresolved_function.function_name, "=="
      )
  
      lit_fun = expr_plan.unresolved_function.arguments[1]
      self.assertIsInstance(lit_fun, proto.Expression)
      self.assertIsInstance(lit_fun.literal, proto.Expression.Literal)
      self.assertEqual(lit_fun.literal.integer, 10)
  
      mod_fun = expr_plan.unresolved_function.arguments[0]
      self.assertIsInstance(mod_fun, proto.Expression)
      self.assertIsInstance(
          mod_fun.unresolved_function,
          proto.Expression.UnresolvedFunction,
      )
      self.assertEqual(len(mod_fun.unresolved_function.arguments), 2)
      self.assertIsInstance(
          mod_fun.unresolved_function.arguments[0], proto.Expression
      )
      self.assertIsInstance(
          mod_fun.unresolved_function.arguments[0].unresolved_attribute,
          proto.Expression.UnresolvedAttribute,
      )
      self.assertEqual(
          mod_fun.unresolved_function.arguments[
              0
          ].unresolved_attribute.unparsed_identifier,
          "id",
      )
  
imports: import unittest
  import uuid
  import datetime
  import decimal
  import math
  from pyspark.testing.connectutils import PlanOnlyTestFixture, should_test_connect, connect_requirement_message
  from pyspark.errors import PySparkValueError
label_desc: Use image node_id 53 for calling the SparkConnectPlanTests obj's underlying member method code with example usage: obj.test_column_expressions() without return types