code: def _test_sort_struct_nested_desc(spark, ignore_nullable: bool):
      def _get_test_dataframes() -> tuple[(DataFrame, DataFrame)]:
          elements = _get_test_dataframes_schemas()
          unsorted_fields = _get_unsorted_nested_struct_fields(elements)
  
          sorted_fields = [
              elements["first_name"],
              StructField(
                  "address",
                  StructType(
                      [
                          StructField(
                              "zip",
                              StructType(
                                  [
                                      elements["last4"],
                                      elements["first5"],
                                  ]
                              ),
                              nullable=True,
                          ),
                          elements["city"],
                      ]
                  ),
                  nullable=True,
              ),
              elements["_id"],
          ]
  
          (
              _id,
              city,
              zip_first5,
              zip_last4,
              first_name,
          ) = _get_test_dataframes_data()
  
          unsorted_data = [
              (_id, first_name, (((zip_last4, zip_first5)), city))
          ]
          sorted_data = [
              (
                  first_name,
                  ((zip_first5, zip_last4), city),
                  _id,
              )
          ]
  
          unsorted_df = spark.createDataFrame(
              unsorted_data, StructType(unsorted_fields)
          )
          expected_df = spark.createDataFrame(
              sorted_data, StructType(sorted_fields)
          )
  
          return unsorted_df, expected_df
  
      unsorted_df, expected_df = _get_test_dataframes()
      sorted_df = quinn.sort_columns(unsorted_df, "desc")
  
      chispa.schema_comparer.assert_schema_equality(
          sorted_df.schema,
          expected_df.schema,
          ignore_nullable=ignore_nullable,
      )
  
imports: from __future__ import annotations
  import pytest
  import chispa
  import quinn
  from pyspark.sql import DataFrame
  from pyspark.sql.types import StructType, StructField, StringType, IntegerType, ArrayType, MapType
  from quinn.transformations import flatten_struct, flatten_map, flatten_dataframe
  from tests.conftest import auto_inject_fixtures
label_desc: Use image node_id 12 for calling a global function with example usage: _test_sort_struct_nested_desc(spark, ignore_nullable) and returns: unsorted_df,  expected_df