// File: /workspace/github_c_makefile_star2_O2/samtools[P]htslib/test/test-bcf_set_variant_type.c
// Function: main
static void test_bcf_set_variant_type(void)
{
    // Test SNVs
    bcf_variant_t var1;
    bcf_set_variant_type("A", "T", &var1);
    if ( var1.type != VCF_SNP)
    {
        error("A -> T was not detected as a SNP");
    }

    // Test INDEL
    bcf_variant_t var2a;
    bcf_set_variant_type("A", "AA", &var2a);
    if ( var2a.type != (VCF_INDEL|VCF_INS) )
    {
        error("A -> AA was not detected as an INDEL");
    }
    bcf_variant_t var2b;
    bcf_set_variant_type("AA", "A", &var2b);
    if ( var2b.type != (VCF_INDEL|VCF_DEL) )
    {
        error("AA -> A was not detected as a INDEL");
    }

    // Test breakends
    bcf_variant_t var3a;
    bcf_set_variant_type("N", "N]16:33625444]", &var3a);
    if ( var3a.type != VCF_BND)
    {
        error("N]16:33625444] was not detected as a breakend");
    }

    bcf_variant_t var3b;
    bcf_set_variant_type("N", "N[16:33625444[", &var3b);
    if (var3b.type != VCF_BND)
    {
        error("N[16:33625444[ was not detected as a breakend");
    }

    bcf_variant_t var3c;
    bcf_set_variant_type("N", "]16:33625444]N", &var3c);
    if ( var3c.type != VCF_BND)
    {
        error("]16:33625444]N was not detected as a breakend");
    }

    bcf_variant_t var3d;
    bcf_set_variant_type("N", "[16:33625444[N", &var3d);
    if ( var3d.type != VCF_BND)
    {
        error("[16:33625444[N was not detected as a breakend");
    }

    bcf_set_variant_type("T", "]chrB:123]AGTNNNNNCAT", &var3d);
    if ( var3d.type != VCF_BND)
    {
        error("]chrB:123]AGTNNNNNCAT was not detected as a breakend");
    }
    bcf_set_variant_type("C", "CAGTNNNNNCA[chrA:321[", &var3d);
    if ( var3d.type != VCF_BND)
    {
        error("CAGTNNNNNCA[chrA:321[ was not detected as a breakend");
    }


    // Test special reference alleles
    bcf_variant_t var4a;
    bcf_set_variant_type("A", "<NON_REF>", &var4a);
    if ( var4a.type != VCF_REF)
    {
        error("<NON_REF> was not detected as a special reference allele");
    }
    bcf_variant_t var4b;
    bcf_set_variant_type("A", "<*>", &var4b);
    if ( var4b.type != VCF_REF)
    {
        error("<*> was not detected as a special reference allele");
    }
    // Test MNP
    bcf_variant_t var5;
    bcf_set_variant_type("AA", "TT", &var5);
    if ( var5.type != VCF_MNP)
    {
        error("AA->TT was not detected as a MNP");
    }
    // Test Overlapping allele
    bcf_variant_t var6;
    bcf_set_variant_type("A", "*", &var6);
    if ( var6.type != VCF_OVERLAP)
    {
        error("A->* was not detected as an overlap");
    }
    // Test .
    bcf_variant_t var7;
    bcf_set_variant_type("A", ".", &var7);
    if ( var7.type != VCF_REF)
    {
        error("A->. was not detected as a special reference allele");
    }
}

// Assembly:
pushq %rbx
subq $0x60, %rsp
leaq 0x6f6e1(%rip), %rdi     # 0x83317
leaq 0x6f82d(%rip), %rsi     # 0x8346a
leaq 0x58(%rsp), %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x1, (%rbx)
jne 0x13e28
leaq 0x6f6bd(%rip), %rdi     # 0x83317
leaq 0x6f6b5(%rip), %rsi     # 0x83316
leaq 0x50(%rsp), %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x44, (%rbx)
jne 0x13e31
leaq 0x6f698(%rip), %rdi     # 0x83316
leaq 0x6f692(%rip), %rsi     # 0x83317
leaq 0x48(%rsp), %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x84, (%rbx)
jne 0x13e3a
leaq 0x73a47(%rip), %rdi     # 0x876ec
leaq 0x6f6b6(%rip), %rsi     # 0x83362
leaq 0x40(%rsp), %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x10, (%rbx)
jne 0x13e43
leaq 0x73a23(%rip), %rdi     # 0x876ec
leaq 0x6f6cf(%rip), %rsi     # 0x8339f
leaq 0x38(%rsp), %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x10, (%rbx)
jne 0x13e4c
leaq 0x739ff(%rip), %rdi     # 0x876ec
leaq 0x6f6e8(%rip), %rsi     # 0x833dc
leaq 0x30(%rsp), %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x10, (%rbx)
jne 0x13e55
leaq 0x739db(%rip), %rdi     # 0x876ec
leaq 0x6f701(%rip), %rsi     # 0x83419
movq %rsp, %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x10, (%rbx)
jne 0x13e5e
leaq 0x6f737(%rip), %rdi     # 0x8346a
leaq 0x6f71c(%rip), %rsi     # 0x83456
movq %rsp, %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x10, (%rbx)
jne 0x13e67
leaq 0x7385b(%rip), %rdi     # 0x875b0
leaq 0x6f745(%rip), %rsi     # 0x834a1
movq %rsp, %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x10, (%rbx)
jne 0x13e70
leaq 0x6f5a0(%rip), %rdi     # 0x83317
leaq 0x6f56d(%rip), %rsi     # 0x832eb
leaq 0x28(%rsp), %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x0, (%rbx)
jne 0x13e79
leaq 0x6f57c(%rip), %rdi     # 0x83317
leaq 0x6f545(%rip), %rsi     # 0x832e7
leaq 0x20(%rsp), %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x0, (%rbx)
jne 0x13e82
leaq 0x6f557(%rip), %rdi     # 0x83316
leaq 0x6f792(%rip), %rsi     # 0x83558
leaq 0x18(%rsp), %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x2, (%rbx)
jne 0x13e8b
leaq 0x6f534(%rip), %rdi     # 0x83317
leaq 0x73574(%rip), %rsi     # 0x8735e
leaq 0x10(%rsp), %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x20, (%rbx)
jne 0x13e94
leaq 0x6f510(%rip), %rdi     # 0x83317
leaq 0x6e28c(%rip), %rsi     # 0x8209a
leaq 0x8(%rsp), %rbx
movq %rbx, %rdx
callq 0x14c86
cmpl $0x0, (%rbx)
jne 0x13e9d
xorl %eax, %eax
addq $0x60, %rsp
popq %rbx
retq
leaq 0x6f4c6(%rip), %rdi     # 0x832f5
jmp 0x13ea4
leaq 0x6f4e1(%rip), %rdi     # 0x83319
jmp 0x13ea4
leaq 0x6f4fd(%rip), %rdi     # 0x8333e
jmp 0x13ea4
leaq 0x6f527(%rip), %rdi     # 0x83371
jmp 0x13ea4
leaq 0x6f55b(%rip), %rdi     # 0x833ae
jmp 0x13ea4
leaq 0x6f58f(%rip), %rdi     # 0x833eb
jmp 0x13ea4
leaq 0x6f5c3(%rip), %rdi     # 0x83428
jmp 0x13ea4
leaq 0x6f5fe(%rip), %rdi     # 0x8346c
jmp 0x13ea4
leaq 0x6f640(%rip), %rdi     # 0x834b7
jmp 0x13ea4
leaq 0x6f66c(%rip), %rdi     # 0x834ec
jmp 0x13ea4
leaq 0x6f69c(%rip), %rdi     # 0x83525
jmp 0x13ea4
leaq 0x6f6c9(%rip), %rdi     # 0x8355b
jmp 0x13ea4
leaq 0x6f6e1(%rip), %rdi     # 0x8357c
jmp 0x13ea4
leaq 0x6f6fc(%rip), %rdi     # 0x835a0
xorl %eax, %eax
callq 0x13b74