code: def test_chunked_artifacts(self):
      file_name = "junitLargeJar"
      large_jar_path = os.path.join(
          self.artifact_file_path, f"{file_name}.jar"
      )
      large_jar_crc_path = os.path.join(
          self.artifact_crc_path, f"{file_name}.txt"
      )
  
      requests = list(
          self.artifact_manager._create_requests(
              large_jar_path, pyfile=False, archive=False, file=False
          )
      )
      # Expected chunks = roundUp( file_size / chunk_size) = 12
      # File size of `junitLargeJar.jar` is 384581 bytes.
      large_jar_size = os.path.getsize(large_jar_path)
      expected_chunks = int(
          (large_jar_size + (ArtifactManager.CHUNK_SIZE - 1))
          / ArtifactManager.CHUNK_SIZE
      )
      self.assertEqual(len(requests), expected_chunks)
      request = requests[0]
      self.assertIsNotNone(request.begin_chunk)
      begin_chunk = request.begin_chunk
      self.assertEqual(
          begin_chunk.name, os.path.join("jars", f"{file_name}.jar")
      )
      self.assertEqual(begin_chunk.total_bytes, large_jar_size)
      self.assertEqual(begin_chunk.num_chunks, expected_chunks)
      other_requests = requests[1:]
      data_chunks = [begin_chunk.initial_chunk] + [
          req.chunk for req in other_requests
      ]
  
      with open(large_jar_crc_path) as f1, open(
          large_jar_path, "rb"
      ) as f2:
          cscs = [chunk.crc for chunk in data_chunks]
          expected_cscs = [int(line.rstrip()) for line in f1]
          self.assertEqual(cscs, expected_cscs)
  
          binaries = [chunk.data for chunk in data_chunks]
          expected_binaries = list(
              iter(lambda: f2.read(ArtifactManager.CHUNK_SIZE), b"")
          )
          self.assertEqual(binaries, expected_binaries)
  
imports: import hashlib
  import shutil
  import tempfile
  import unittest
  import os
  from pyspark.errors.exceptions.connect import SparkConnectGrpcException
  from pyspark.sql import SparkSession
  from pyspark.testing.connectutils import ReusedConnectTestCase, should_test_connect
  from pyspark.testing.utils import SPARK_HOME
  from pyspark import SparkFiles
  from pyspark.sql.functions import udf
label_desc: Use image node_id 6 for calling the ArtifactTests obj's underlying member method code with example usage: obj.test_chunked_artifacts() without return types