// File: /workspace/github_c_makefile_star2_O2/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 %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
callq 0xc3704
movq %rax, %rbx
testq %r14, %r14
je 0xc3b87
movq %r14, %rdi
callq 0xc103
testb %al, %al
jne 0xc43ea
movq %rbx, %rdi
callq 0xc3818
ucomisd 0x6d59(%rip), %xmm0     # 0xca8f0
jne 0xc3f24
jp 0xc3f24
movq %rbx, %rdi
callq 0xc3927
ucomisd 0x6d3d(%rip), %xmm0     # 0xca8f0
jne 0xc3f44
jp 0xc3f44
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xc3796
movq %rbx, %rdi
callq 0xc3818
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xc3f7b
jp 0xc3f7b
movq %rbx, %rdi
callq 0xc3927
ucomisd 0x6cfa(%rip), %xmm0     # 0xca8f0
jne 0xc3f9b
jp 0xc3f9b
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xc37d7
movq %rbx, %rdi
callq 0xc3818
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xc406f
jp 0xc406f
movq %rbx, %rdi
callq 0xc3927
ucomisd 0x16cb7(%rip), %xmm0    # 0xda8f0
jne 0xc408f
jp 0xc408f
movq %rbx, %rdi
callq 0xc3719
movq %rbx, %rdi
callq 0xc3818
ucomisd 0x6c93(%rip), %xmm0     # 0xca8f0
jne 0xc40be
jp 0xc40be
movq %rbx, %rdi
callq 0xc3927
ucomisd 0x6c77(%rip), %xmm0     # 0xca8f0
jne 0xc40de
jp 0xc40de
movq %rbx, %rdi
callq 0xc3b18
movq %rbx, %rdi
callq 0xc3818
ucomisd 0x6c53(%rip), %xmm0     # 0xca8f0
jne 0xc410d
jp 0xc410d
movq %rbx, %rdi
callq 0xc3927
ucomisd 0x6c37(%rip), %xmm0     # 0xca8f0
jne 0xc412d
jp 0xc412d
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xc37d7
movq %rbx, %rdi
callq 0xc3818
ucomisd 0x6c10(%rip), %xmm0     # 0xca8f0
jne 0xc415c
jp 0xc415c
movq %rbx, %rdi
callq 0xc3927
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xc417c
jp 0xc417c
movq %rbx, %rdi
callq 0xc3b18
movq %rbx, %rdi
callq 0xc3818
ucomisd 0x6bd0(%rip), %xmm0     # 0xca8f0
jne 0xc41ab
jp 0xc41ab
movq %rbx, %rdi
callq 0xc3927
ucomisd 0x6bb4(%rip), %xmm0     # 0xca8f0
jne 0xc41d0
jp 0xc41d0
pushq $0x2
popq %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0xc3796
movq %rbx, %rdi
movq %r15, %rsi
callq 0xc37d7
movq %rbx, %rdi
callq 0xc3719
movq %rbx, %rdi
callq 0xc3818
ucomisd 0xf8c6(%rip), %xmm0     # 0xd3640
jne 0xc4201
jp 0xc4201
movq %rbx, %rdi
callq 0xc3927
ucomisd 0xf8aa(%rip), %xmm0     # 0xd3640
jne 0xc4228
jp 0xc4228
movq %rbx, %rdi
callq 0xc3b18
movq %rbx, %rdi
callq 0xc3818
ucomisd 0x6b36(%rip), %xmm0     # 0xca8f0
jne 0xc4259
jp 0xc4259
movq %rbx, %rdi
callq 0xc3927
ucomisd 0x6b1a(%rip), %xmm0     # 0xca8f0
jne 0xc4280
jp 0xc4280
pushq $0x4
popq %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0xc3796
movq %rbx, %rdi
movq %r15, %rsi
callq 0xc37d7
movq %rbx, %rdi
callq 0xc3719
movq %rbx, %rdi
callq 0xc3818
ucomisd 0x30c04(%rip), %xmm0    # 0xf4a18
jne 0xc42b1
jp 0xc42b1
movq %rbx, %rdi
callq 0xc3927
ucomisd 0x30be8(%rip), %xmm0    # 0xf4a18
jne 0xc42d8
jp 0xc42d8
movq %rbx, %rdi
callq 0xc3719
movq %rbx, %rdi
callq 0xc3818
ucomisd 0xf7ec(%rip), %xmm0     # 0xd3640
jne 0xc4309
jp 0xc4309
movq %rbx, %rdi
callq 0xc3927
ucomisd 0xf7d0(%rip), %xmm0     # 0xd3640
jne 0xc4330
jp 0xc4330
movq %rbx, %rdi
callq 0xc3719
movq %rbx, %rdi
callq 0xc3818
ucomisd 0x30b8c(%rip), %xmm0    # 0xf4a20
jne 0xc4361
jp 0xc4361
movq %rbx, %rdi
callq 0xc3927
ucomisd 0x30b70(%rip), %xmm0    # 0xf4a20
jne 0xc4388
jp 0xc4388
movq %rbx, %rdi
callq 0xc3719
movq %rbx, %rdi
callq 0xc3818
ucomisd 0x6a1c(%rip), %xmm0     # 0xca8f0
jne 0xc43b9
jp 0xc43b9
movq %rbx, %rdi
callq 0xc3927
xorl %ebp, %ebp
ucomisd 0x69fe(%rip), %xmm0     # 0xca8f0
jne 0xc3efa
jnp 0xc405a
leaq 0x8258(%rip), %rsi      # 0xcc159
leaq 0x30d2a(%rip), %rdx     # 0xf4c32
leaq 0x30cdd(%rip), %rcx     # 0xf4bec
leaq 0x30b12(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x9b, %r9d
jmp 0xc43de
leaq 0x822e(%rip), %rsi      # 0xcc159
leaq 0x30cd1(%rip), %rdx     # 0xf4c03
leaq 0x30cb3(%rip), %rcx     # 0xf4bec
leaq 0x30ae8(%rip), %r8      # 0xf4a28
pushq $0x67
jmp 0xc3f62
leaq 0x820e(%rip), %rsi      # 0xcc159
leaq 0x30ce0(%rip), %rdx     # 0xf4c32
leaq 0x30c93(%rip), %rcx     # 0xf4bec
leaq 0x30ac8(%rip), %r8      # 0xf4a28
pushq $0x68
popq %r9
movq %r14, %rdi
xorl %eax, %eax
callq 0xc007
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xc3796
jmp 0xc3fc5
leaq 0x81d7(%rip), %rsi      # 0xcc159
leaq 0x30cd8(%rip), %rdx     # 0xf4c61
leaq 0x30c5c(%rip), %rcx     # 0xf4bec
leaq 0x30a91(%rip), %r8      # 0xf4a28
pushq $0x6b
jmp 0xc3fb9
leaq 0x81b7(%rip), %rsi      # 0xcc159
leaq 0x30c89(%rip), %rdx     # 0xf4c32
leaq 0x30c3c(%rip), %rcx     # 0xf4bec
leaq 0x30a71(%rip), %r8      # 0xf4a28
pushq $0x6c
popq %r9
movq %r14, %rdi
xorl %eax, %eax
callq 0xc007
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xc37d7
movq %rbx, %rdi
callq 0xc3719
movq %rbx, %rdi
callq 0xc3b18
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0xc37d7
movq %rbx, %rdi
callq 0xc3b18
pushq $0x2
popq %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3796
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc37d7
movq %rbx, %rdi
callq 0xc3719
movq %rbx, %rdi
callq 0xc3b18
pushq $0x4
popq %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc3796
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc37d7
movq %rbx, %rdi
callq 0xc3719
movq %rbx, %rdi
callq 0xc3719
movq %rbx, %rdi
callq 0xc3719
movq %rbx, %rdi
callq 0xc3719
pushq $-0x1
popq %rbp
movq %rbx, %rdi
callq 0xc4420
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x80e3(%rip), %rsi      # 0xcc159
leaq 0x30be4(%rip), %rdx     # 0xf4c61
leaq 0x30b68(%rip), %rcx     # 0xf4bec
leaq 0x3099d(%rip), %r8      # 0xf4a28
pushq $0x6f
jmp 0xc40ad
leaq 0x80c3(%rip), %rsi      # 0xcc159
leaq 0x30bf3(%rip), %rdx     # 0xf4c90
leaq 0x30b48(%rip), %rcx     # 0xf4bec
leaq 0x3097d(%rip), %r8      # 0xf4a28
pushq $0x70
popq %r9
movq %r14, %rdi
xorl %eax, %eax
callq 0xc007
jmp 0xc3fd0
leaq 0x8094(%rip), %rsi      # 0xcc159
leaq 0x30b37(%rip), %rdx     # 0xf4c03
leaq 0x30b19(%rip), %rcx     # 0xf4bec
leaq 0x3094e(%rip), %r8      # 0xf4a28
pushq $0x73
jmp 0xc40fc
leaq 0x8074(%rip), %rsi      # 0xcc159
leaq 0x30b46(%rip), %rdx     # 0xf4c32
leaq 0x30af9(%rip), %rcx     # 0xf4bec
leaq 0x3092e(%rip), %r8      # 0xf4a28
pushq $0x74
popq %r9
movq %r14, %rdi
xorl %eax, %eax
callq 0xc007
jmp 0xc3fd8
leaq 0x8045(%rip), %rsi      # 0xcc159
leaq 0x30ae8(%rip), %rdx     # 0xf4c03
leaq 0x30aca(%rip), %rcx     # 0xf4bec
leaq 0x308ff(%rip), %r8      # 0xf4a28
pushq $0x77
jmp 0xc414b
leaq 0x8025(%rip), %rsi      # 0xcc159
leaq 0x30af7(%rip), %rdx     # 0xf4c32
leaq 0x30aaa(%rip), %rcx     # 0xf4bec
leaq 0x308df(%rip), %r8      # 0xf4a28
pushq $0x78
popq %r9
movq %r14, %rdi
xorl %eax, %eax
callq 0xc007
jmp 0xc3fe0
leaq 0x7ff6(%rip), %rsi      # 0xcc159
leaq 0x30a99(%rip), %rdx     # 0xf4c03
leaq 0x30a7b(%rip), %rcx     # 0xf4bec
leaq 0x308b0(%rip), %r8      # 0xf4a28
pushq $0x7b
jmp 0xc419a
leaq 0x7fd6(%rip), %rsi      # 0xcc159
leaq 0x30b06(%rip), %rdx     # 0xf4c90
leaq 0x30a5b(%rip), %rcx     # 0xf4bec
leaq 0x30890(%rip), %r8      # 0xf4a28
pushq $0x7c
popq %r9
movq %r14, %rdi
xorl %eax, %eax
callq 0xc007
jmp 0xc3feb
leaq 0x7fa7(%rip), %rsi      # 0xcc159
leaq 0x30a4a(%rip), %rdx     # 0xf4c03
leaq 0x30a2c(%rip), %rcx     # 0xf4bec
leaq 0x30861(%rip), %r8      # 0xf4a28
pushq $0x7f
popq %r9
movq %r14, %rdi
jmp 0xc41f5
leaq 0x7f82(%rip), %rsi      # 0xcc159
leaq 0x30a54(%rip), %rdx     # 0xf4c32
leaq 0x30a07(%rip), %rcx     # 0xf4bec
leaq 0x3083c(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x80, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xc3ff3
leaq 0x7f51(%rip), %rsi      # 0xcc159
leaq 0x30ab0(%rip), %rdx     # 0xf4cbf
leaq 0x309d6(%rip), %rcx     # 0xf4bec
leaq 0x3080b(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x85, %r9d
jmp 0xc424d
leaq 0x7f2a(%rip), %rsi      # 0xcc159
leaq 0x30ab8(%rip), %rdx     # 0xf4cee
leaq 0x309af(%rip), %rcx     # 0xf4bec
leaq 0x307e4(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x86, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xc4015
leaq 0x7ef9(%rip), %rsi      # 0xcc159
leaq 0x3099c(%rip), %rdx     # 0xf4c03
leaq 0x3097e(%rip), %rcx     # 0xf4bec
leaq 0x307b3(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x89, %r9d
jmp 0xc42a5
leaq 0x7ed2(%rip), %rsi      # 0xcc159
leaq 0x309a4(%rip), %rdx     # 0xf4c32
leaq 0x30957(%rip), %rcx     # 0xf4bec
leaq 0x3078c(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x8a, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xc401d
leaq 0x7ea1(%rip), %rsi      # 0xcc159
leaq 0x30a5e(%rip), %rdx     # 0xf4d1d
leaq 0x30926(%rip), %rcx     # 0xf4bec
leaq 0x3075b(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x8f, %r9d
jmp 0xc42fd
leaq 0x7e7a(%rip), %rsi      # 0xcc159
leaq 0x30a67(%rip), %rdx     # 0xf4d4d
leaq 0x308ff(%rip), %rcx     # 0xf4bec
leaq 0x30734(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x90, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xc403f
leaq 0x7e49(%rip), %rsi      # 0xcc159
leaq 0x309a8(%rip), %rdx     # 0xf4cbf
leaq 0x308ce(%rip), %rcx     # 0xf4bec
leaq 0x30703(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x92, %r9d
jmp 0xc4355
leaq 0x7e22(%rip), %rsi      # 0xcc159
leaq 0x309b0(%rip), %rdx     # 0xf4cee
leaq 0x308a7(%rip), %rcx     # 0xf4bec
leaq 0x306dc(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x93, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xc4047
leaq 0x7df1(%rip), %rsi      # 0xcc159
leaq 0x30a0e(%rip), %rdx     # 0xf4d7d
leaq 0x30876(%rip), %rcx     # 0xf4bec
leaq 0x306ab(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x96, %r9d
jmp 0xc43ad
leaq 0x7dca(%rip), %rsi      # 0xcc159
leaq 0x30a17(%rip), %rdx     # 0xf4dad
leaq 0x3084f(%rip), %rcx     # 0xf4bec
leaq 0x30684(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x97, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xc404f
leaq 0x7d99(%rip), %rsi      # 0xcc159
leaq 0x3083c(%rip), %rdx     # 0xf4c03
leaq 0x3081e(%rip), %rcx     # 0xf4bec
leaq 0x30653(%rip), %r8      # 0xf4a28
movq %r14, %rdi
movl $0x9a, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xc4057
movq 0x69bc7(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x5c6b(%rip), %rsi      # 0xca066
leaq 0x6257(%rip), %rdx      # 0xca659
leaq 0x307e3(%rip), %rcx     # 0xf4bec
leaq 0x30618(%rip), %r8      # 0xf4a28
pushq $0x65
popq %r9
xorl %eax, %eax
callq 0xb8c0
callq 0xb300