// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/extended/evaluator.c
// Function: gt_evaluator_unit_test
int gt_evaluator_unit_test(GtError *err)
{
  GtEvaluator *evaluator = gt_evaluator_new();
  int had_err = 0;
  gt_error_check(err);

  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 1.0);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 1.0);

  gt_evaluator_add_actual(evaluator, 1);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 0.0);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 1.0);

  gt_evaluator_add_predicted(evaluator, 1);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 0.0);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 0.0);

  gt_evaluator_add_true(evaluator);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 1.0);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 1.0);

  gt_evaluator_reset(evaluator);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 1.0);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 1.0);

  gt_evaluator_add_predicted(evaluator, 1);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 1.0);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 0.0);

  gt_evaluator_reset(evaluator);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 1.0);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 1.0);

  gt_evaluator_add_actual(evaluator, 2);
  gt_evaluator_add_predicted(evaluator, 2);
  gt_evaluator_add_true(evaluator);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 0.5);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 0.5);

  gt_evaluator_reset(evaluator);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 1.0);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 1.0);

  gt_evaluator_add_actual(evaluator, 4);
  gt_evaluator_add_predicted(evaluator, 4);
  gt_evaluator_add_true(evaluator);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 0.25);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 0.25);
  gt_evaluator_add_true(evaluator);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 0.5);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 0.5);

  gt_evaluator_add_true(evaluator);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 0.75);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 0.75);

  gt_evaluator_add_true(evaluator);
  gt_ensure(gt_evaluator_get_sensitivity(evaluator) == 1.0);
  gt_ensure(gt_evaluator_get_specificity(evaluator) == 1.0);

  gt_evaluator_delete(evaluator);

  return had_err;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdi, %r14
leaq 0x30426(%rip), %rdx     # 0x10b768
movl $0x1, %edi
movl $0x18, %esi
movl $0x20, %ecx
callq 0x359a6
movq %rax, %rbx
testq %r14, %r14
je 0xdb36e
movq %r14, %rdi
callq 0x34fea
testb %al, %al
jne 0xdbc22
movq %rbx, %rdi
callq 0xdb17a
ucomisd 0x6572(%rip), %xmm0     # 0xe18f0
jne 0xdb711
jp 0xdb711
movq %rbx, %rdi
callq 0xdb20a
ucomisd 0x6556(%rip), %xmm0     # 0xe18f0
jne 0xdb738
jp 0xdb738
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdb15a
movq %rbx, %rdi
callq 0xdb17a
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xdb773
jp 0xdb773
movq %rbx, %rdi
callq 0xdb20a
ucomisd 0x6511(%rip), %xmm0     # 0xe18f0
jne 0xdb79a
jp 0xdb79a
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdb16a
movq %rbx, %rdi
callq 0xdb17a
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xdb881
jp 0xdb881
movq %rbx, %rdi
callq 0xdb20a
ucomisd 0x1651c(%rip), %xmm0    # 0xf1940
jne 0xdb8a8
jp 0xdb8a8
movq %rbx, %rdi
callq 0xdb133
movq %rbx, %rdi
callq 0xdb17a
ucomisd 0x64a8(%rip), %xmm0     # 0xe18f0
jne 0xdb8d9
jp 0xdb8d9
movq %rbx, %rdi
callq 0xdb20a
ucomisd 0x648c(%rip), %xmm0     # 0xe18f0
jne 0xdb900
jp 0xdb900
movq %rbx, %rdi
callq 0xdb31a
movq %rbx, %rdi
callq 0xdb17a
ucomisd 0x6468(%rip), %xmm0     # 0xe18f0
jne 0xdb931
jp 0xdb931
movq %rbx, %rdi
callq 0xdb20a
ucomisd 0x644c(%rip), %xmm0     # 0xe18f0
jne 0xdb958
jp 0xdb958
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdb16a
movq %rbx, %rdi
callq 0xdb17a
ucomisd 0x6423(%rip), %xmm0     # 0xe18f0
jne 0xdb989
jp 0xdb989
movq %rbx, %rdi
callq 0xdb20a
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xdb9b0
jp 0xdb9b0
movq %rbx, %rdi
callq 0xdb31a
movq %rbx, %rdi
callq 0xdb17a
ucomisd 0x63e3(%rip), %xmm0     # 0xe18f0
jne 0xdb9e1
jp 0xdb9e1
movq %rbx, %rdi
callq 0xdb20a
ucomisd 0x63c7(%rip), %xmm0     # 0xe18f0
jne 0xdba08
jp 0xdba08
movl $0x2, %esi
movq %rbx, %rdi
callq 0xdb15a
movl $0x2, %esi
movq %rbx, %rdi
callq 0xdb16a
movq %rbx, %rdi
callq 0xdb133
movq %rbx, %rdi
callq 0xdb17a
ucomisd 0xf0e9(%rip), %xmm0     # 0xea650
jne 0xdba39
jp 0xdba39
movq %rbx, %rdi
callq 0xdb20a
ucomisd 0xf0cd(%rip), %xmm0     # 0xea650
jne 0xdba60
jp 0xdba60
movq %rbx, %rdi
callq 0xdb31a
movq %rbx, %rdi
callq 0xdb17a
ucomisd 0x6349(%rip), %xmm0     # 0xe18f0
jne 0xdba91
jp 0xdba91
movq %rbx, %rdi
callq 0xdb20a
ucomisd 0x632d(%rip), %xmm0     # 0xe18f0
jne 0xdbab8
jp 0xdbab8
movl $0x4, %esi
movq %rbx, %rdi
callq 0xdb15a
movl $0x4, %esi
movq %rbx, %rdi
callq 0xdb16a
movq %rbx, %rdi
callq 0xdb133
movq %rbx, %rdi
callq 0xdb17a
ucomisd 0x30157(%rip), %xmm0    # 0x10b758
jne 0xdbae9
jp 0xdbae9
movq %rbx, %rdi
callq 0xdb20a
ucomisd 0x3013b(%rip), %xmm0    # 0x10b758
jne 0xdbb10
jp 0xdbb10
movq %rbx, %rdi
callq 0xdb133
movq %rbx, %rdi
callq 0xdb17a
ucomisd 0xf00f(%rip), %xmm0     # 0xea650
jne 0xdbb41
jp 0xdbb41
movq %rbx, %rdi
callq 0xdb20a
ucomisd 0xeff3(%rip), %xmm0     # 0xea650
jne 0xdbb68
jp 0xdbb68
movq %rbx, %rdi
callq 0xdb133
movq %rbx, %rdi
callq 0xdb17a
ucomisd 0x300df(%rip), %xmm0    # 0x10b760
jne 0xdbb99
jp 0xdbb99
movq %rbx, %rdi
callq 0xdb20a
ucomisd 0x300c3(%rip), %xmm0    # 0x10b760
jne 0xdbbc0
jp 0xdbbc0
movq %rbx, %rdi
callq 0xdb133
movq %rbx, %rdi
callq 0xdb17a
ucomisd 0x622f(%rip), %xmm0     # 0xe18f0
jne 0xdbbf1
jp 0xdbbf1
movq %rbx, %rdi
callq 0xdb20a
xorl %ebp, %ebp
ucomisd 0x6211(%rip), %xmm0     # 0xe18f0
jne 0xdb6e7
jnp 0xdb861
leaq 0x7a6b(%rip), %rsi      # 0xe3159
leaq 0x3027d(%rip), %rdx     # 0x10b972
leaq 0x30230(%rip), %rcx     # 0x10b92c
leaq 0x30065(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x9b, %r9d
jmp 0xdbc16
leaq 0x7a41(%rip), %rsi      # 0xe3159
leaq 0x30224(%rip), %rdx     # 0x10b943
leaq 0x30206(%rip), %rcx     # 0x10b92c
leaq 0x3003b(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x67, %r9d
jmp 0xdb75d
leaq 0x7a1a(%rip), %rsi      # 0xe3159
leaq 0x3022c(%rip), %rdx     # 0x10b972
leaq 0x301df(%rip), %rcx     # 0x10b92c
leaq 0x30014(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x68, %r9d
xorl %eax, %eax
callq 0x34f1f
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdb15a
jmp 0xdb7c6
leaq 0x79df(%rip), %rsi      # 0xe3159
leaq 0x30220(%rip), %rdx     # 0x10b9a1
leaq 0x301a4(%rip), %rcx     # 0x10b92c
leaq 0x2ffd9(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x6b, %r9d
jmp 0xdb7bf
leaq 0x79b8(%rip), %rsi      # 0xe3159
leaq 0x301ca(%rip), %rdx     # 0x10b972
leaq 0x3017d(%rip), %rcx     # 0x10b92c
leaq 0x2ffb2(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x6c, %r9d
xorl %eax, %eax
callq 0x34f1f
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdb16a
movq %rbx, %rdi
callq 0xdb133
movq %rbx, %rdi
callq 0xdb31a
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdb16a
movq %rbx, %rdi
callq 0xdb31a
movl $0x2, %esi
movq %rbx, %rdi
callq 0xdb15a
movl $0x2, %esi
movq %rbx, %rdi
callq 0xdb16a
movq %rbx, %rdi
callq 0xdb133
movq %rbx, %rdi
callq 0xdb31a
movl $0x4, %esi
movq %rbx, %rdi
callq 0xdb15a
movl $0x4, %esi
movq %rbx, %rdi
callq 0xdb16a
movq %rbx, %rdi
callq 0xdb133
movq %rbx, %rdi
callq 0xdb133
movq %rbx, %rdi
callq 0xdb133
movq %rbx, %rdi
callq 0xdb133
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testq %rbx, %rbx
je 0xdb87a
leaq 0x2fefb(%rip), %rsi     # 0x10b768
movq %rbx, %rdi
movl $0xa5, %edx
callq 0x35c27
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x78d1(%rip), %rsi      # 0xe3159
leaq 0x30112(%rip), %rdx     # 0x10b9a1
leaq 0x30096(%rip), %rcx     # 0x10b92c
leaq 0x2fecb(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x6f, %r9d
jmp 0xdb8cd
leaq 0x78aa(%rip), %rsi      # 0xe3159
leaq 0x3011a(%rip), %rdx     # 0x10b9d0
leaq 0x3006f(%rip), %rcx     # 0x10b92c
leaq 0x2fea4(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x70, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0xdb7d3
leaq 0x7879(%rip), %rsi      # 0xe3159
leaq 0x3005c(%rip), %rdx     # 0x10b943
leaq 0x3003e(%rip), %rcx     # 0x10b92c
leaq 0x2fe73(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x73, %r9d
jmp 0xdb925
leaq 0x7852(%rip), %rsi      # 0xe3159
leaq 0x30064(%rip), %rdx     # 0x10b972
leaq 0x30017(%rip), %rcx     # 0x10b92c
leaq 0x2fe4c(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x74, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0xdb7db
leaq 0x7821(%rip), %rsi      # 0xe3159
leaq 0x30004(%rip), %rdx     # 0x10b943
leaq 0x2ffe6(%rip), %rcx     # 0x10b92c
leaq 0x2fe1b(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x77, %r9d
jmp 0xdb97d
leaq 0x77fa(%rip), %rsi      # 0xe3159
leaq 0x3000c(%rip), %rdx     # 0x10b972
leaq 0x2ffbf(%rip), %rcx     # 0x10b92c
leaq 0x2fdf4(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x78, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0xdb7e3
leaq 0x77c9(%rip), %rsi      # 0xe3159
leaq 0x2ffac(%rip), %rdx     # 0x10b943
leaq 0x2ff8e(%rip), %rcx     # 0x10b92c
leaq 0x2fdc3(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x7b, %r9d
jmp 0xdb9d5
leaq 0x77a2(%rip), %rsi      # 0xe3159
leaq 0x30012(%rip), %rdx     # 0x10b9d0
leaq 0x2ff67(%rip), %rcx     # 0x10b92c
leaq 0x2fd9c(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x7c, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0xdb7f0
leaq 0x7771(%rip), %rsi      # 0xe3159
leaq 0x2ff54(%rip), %rdx     # 0x10b943
leaq 0x2ff36(%rip), %rcx     # 0x10b92c
leaq 0x2fd6b(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x7f, %r9d
jmp 0xdba2d
leaq 0x774a(%rip), %rsi      # 0xe3159
leaq 0x2ff5c(%rip), %rdx     # 0x10b972
leaq 0x2ff0f(%rip), %rcx     # 0x10b92c
leaq 0x2fd44(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x80, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0xdb7f8
leaq 0x7719(%rip), %rsi      # 0xe3159
leaq 0x2ffb8(%rip), %rdx     # 0x10b9ff
leaq 0x2fede(%rip), %rcx     # 0x10b92c
leaq 0x2fd13(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x85, %r9d
jmp 0xdba85
leaq 0x76f2(%rip), %rsi      # 0xe3159
leaq 0x2ffc0(%rip), %rdx     # 0x10ba2e
leaq 0x2feb7(%rip), %rcx     # 0x10b92c
leaq 0x2fcec(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x86, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0xdb81a
leaq 0x76c1(%rip), %rsi      # 0xe3159
leaq 0x2fea4(%rip), %rdx     # 0x10b943
leaq 0x2fe86(%rip), %rcx     # 0x10b92c
leaq 0x2fcbb(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x89, %r9d
jmp 0xdbadd
leaq 0x769a(%rip), %rsi      # 0xe3159
leaq 0x2feac(%rip), %rdx     # 0x10b972
leaq 0x2fe5f(%rip), %rcx     # 0x10b92c
leaq 0x2fc94(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x8a, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0xdb822
leaq 0x7669(%rip), %rsi      # 0xe3159
leaq 0x2ff66(%rip), %rdx     # 0x10ba5d
leaq 0x2fe2e(%rip), %rcx     # 0x10b92c
leaq 0x2fc63(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x8f, %r9d
jmp 0xdbb35
leaq 0x7642(%rip), %rsi      # 0xe3159
leaq 0x2ff6f(%rip), %rdx     # 0x10ba8d
leaq 0x2fe07(%rip), %rcx     # 0x10b92c
leaq 0x2fc3c(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x90, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0xdb844
leaq 0x7611(%rip), %rsi      # 0xe3159
leaq 0x2feb0(%rip), %rdx     # 0x10b9ff
leaq 0x2fdd6(%rip), %rcx     # 0x10b92c
leaq 0x2fc0b(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x92, %r9d
jmp 0xdbb8d
leaq 0x75ea(%rip), %rsi      # 0xe3159
leaq 0x2feb8(%rip), %rdx     # 0x10ba2e
leaq 0x2fdaf(%rip), %rcx     # 0x10b92c
leaq 0x2fbe4(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x93, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0xdb84c
leaq 0x75b9(%rip), %rsi      # 0xe3159
leaq 0x2ff16(%rip), %rdx     # 0x10babd
leaq 0x2fd7e(%rip), %rcx     # 0x10b92c
leaq 0x2fbb3(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x96, %r9d
jmp 0xdbbe5
leaq 0x7592(%rip), %rsi      # 0xe3159
leaq 0x2ff1f(%rip), %rdx     # 0x10baed
leaq 0x2fd57(%rip), %rcx     # 0x10b92c
leaq 0x2fb8c(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x97, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0xdb854
leaq 0x7561(%rip), %rsi      # 0xe3159
leaq 0x2fd44(%rip), %rdx     # 0x10b943
leaq 0x2fd26(%rip), %rcx     # 0x10b92c
leaq 0x2fb5b(%rip), %r8      # 0x10b768
movq %r14, %rdi
movl $0x9a, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0xdb85c
callq 0x338a8