// File: Barath-Kannan[P]SignalsAndSlots/3rdparty/googletest/inc/gtest/internal/gtest-param-util.h
// Function: testing::internal::ParameterizedTestCaseInfo<SignalTestParametrized>::RegisterTests()
virtual void RegisterTests() {
    for (typename TestInfoContainer::iterator test_it = tests_.begin();
         test_it != tests_.end(); ++test_it) {
      linked_ptr<TestInfo> test_info = *test_it;
      for (typename InstantiationContainer::iterator gen_it =
               instantiations_.begin(); gen_it != instantiations_.end();
               ++gen_it) {
        const string& instantiation_name = gen_it->name;
        ParamGenerator<ParamType> generator((*gen_it->generator)());
        ParamNameGeneratorFunc* name_func = gen_it->name_func;
        const char* file = gen_it->file;
        int line = gen_it->line;

        string test_case_name;
        if ( !instantiation_name.empty() )
          test_case_name = instantiation_name + "/";
        test_case_name += test_info->test_case_base_name;

        size_t i = 0;
        std::set<std::string> test_param_names;
        for (typename ParamGenerator<ParamType>::iterator param_it =
                 generator.begin();
             param_it != generator.end(); ++param_it, ++i) {
          Message test_name_stream;

          std::string param_name = name_func(
              TestParamInfo<ParamType>(*param_it, i));

          GTEST_CHECK_(IsValidParamName(param_name))
              << "Parameterized test name '" << param_name
              << "' is invalid, in " << file
              << " line " << line << std::endl;

          GTEST_CHECK_(test_param_names.count(param_name) == 0)
              << "Duplicate parameterized test name '" << param_name
              << "', in " << file << " line " << line << std::endl;

          test_param_names.insert(param_name);

          test_name_stream << test_info->test_base_name << "/" << param_name;
          MakeAndRegisterTestInfo(
              test_case_name.c_str(),
              test_name_stream.GetString().c_str(),
              NULL,  // No type parameter.
              PrintToString(*param_it).c_str(),
              code_location_,
              GetTestCaseTypeId(),
              TestCase::SetUpTestCase,
              TestCase::TearDownTestCase,
              test_info->test_meta_factory->CreateTestFactory(*param_it));
        }  // for param_it
      }  // for gen_it
    }  // for test_it
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x320, %rsp            # imm = 0x320
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
addq $0x50, %rdi
callq 0x55290
movq %rax, -0x10(%rbp)
movq -0x1e8(%rbp), %rdi
addq $0x50, %rdi
callq 0x54d40
movq %rax, -0x18(%rbp)
leaq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x576d0
testb $0x1, %al
jne 0x56911
jmp 0x571cd
leaq -0x10(%rbp), %rdi
callq 0x57710
movq %rax, %rsi
leaq -0x28(%rbp), %rdi
callq 0x54da0
movq -0x1e8(%rbp), %rdi
addq $0x68, %rdi
callq 0x57730
movq %rax, -0x30(%rbp)
movq -0x1e8(%rbp), %rdi
addq $0x68, %rdi
callq 0x577a0
movq %rax, -0x38(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x57760
testb $0x1, %al
jne 0x56964
jmp 0x571ab
leaq -0x30(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
callq 0x577d0
movq -0x1f0(%rbp), %rdi
movq %rax, -0x40(%rbp)
callq 0x577d0
movq 0x20(%rax), %rax
leaq -0x50(%rbp), %rdi
callq *%rax
jmp 0x56990
leaq -0x30(%rbp), %rdi
callq 0x577d0
movq 0x28(%rax), %rax
movq %rax, -0x68(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x577d0
movq 0x30(%rax), %rax
movq %rax, -0x70(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x577d0
movl 0x38(%rax), %eax
movl %eax, -0x74(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xda00
movq -0x40(%rbp), %rdi
callq 0xdc00
testb $0x1, %al
jne 0x56a36
movq -0x40(%rbp), %rsi
leaq 0x5399e(%rip), %rdx     # 0xaa383
leaq -0xb8(%rbp), %rdi
callq 0x577f0
jmp 0x569f3
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0xd8a0
leaq -0xb8(%rbp), %rdi
callq 0xde48
jmp 0x56a36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x571c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x57194
leaq -0x28(%rbp), %rdi
callq 0x57870
movq %rax, -0x1f8(%rbp)
jmp 0x56a48
movq -0x1f8(%rbp), %rsi
leaq -0x98(%rbp), %rdi
callq 0xd930
jmp 0x56a5d
movq $0x0, -0xc0(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x57890
leaq -0xf8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x578b0
jmp 0x56a86
jmp 0x56a88
leaq -0x100(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x57930
jmp 0x56a9a
leaq -0xf8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x57900
movb %al, -0x1f9(%rbp)
jmp 0x56ab5
leaq -0x100(%rbp), %rdi
callq 0x57980
movb -0x1f9(%rbp), %al
testb $0x1, %al
jne 0x56b1b
leaq -0xf8(%rbp), %rdi
callq 0x57980
jmp 0x57159
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x57188
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5714b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x57980
jmp 0x5714b
leaq -0x108(%rbp), %rdi
callq 0x6f130
jmp 0x56b29
movq -0x68(%rbp), %rax
movq %rax, -0x210(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x579a0
movq %rax, -0x208(%rbp)
jmp 0x56b49
movq -0x208(%rbp), %rsi
movq -0xc0(%rbp), %rdx
leaq -0x148(%rbp), %rdi
callq 0x579d0
jmp 0x56b65
movq -0x210(%rbp), %rax
leaq -0x128(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq *%rax
jmp 0x56b7e
leaq -0x128(%rbp), %rdi
callq 0x57a10
movb %al, -0x211(%rbp)
jmp 0x56b92
movb -0x211(%rbp), %al
movzbl %al, %edi
andl $0x1, %edi
callq 0x6c7c0
movb %al, -0x212(%rbp)
jmp 0x56bab
movb -0x212(%rbp), %al
testb $0x1, %al
jne 0x56bb7
jmp 0x56bde
jmp 0x56d02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5713f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x57133
leaq 0x50cb7(%rip), %rdx     # 0xa789c
leaq -0x14c(%rbp), %rdi
movl $0x3, %esi
movl $0x23e, %ecx            # imm = 0x23E
callq 0xa19e0
jmp 0x56bfd
leaq -0x14c(%rbp), %rdi
callq 0x55090
movq %rax, %rdi
leaq 0x50cc3(%rip), %rsi     # 0xa78d6
callq 0xd640
movq %rax, -0x220(%rbp)
jmp 0x56c21
movq -0x220(%rbp), %rdi
leaq 0x50cd7(%rip), %rsi     # 0xa7906
callq 0xd640
movq %rax, -0x228(%rbp)
jmp 0x56c3d
movq -0x228(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0xd5a0
movq %rax, -0x230(%rbp)
jmp 0x56c59
movq -0x230(%rbp), %rdi
leaq 0x50cb9(%rip), %rsi     # 0xa7920
callq 0xd640
movq %rax, -0x238(%rbp)
jmp 0x56c75
movq -0x238(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0xd640
movq %rax, -0x240(%rbp)
jmp 0x56c8e
movq -0x240(%rbp), %rdi
leaq 0x5464d(%rip), %rsi     # 0xab2e9
callq 0xd640
movq %rax, -0x248(%rbp)
jmp 0x56caa
movq -0x248(%rbp), %rdi
movl -0x74(%rbp), %esi
callq 0xdc80
movq %rax, -0x250(%rbp)
jmp 0x56cc2
movq -0x250(%rbp), %rdi
movq 0xa42c0(%rip), %rsi     # 0xfaf90
callq 0xd6e0
jmp 0x56cd7
leaq -0x14c(%rbp), %rdi
callq 0xa1b20
jmp 0x56d02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x14c(%rbp), %rdi
callq 0xa1b20
jmp 0x57133
leaq -0xf0(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x57ab0
movq %rax, -0x258(%rbp)
jmp 0x56d1e
movq -0x258(%rbp), %rax
testq %rax, %rax
sete %al
movzbl %al, %edi
callq 0x6c7c0
movb %al, -0x259(%rbp)
jmp 0x56d3b
movb -0x259(%rbp), %al
testb $0x1, %al
jne 0x56d47
jmp 0x56d4c
jmp 0x56e70
leaq 0x50b49(%rip), %rdx     # 0xa789c
leaq -0x150(%rbp), %rdi
movl $0x3, %esi
movl $0x243, %ecx            # imm = 0x243
callq 0xa19e0
jmp 0x56d6b
leaq -0x150(%rbp), %rdi
callq 0x55090
movq %rax, %rdi
leaq 0x50bb1(%rip), %rsi     # 0xa7932
callq 0xd640
movq %rax, -0x268(%rbp)
jmp 0x56d8f
movq -0x268(%rbp), %rdi
leaq 0x50bd0(%rip), %rsi     # 0xa796d
callq 0xd640
movq %rax, -0x270(%rbp)
jmp 0x56dab
movq -0x270(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0xd5a0
movq %rax, -0x278(%rbp)
jmp 0x56dc7
movq -0x278(%rbp), %rdi
leaq 0x50bbc(%rip), %rsi     # 0xa7991
callq 0xd640
movq %rax, -0x280(%rbp)
jmp 0x56de3
movq -0x280(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0xd640
movq %rax, -0x288(%rbp)
jmp 0x56dfc
movq -0x288(%rbp), %rdi
leaq 0x544df(%rip), %rsi     # 0xab2e9
callq 0xd640
movq %rax, -0x290(%rbp)
jmp 0x56e18
movq -0x290(%rbp), %rdi
movl -0x74(%rbp), %esi
callq 0xdc80
movq %rax, -0x298(%rbp)
jmp 0x56e30
movq -0x298(%rbp), %rdi
movq 0xa4152(%rip), %rsi     # 0xfaf90
callq 0xd6e0
jmp 0x56e45
leaq -0x150(%rbp), %rdi
callq 0xa1b20
jmp 0x56e70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0xa1b20
jmp 0x57133
leaq -0xf0(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x57b10
movb %dl, -0x2a1(%rbp)
movq %rax, -0x2a0(%rbp)
jmp 0x56e92
movb -0x2a1(%rbp), %al
movq -0x2a0(%rbp), %rcx
movq %rcx, -0x160(%rbp)
movb %al, -0x158(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x57870
movq %rax, -0x2b0(%rbp)
jmp 0x56ebe
movq -0x2b0(%rbp), %rsi
addq $0x20, %rsi
leaq -0x108(%rbp), %rdi
callq 0x38250
movq %rax, -0x2b8(%rbp)
jmp 0x56ede
movq -0x2b8(%rbp), %rdi
leaq 0x53497(%rip), %rsi     # 0xaa383
callq 0x57b60
movq %rax, -0x2c0(%rbp)
jmp 0x56efa
movq -0x2c0(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x38250
jmp 0x56f0f
leaq -0x98(%rbp), %rdi
callq 0xd260
movq %rax, -0x2c8(%rbp)
leaq -0x180(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x6f4b0
jmp 0x56f37
leaq -0x180(%rbp), %rdi
callq 0xd260
movq %rax, -0x2d8(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x579a0
movq %rax, -0x2d0(%rbp)
jmp 0x56f5f
movq -0x2d0(%rbp), %rsi
leaq -0x1a0(%rbp), %rdi
callq 0x57ba0
jmp 0x56f74
leaq -0x1a0(%rbp), %rdi
callq 0xd260
movq -0x1e8(%rbp), %rsi
movq %rax, -0x2e0(%rbp)
addq $0x28, %rsi
leaq -0x1c8(%rbp), %rdi
callq 0x56460
jmp 0x56fa0
movq -0x1e8(%rbp), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movq %rax, -0x2e8(%rbp)
jmp 0x56fb9
leaq -0x28(%rbp), %rdi
callq 0x57870
movq %rax, -0x2f0(%rbp)
jmp 0x56fcb
movq -0x2f0(%rbp), %rdi
addq $0x40, %rdi
callq 0x57c80
movq %rax, -0x2f8(%rbp)
jmp 0x56fe4
leaq -0xf8(%rbp), %rdi
callq 0x579a0
movq %rax, -0x300(%rbp)
jmp 0x56ff9
movq -0x2f8(%rbp), %rdi
movq -0x300(%rbp), %rax
movq 0x10(%rax), %rcx
movq %rcx, -0x1d0(%rbp)
movups (%rax), %xmm0
movaps %xmm0, -0x1e0(%rbp)
movq (%rdi), %rax
movq 0x10(%rax), %rax
leaq -0x1e0(%rbp), %rsi
callq *%rax
movq %rax, -0x308(%rbp)
jmp 0x57035
movq -0x2e8(%rbp), %r9
movq -0x2e0(%rbp), %rcx
movq -0x2d8(%rbp), %rsi
movq -0x2c8(%rbp), %rdi
movq -0x308(%rbp), %rdx
movq %rsp, %rax
movq %rdx, 0x10(%rax)
leaq -0x3af96(%rip), %rdx    # 0x1c0d0
movq %rdx, 0x8(%rax)
leaq -0x3afb1(%rip), %rdx    # 0x1c0c0
movq %rdx, (%rax)
xorl %eax, %eax
movl %eax, %edx
leaq -0x1c8(%rbp), %r8
callq 0x75ab0
jmp 0x57086
leaq -0x1c8(%rbp), %rdi
callq 0x1c120
leaq -0x1a0(%rbp), %rdi
callq 0xde48
leaq -0x180(%rbp), %rdi
callq 0xde48
leaq -0x128(%rbp), %rdi
callq 0xde48
leaq -0x108(%rbp), %rdi
callq 0x1c540
leaq -0xf8(%rbp), %rdi
callq 0x57ca0
jmp 0x570d0
movq -0xc0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xc0(%rbp)
jmp 0x56a88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x57127
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5711b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x1c120
leaq -0x1a0(%rbp), %rdi
callq 0xde48
leaq -0x180(%rbp), %rdi
callq 0xde48
leaq -0x128(%rbp), %rdi
callq 0xde48
leaq -0x108(%rbp), %rdi
callq 0x1c540
leaq -0xf8(%rbp), %rdi
callq 0x57980
jmp 0x57188
leaq -0xf0(%rbp), %rdi
callq 0x57cd0
leaq -0x98(%rbp), %rdi
callq 0xde48
leaq -0x50(%rbp), %rdi
callq 0x57cf0
leaq -0x30(%rbp), %rdi
callq 0x57d10
jmp 0x5693a
leaq -0xf0(%rbp), %rdi
callq 0x57cd0
leaq -0x98(%rbp), %rdi
callq 0xde48
leaq -0x50(%rbp), %rdi
callq 0x57cf0
jmp 0x571c2
leaq -0x28(%rbp), %rdi
callq 0x549d0
leaq -0x10(%rbp), %rdi
callq 0x57d30
jmp 0x568e7
leaq -0x28(%rbp), %rdi
callq 0x549d0
jmp 0x571d6
addq $0x320, %rsp            # imm = 0x320
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0xdcb0
nop