// File: /workspace/github_cpp_makefile_star2_O2/Se6[P]CmdLineArgs/test.cpp
// Function: fixTest(int, int, char const**, int&)
void fixTest(int test_no, int argc, const char **argv, int& failures)
{
	int n;
	string s;
	int v;
	int h;
	float f;
	string usage;
	vector<int> numbers;
	vector<string> remaining;
	
	try{
        CmdLineArgs cl(argc, const_cast<char**>(argv), "Test of command line arguments");

        h = cl.getFlag("help", 'h', "Getting usage");
        v = cl.getFlag("verbose", 'v', "To increase the verbosity");
        n = cl.getParam("nb", 'n', 0, "The number of frames\nanother line");
        s = cl.getParam("name", "", "The name of frame");

        cl.addUsageSeparator("  == Advanced options:");
        f = cl.getParam("ratio", 0.2f, "The frame ratio");
        vector<int> default_numbers = {1, 2};
        numbers = cl.getParams("numbers", default_numbers, true, "A comma separated list of values");

		usage = cl.usage();
        remaining = cl.getRemaining();
        cl.throwIfUnparsed();
    } catch (const exception& error) {
        cout << "Test " << test_no << ": Unparsed failure: " << error.what() << endl;
        ++failures;
		return;
	}
    
    if( n != 12 ) {
        cout << "Test " << test_no << ": Integer parameter failure. (Got " << n << " instead of 12)\n";
        ++failures;
		return;
    }
    
    if( v != 2 ) {
        cout << "Test " << test_no << ": Multiple verbose flags failure. (Got " << v << " v flags instead of 2)\n";
        ++failures;
		return;
    }
    
    if( s != "hello me" ) {
        cout << "Test " << test_no << ": String parameter failure. (Got \"" << s << "\" instead of \"hello me\")\n";
        ++failures;
		return;
    }
    
    if( f != 0.25f ) {
        cout << "Test " << test_no << ": Float parameter failure. (Got " << f << " instead of 0.25)\n";
        ++failures;
		return;
    }
    
    vector<int> zeNumbers = {3,4};
    if (numbers != zeNumbers) {
        cout << "Test " << test_no << ": Vector of int parameter failure. Got ";
        for(auto n: numbers)
            cout << n << " ";
        cout << " instead of ";
        for(auto n: zeNumbers)
            cout << n << " ";
        cout << "\n";
        ++failures;
		return;
    }
	
    vector<string> zeRemaining = {"remain"};
	if(remaining != zeRemaining){
		cout << "Test " << test_no << ": Remaining args failure.\n";
        ++failures;
		return;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movq %rcx, %rbx
movq %rdx, %r14
movl %esi, %r15d
movl %edi, %ebp
leaq 0xd8(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
leaq 0x168(%rsp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
xorl %edx, %edx
movb %dl, (%rax)
movb %dl, (%rcx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x80(%rsp)
andq $0x0, 0x90(%rsp)
movaps %xmm0, 0xb0(%rsp)
andq $0x0, 0xc0(%rsp)
leaq 0x364d(%rip), %rsi      # 0x8185
leaq 0x18(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5788
leaq 0xe8(%rsp), %rdi
leaq 0x18(%rsp), %rcx
pushq $0x1
popq %r8
movl %r15d, %esi
movq %r14, %rdx
callq 0x35e8
leaq 0x18(%rsp), %rdi
callq 0x30e0
leaq 0x3630(%rip), %rsi      # 0x81a4
leaq 0x18(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x5788
leaq 0x361f(%rip), %rsi      # 0x81a9
leaq 0x38(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0x5788
leaq 0xe8(%rsp), %rdi
leaq 0x18(%rsp), %rsi
pushq $0x68
popq %rdx
leaq 0x38(%rsp), %rcx
callq 0x38c8
leaq 0x38(%rsp), %rdi
callq 0x30e0
leaq 0x18(%rsp), %rdi
callq 0x30e0
leaq 0x35e6(%rip), %rsi      # 0x81b7
leaq 0x18(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x5788
leaq 0x35d8(%rip), %rsi      # 0x81bf
leaq 0x38(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0x5788
leaq 0xe8(%rsp), %rdi
leaq 0x18(%rsp), %rsi
pushq $0x76
popq %rdx
leaq 0x38(%rsp), %rcx
callq 0x38c8
movl %eax, %r14d
leaq 0x38(%rsp), %rdi
callq 0x30e0
leaq 0x18(%rsp), %rdi
callq 0x30e0
leaq 0x34da(%rip), %rsi      # 0x810b
leaq 0x18(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x5788
leaq 0x3592(%rip), %rsi      # 0x81d9
leaq 0x38(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0x5788
leaq 0xe8(%rsp), %rdi
leaq 0x18(%rsp), %rsi
pushq $0x6e
popq %rdx
leaq 0x38(%rsp), %r8
xorl %ecx, %ecx
callq 0x5aaa
movl %eax, %r15d
leaq 0x38(%rsp), %rdi
callq 0x30e0
leaq 0x18(%rsp), %rdi
callq 0x30e0
leaq 0x3480(%rip), %rsi      # 0x8113
leaq 0x38(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0x5788
leaq 0x354f(%rip), %rsi      # 0x81fb
leaq 0x60(%rsp), %rdi
leaq 0x17(%rsp), %rdx
callq 0x5788
leaq 0x34af(%rip), %rcx      # 0x8171
leaq 0x18(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
leaq 0x38(%rsp), %rdx
leaq 0x60(%rsp), %r8
callq 0x3ef8
leaq 0xc8(%rsp), %rdi
leaq 0x18(%rsp), %r12
movq %r12, %rsi
callq 0x3260
movq %r12, %rdi
callq 0x30e0
leaq 0x60(%rsp), %rdi
callq 0x30e0
leaq 0x38(%rsp), %rdi
callq 0x30e0
leaq 0x34f7(%rip), %rsi      # 0x820d
leaq 0x18(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5788
leaq 0xe8(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x457a
leaq 0x18(%rsp), %rdi
callq 0x30e0
leaq 0x34e6(%rip), %rsi      # 0x822e
leaq 0x18(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x5788
leaq 0x34c6(%rip), %rsi      # 0x8224
leaq 0x38(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0x5788
leaq 0xe8(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movss 0x32ab(%rip), %xmm0     # 0x8030
leaq 0x38(%rsp), %rdx
callq 0x5fdc
movss %xmm0, 0x5c(%rsp)
leaq 0x38(%rsp), %rdi
callq 0x30e0
leaq 0x18(%rsp), %r12
movq %r12, %rdi
callq 0x30e0
movabsq $0x200000001, %rax      # imm = 0x200000001
movq %rax, (%r12)
leaq 0x60(%rsp), %rdi
leaq 0x18(%rsp), %rsi
pushq $0x2
popq %rdx
leaq 0x38(%rsp), %rcx
callq 0x5fe8
leaq 0x345c(%rip), %rsi      # 0x8234
leaq 0x18(%rsp), %rdi
leaq 0x17(%rsp), %rdx
callq 0x5788
leaq 0x344e(%rip), %rsi      # 0x823c
leaq 0x38(%rsp), %rdi
leaq 0x5b(%rsp), %rdx
callq 0x5788
movl $0x2c, (%rsp)
leaq 0x98(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x60(%rsp), %rcx
pushq $0x1
popq %r8
leaq 0x38(%rsp), %r9
callq 0x601e
leaq 0x80(%rsp), %rdi
leaq 0x98(%rsp), %r12
movq %r12, %rsi
callq 0x7af0
movq %r12, %rdi
callq 0x6b42
leaq 0x38(%rsp), %rdi
callq 0x30e0
leaq 0x18(%rsp), %rdi
callq 0x30e0
leaq 0x18(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x45dc
leaq 0x158(%rsp), %rdi
leaq 0x18(%rsp), %r12
movq %r12, %rsi
callq 0x3260
movq %r12, %rdi
callq 0x30e0
leaq 0x18(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x598a
leaq 0xb0(%rsp), %rdi
leaq 0x18(%rsp), %r12
movq %r12, %rsi
callq 0x6866
movq %r12, %rdi
callq 0x5766
leaq 0xe8(%rsp), %rdi
callq 0x490a
leaq 0x60(%rsp), %rdi
callq 0x6b42
leaq 0xe8(%rsp), %rdi
callq 0x6044
cmpl $0xc, %r15d
jne 0x4f5e
cmpl $0x2, %r14d
jne 0x4fa9
leaq 0x3250(%rip), %rsi      # 0x8149
leaq 0xc8(%rsp), %rdi
callq 0x5899
testb %al, %al
je 0x4ff1
movq 0x70bb(%rip), %rdi      # 0xbfd0
leaq 0x3341(%rip), %rsi      # 0x825d
callq 0x3210
movq %rax, %rdi
movl %ebp, %esi
callq 0x3380
leaq 0x33ba(%rip), %rsi      # 0x82ec
movq %rax, %rdi
callq 0x3210
leaq 0xc8(%rsp), %rsi
movq %rax, %rdi
callq 0x3200
leaq 0x33be(%rip), %rsi      # 0x830f
movq %rax, %rdi
callq 0x3210
jmp 0x504f
movq 0x706b(%rip), %rdi      # 0xbfd0
leaq 0x32f1(%rip), %rsi      # 0x825d
callq 0x3210
movq %rax, %rdi
movl %ebp, %esi
callq 0x3380
leaq 0x32f6(%rip), %rsi      # 0x8278
movq %rax, %rdi
callq 0x3210
movq %rax, %rdi
movl %r15d, %esi
callq 0x3380
leaq 0x32ff(%rip), %rsi      # 0x829b
movq %rax, %rdi
callq 0x3210
jmp 0x504f
movq 0x7020(%rip), %rdi      # 0xbfd0
leaq 0x32a6(%rip), %rsi      # 0x825d
callq 0x3210
movq %rax, %rdi
movl %ebp, %esi
callq 0x3380
leaq 0x32df(%rip), %rsi      # 0x82ac
movq %rax, %rdi
callq 0x3210
movq %rax, %rdi
movl %r14d, %esi
callq 0x3380
leaq 0x32ed(%rip), %rsi      # 0x82d4
movq %rax, %rdi
callq 0x3210
jmp 0x504f
movss 0x5c(%rsp), %xmm0
ucomiss 0x3036(%rip), %xmm0     # 0x8034
jne 0x5006
jnp 0x5097
movq 0x6fc3(%rip), %rdi      # 0xbfd0
leaq 0x3249(%rip), %rsi      # 0x825d
callq 0x3210
movq %rax, %rdi
movl %ebp, %esi
callq 0x3380
leaq 0x32ff(%rip), %rsi      # 0x8329
movq %rax, %rdi
callq 0x3210
movq %rax, %rdi
movss 0x5c(%rsp), %xmm0
callq 0x31a0
leaq 0x3303(%rip), %rsi      # 0x834a
movq %rax, %rdi
callq 0x3210
incl (%rbx)
leaq 0xb0(%rsp), %rdi
callq 0x5766
leaq 0x80(%rsp), %rdi
callq 0x6b42
leaq 0x158(%rsp), %rdi
callq 0x30e0
leaq 0xc8(%rsp), %rdi
callq 0x30e0
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movabsq $0x400000003, %rax      # imm = 0x400000003
leaq 0xe8(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x18(%rsp), %rdi
pushq $0x2
popq %rdx
leaq 0x38(%rsp), %rcx
callq 0x5fe8
leaq 0x80(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x6077
testb %al, %al
je 0x5144
movq 0x6ef5(%rip), %rdi      # 0xbfd0
leaq 0x317b(%rip), %rsi      # 0x825d
callq 0x3210
movq %rax, %rdi
movl %ebp, %esi
callq 0x3380
leaq 0x3265(%rip), %rsi      # 0x835d
movq %rax, %rdi
callq 0x3210
movq 0x80(%rsp), %r12
movq 0x88(%rsp), %r13
movq 0x6eb9(%rip), %r14      # 0xbfd0
leaq 0x2f9c(%rip), %r15      # 0x80ba
cmpq %r13, %r12
je 0x51d7
movl (%r12), %esi
movq %r14, %rdi
callq 0x3380
movq %rax, %rdi
movq %r15, %rsi
callq 0x3210
addq $0x4, %r12
jmp 0x511e
leaq 0x2fe4(%rip), %rsi      # 0x812f
leaq 0xe8(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x5788
leaq 0x38(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x98(%rsp), %rcx
callq 0x6082
leaq 0xe8(%rsp), %rdi
callq 0x30e0
leaq 0xb0(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x60bb
testb %al, %al
je 0x51cb
movq 0x6e2c(%rip), %rdi      # 0xbfd0
leaq 0x30b2(%rip), %rsi      # 0x825d
callq 0x3210
movq %rax, %rdi
movl %ebp, %esi
callq 0x3380
leaq 0x31d1(%rip), %rsi      # 0x8392
movq %rax, %rdi
callq 0x3210
incl (%rbx)
leaq 0x38(%rsp), %rdi
callq 0x5766
jmp 0x5239
movq 0x6df2(%rip), %rdi      # 0xbfd0
leaq 0x31a0(%rip), %rsi      # 0x8385
callq 0x3210
movq 0x18(%rsp), %r12
movq 0x20(%rsp), %r13
movq 0x6dd5(%rip), %r14      # 0xbfd0
leaq 0x2eb8(%rip), %r15      # 0x80ba
cmpq %r13, %r12
je 0x5224
movl (%r12), %esi
movq %r14, %rdi
callq 0x3380
movq %rax, %rdi
movq %r15, %rsi
callq 0x3210
addq $0x4, %r12
jmp 0x5202
movq 0x6da5(%rip), %rdi      # 0xbfd0
leaq 0x2f3e(%rip), %rsi      # 0x8170
callq 0x3210
incl (%rbx)
leaq 0x18(%rsp), %rdi
callq 0x6b42
jmp 0x5051
movq %rax, %r14
leaq 0xe8(%rsp), %rdi
callq 0x30e0
jmp 0x53cf
jmp 0x53cc
jmp 0x53db
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x5766
jmp 0x53cf
jmp 0x53cc
jmp 0x52a8
jmp 0x52a8
jmp 0x52a8
movq %rdx, %r15
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x30e0
jmp 0x529c
movq %rdx, %r15
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x30e0
jmp 0x52ae
movq %rdx, %r15
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0x6b42
jmp 0x531d
jmp 0x5317
jmp 0x52f3
jmp 0x5305
jmp 0x5317
jmp 0x5305
jmp 0x5317
movq %rdx, %r15
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0x30e0
jmp 0x52de
movq %rdx, %r15
movq %rax, %r14
leaq 0x38(%rsp), %rdi
jmp 0x5310
jmp 0x5317
jmp 0x52f3
jmp 0x5305
jmp 0x5317
jmp 0x52f3
jmp 0x5305
jmp 0x5317
movq %rdx, %r15
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x30e0
jmp 0x530b
movq %rdx, %r15
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x30e0
jmp 0x531d
movq %rdx, %r15
movq %rax, %r14
leaq 0xe8(%rsp), %rdi
callq 0x6044
cmpl $0x1, %r15d
jne 0x53de
movq %r14, %rdi
callq 0x30b0
movq %rax, %r14
movq 0x6c8a(%rip), %rdi      # 0xbfd0
leaq 0x2f10(%rip), %rsi      # 0x825d
callq 0x3210
movq %rax, %rdi
movl %ebp, %esi
callq 0x3380
leaq 0x2f00(%rip), %rsi      # 0x8263
movq %rax, %rdi
callq 0x3210
movq %rax, %r15
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movq %r15, %rdi
movq %rax, %rsi
callq 0x3210
movq %rax, %rdi
callq 0x3100
incl (%rbx)
callq 0x3340
jmp 0x5051
jmp 0x53db
movq %rax, %r14
callq 0x3340
jmp 0x53de
movq %rax, %rdi
callq 0x606c
movq %rdx, %r15
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x30e0
jmp 0x532a
movq %rdx, %r15
movq %rax, %r14
jmp 0x532a
jmp 0x53cc
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x6b42
jmp 0x53de
movq %rax, %r14
leaq 0xb0(%rsp), %rdi
callq 0x5766
leaq 0x80(%rsp), %rdi
callq 0x6b42
leaq 0x158(%rsp), %rdi
callq 0x30e0
leaq 0xc8(%rsp), %rdi
callq 0x30e0
movq %r14, %rdi
callq 0x3390