// Test: align_func_proto_span_num_complex - Multi-level alignment with nested structures
// Tests various numbers of comment lines (1, 2, 3, 4) at each level

// Global level (level=0, brace_level=0)
VeryLongGlobalType global_func_one(int param1,
                                   // Single comment
                                   double param2,
                                   // Comment 1
                                   // Comment 2
                                   float param3,
                                   // Comment 1
                                   // Comment 2
                                   // Comment 3
                                   long int param4,
                                   // Comment 1
                                   // Comment 2
                                   // Comment 3
                                   // Comment 4
                                   unsigned int param5
                                  );

namespace OuterNamespace {  // level=1, brace_level=0
    LongNamespaceType ns_func_one(int param1,
                                  // Single comment
                                  double param2,
                                  // Comment 1
                                  // Comment 2
                                  float param3,
                                  // Comment 1
                                  // Comment 2
                                  // Comment 3
                                  long int param4,
                                  // Comment 1
                                  // Comment 2
                                  // Comment 3
                                  // Comment 4
                                  unsigned int param5
                                 );

    class OuterClass {  // level=2, brace_level=1
    public:
        VeryLongMethodType outer_method_one(int param1,
                                            // Single comment
                                            double param2,
                                            // Comment 1
                                            // Comment 2
                                            float param3,
                                            // Comment 1
                                            // Comment 2
                                            // Comment 3
                                            long int param4,
                                            // Comment 1
                                            // Comment 2
                                            // Comment 3
                                            // Comment 4
                                            unsigned int param5
                                           );

        class InnerClass {  // level=3, brace_level=2
        public:
            LongInnerType inner_method_one(int param1,
                                           // Single comment
                                           double param2,
                                           // Comment 1
                                           // Comment 2
                                           float param3,
                                           // Comment 1
                                           // Comment 2
                                           // Comment 3
                                           long int param4,
                                           // Comment 1
                                           // Comment 2
                                           // Comment 3
                                           // Comment 4
                                           unsigned int param5
                                          );


            struct DeepStruct {  // level=4, brace_level=3
                VeryLongStructType struct_method_one(int param1,
                                                     // Single comment
                                                     double param2,
                                                     // Comment 1
                                                     // Comment 2
                                                     float param3,
                                                     // Comment 1
                                                     // Comment 2
                                                     // Comment 3
                                                     long int param4,
                                                     // Comment 1
                                                     // Comment 2
                                                     // Comment 3
                                                     // Comment 4
                                                     unsigned int param5
                                                    );
            };
        };

        // Back to level=2, brace_level=1
        float outer_method_six (int param1,
                                // Single comment
                                double param2,
                                // Comment 1
                                // Comment 2
                                float param3,
                                // Comment 1
                                // Comment 2
                                // Comment 3
                                long int param4,
                                // Comment 1
                                // Comment 2
                                // Comment 3
                                // Comment 4
                                unsigned int param5
                               );
    };

    // Back to level=1, brace_level=0
    double ns_func_six(int param1,
                       // Single comment
                       double param2,
                       // Comment 1
                       // Comment 2
                       float param3,
                       // Comment 1
                       // Comment 2
                       // Comment 3
                       long int param4,
                       // Comment 1
                       // Comment 2
                       // Comment 3
                       // Comment 4
                       unsigned int param5
                      );
}

// Back to global
long int global_func_six(int param1,
                         // Single comment
                         double param2,
                         // Comment 1
                         // Comment 2
                         float param3,
                         // Comment 1
                         // Comment 2
                         // Comment 3
                         long int param4,
                         // Comment 1
                         // Comment 2
                         // Comment 3
                         // Comment 4
                         unsigned int param5
                        );
