class MyClass {};

void test_empty_lines_nonstatic(MyClass &obj)
{
    obj.method(param1 + param1, param2, param3);

    obj.method(p41, p5, p6);


    obj.method(p711, p8, p9);



    obj.method(p7111, p8, p9);
}

void test_comment_lines_nonstatic(MyClass &obj)
{
    obj.method(param1 + param1, param2, param3);
    // comment line
    obj.method(p41, p5, p6);
    // comment line A
    /* comment line B */
    obj.method(p711, p8, p9);
    // comment line A
    // comment line B
    // comment line C
    obj.method(p7222, p8, p9);
}

void test_pp_lines_nonstatic(MyClass &obj)
{
    obj.method(param1 + param1, param2, param3);
#ifdef FEATURE
    obj.method(p41, p5, p6);
#endif
#ifdef FEATURE2
    obj.method(p711, p8, p9);
#endif
#ifdef FEATURE3
#ifdef FEATURE4
    obj.method(p7222, p8, p9);
#endif
#endif
}

void test_mixed_lines_nonstatic(MyClass &obj)
{
    obj.method(param1 + param1, param2, param3);

#ifdef FEATURE
    obj.method(p41, p5, p6);
#endif
    // comment line A
    // comment line B

    obj.method(p711, p8, p9);

#ifdef FEATURE2
    // comment line C
    obj.method(p7222, p8, p9);
#endif
}

void test_empty_lines_static(void)
{
    MyClass::method(param1 + param1, param2, param3);

    MyClass::method(p41, p5, p6);


    MyClass::method(p711, p8, p9);



    MyClass::method(p7111, p8, p9);
}

void test_comment_lines_static(void)
{
    MyClass::method(param1 + param1, param2, param3);
    // comment line
    MyClass::method(p41, p5, p6);
    // comment line A
    /* comment line B */
    MyClass::method(p711, p8, p9);
    // comment line A
    // comment line B
    // comment line C
    MyClass::method(p7222, p8, p9);
}

void test_pp_lines_static(void)
{
    MyClass::method(param1 + param1, param2, param3);
#ifdef FEATURE
    MyClass::method(p41, p5, p6);
#endif
#ifdef FEATURE2
    MyClass::method(p711, p8, p9);
#endif
#ifdef FEATURE3
#ifdef FEATURE4
    MyClass::method(p7222, p8, p9);
#endif
#endif
}

void test_mixed_lines_static(void)
{
    MyClass::method(param1 + param1, param2, param3);

#ifdef FEATURE
    MyClass::method(p41, p5, p6);
#endif
    // comment line A
    // comment line B

    MyClass::method(p711, p8, p9);

#ifdef FEATURE2
    // comment line C
    MyClass::method(p7222, p8, p9);
#endif
}
