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","."]
code: def test_random_split(self):
      # SPARK-41440: test randomSplit(weights, seed).
      from typing import List
  
      df = self.connect.readTable(table_name=self.tbl_name)
  
      def checkRelations(relations: List["DataFrame"]):
          self.assertTrue(len(relations) == 3)
  
          plan = relations[0]._plan.to_proto(self.connect)
          self.assertEqual(plan.root.sample.lower_bound, 0.0)
          self.assertEqual(
              plan.root.sample.upper_bound, 0.16666666666666666
          )
          self.assertEqual(plan.root.sample.with_replacement, False)
          self.assertEqual(plan.root.sample.HasField("seed"), True)
          self.assertEqual(plan.root.sample.deterministic_order, True)
  
          plan = relations[1]._plan.to_proto(self.connect)
          self.assertEqual(
              plan.root.sample.lower_bound, 0.16666666666666666
          )
          self.assertEqual(plan.root.sample.upper_bound, 0.5)
          self.assertEqual(plan.root.sample.with_replacement, False)
          self.assertEqual(plan.root.sample.HasField("seed"), True)
          self.assertEqual(plan.root.sample.deterministic_order, True)
  
          plan = relations[2]._plan.to_proto(self.connect)
          self.assertEqual(plan.root.sample.lower_bound, 0.5)
          self.assertEqual(plan.root.sample.upper_bound, 1.0)
          self.assertEqual(plan.root.sample.with_replacement, False)
          self.assertEqual(plan.root.sample.HasField("seed"), True)
          self.assertEqual(plan.root.sample.deterministic_order, True)
  
      relations = df.filter(df.col_name > 3).randomSplit(
          [1.0, 2.0, 3.0], 1
      )
      checkRelations(relations)
  
      relations = df.filter(df.col_name > 3).randomSplit(
          [1.0, 2.0, 3.0]
      )
      checkRelations(relations)
  
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 13 for calling the SparkConnectPlanTests obj's underlying member method code with example usage: obj.test_random_split() without return types