// File: /workspace/github_c_makefile_star2_O1/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 0x30cc2(%rip), %rdx     # 0x10b948
movl $0x1, %edi
movl $0x18, %esi
movl $0x20, %ecx
callq 0x3601f
movq %rax, %rbx
testq %r14, %r14
je 0xdacb2
movq %r14, %rdi
callq 0x3566a
testb %al, %al
jne 0xdb566
movq %rbx, %rdi
callq 0xdaabe
ucomisd 0x6c2e(%rip), %xmm0     # 0xe18f0
jne 0xdb055
jp 0xdb055
movq %rbx, %rdi
callq 0xdab4e
ucomisd 0x6c12(%rip), %xmm0     # 0xe18f0
jne 0xdb07c
jp 0xdb07c
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdaa9e
movq %rbx, %rdi
callq 0xdaabe
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xdb0b7
jp 0xdb0b7
movq %rbx, %rdi
callq 0xdab4e
ucomisd 0x6bcd(%rip), %xmm0     # 0xe18f0
jne 0xdb0de
jp 0xdb0de
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdaaae
movq %rbx, %rdi
callq 0xdaabe
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xdb1c5
jp 0xdb1c5
movq %rbx, %rdi
callq 0xdab4e
ucomisd 0x16c28(%rip), %xmm0    # 0xf1990
jne 0xdb1ec
jp 0xdb1ec
movq %rbx, %rdi
callq 0xdaa77
movq %rbx, %rdi
callq 0xdaabe
ucomisd 0x6b64(%rip), %xmm0     # 0xe18f0
jne 0xdb21d
jp 0xdb21d
movq %rbx, %rdi
callq 0xdab4e
ucomisd 0x6b48(%rip), %xmm0     # 0xe18f0
jne 0xdb244
jp 0xdb244
movq %rbx, %rdi
callq 0xdac5e
movq %rbx, %rdi
callq 0xdaabe
ucomisd 0x6b24(%rip), %xmm0     # 0xe18f0
jne 0xdb275
jp 0xdb275
movq %rbx, %rdi
callq 0xdab4e
ucomisd 0x6b08(%rip), %xmm0     # 0xe18f0
jne 0xdb29c
jp 0xdb29c
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdaaae
movq %rbx, %rdi
callq 0xdaabe
ucomisd 0x6adf(%rip), %xmm0     # 0xe18f0
jne 0xdb2cd
jp 0xdb2cd
movq %rbx, %rdi
callq 0xdab4e
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xdb2f4
jp 0xdb2f4
movq %rbx, %rdi
callq 0xdac5e
movq %rbx, %rdi
callq 0xdaabe
ucomisd 0x6a9f(%rip), %xmm0     # 0xe18f0
jne 0xdb325
jp 0xdb325
movq %rbx, %rdi
callq 0xdab4e
ucomisd 0x6a83(%rip), %xmm0     # 0xe18f0
jne 0xdb34c
jp 0xdb34c
movl $0x2, %esi
movq %rbx, %rdi
callq 0xdaa9e
movl $0x2, %esi
movq %rbx, %rdi
callq 0xdaaae
movq %rbx, %rdi
callq 0xdaa77
movq %rbx, %rdi
callq 0xdaabe
ucomisd 0xf7f5(%rip), %xmm0     # 0xea6a0
jne 0xdb37d
jp 0xdb37d
movq %rbx, %rdi
callq 0xdab4e
ucomisd 0xf7d9(%rip), %xmm0     # 0xea6a0
jne 0xdb3a4
jp 0xdb3a4
movq %rbx, %rdi
callq 0xdac5e
movq %rbx, %rdi
callq 0xdaabe
ucomisd 0x6a05(%rip), %xmm0     # 0xe18f0
jne 0xdb3d5
jp 0xdb3d5
movq %rbx, %rdi
callq 0xdab4e
ucomisd 0x69e9(%rip), %xmm0     # 0xe18f0
jne 0xdb3fc
jp 0xdb3fc
movl $0x4, %esi
movq %rbx, %rdi
callq 0xdaa9e
movl $0x4, %esi
movq %rbx, %rdi
callq 0xdaaae
movq %rbx, %rdi
callq 0xdaa77
movq %rbx, %rdi
callq 0xdaabe
ucomisd 0x309f3(%rip), %xmm0    # 0x10b938
jne 0xdb42d
jp 0xdb42d
movq %rbx, %rdi
callq 0xdab4e
ucomisd 0x309d7(%rip), %xmm0    # 0x10b938
jne 0xdb454
jp 0xdb454
movq %rbx, %rdi
callq 0xdaa77
movq %rbx, %rdi
callq 0xdaabe
ucomisd 0xf71b(%rip), %xmm0     # 0xea6a0
jne 0xdb485
jp 0xdb485
movq %rbx, %rdi
callq 0xdab4e
ucomisd 0xf6ff(%rip), %xmm0     # 0xea6a0
jne 0xdb4ac
jp 0xdb4ac
movq %rbx, %rdi
callq 0xdaa77
movq %rbx, %rdi
callq 0xdaabe
ucomisd 0x3097b(%rip), %xmm0    # 0x10b940
jne 0xdb4dd
jp 0xdb4dd
movq %rbx, %rdi
callq 0xdab4e
ucomisd 0x3095f(%rip), %xmm0    # 0x10b940
jne 0xdb504
jp 0xdb504
movq %rbx, %rdi
callq 0xdaa77
movq %rbx, %rdi
callq 0xdaabe
ucomisd 0x68eb(%rip), %xmm0     # 0xe18f0
jne 0xdb535
jp 0xdb535
movq %rbx, %rdi
callq 0xdab4e
xorl %ebp, %ebp
ucomisd 0x68cd(%rip), %xmm0     # 0xe18f0
jne 0xdb02b
jnp 0xdb1a5
leaq 0x8147(%rip), %rsi      # 0xe3179
leaq 0x30b19(%rip), %rdx     # 0x10bb52
leaq 0x30acc(%rip), %rcx     # 0x10bb0c
leaq 0x30901(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x9b, %r9d
jmp 0xdb55a
leaq 0x811d(%rip), %rsi      # 0xe3179
leaq 0x30ac0(%rip), %rdx     # 0x10bb23
leaq 0x30aa2(%rip), %rcx     # 0x10bb0c
leaq 0x308d7(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x67, %r9d
jmp 0xdb0a1
leaq 0x80f6(%rip), %rsi      # 0xe3179
leaq 0x30ac8(%rip), %rdx     # 0x10bb52
leaq 0x30a7b(%rip), %rcx     # 0x10bb0c
leaq 0x308b0(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x68, %r9d
xorl %eax, %eax
callq 0x3559f
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdaa9e
jmp 0xdb10a
leaq 0x80bb(%rip), %rsi      # 0xe3179
leaq 0x30abc(%rip), %rdx     # 0x10bb81
leaq 0x30a40(%rip), %rcx     # 0x10bb0c
leaq 0x30875(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x6b, %r9d
jmp 0xdb103
leaq 0x8094(%rip), %rsi      # 0xe3179
leaq 0x30a66(%rip), %rdx     # 0x10bb52
leaq 0x30a19(%rip), %rcx     # 0x10bb0c
leaq 0x3084e(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x6c, %r9d
xorl %eax, %eax
callq 0x3559f
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdaaae
movq %rbx, %rdi
callq 0xdaa77
movq %rbx, %rdi
callq 0xdac5e
movl $0x1, %esi
movq %rbx, %rdi
callq 0xdaaae
movq %rbx, %rdi
callq 0xdac5e
movl $0x2, %esi
movq %rbx, %rdi
callq 0xdaa9e
movl $0x2, %esi
movq %rbx, %rdi
callq 0xdaaae
movq %rbx, %rdi
callq 0xdaa77
movq %rbx, %rdi
callq 0xdac5e
movl $0x4, %esi
movq %rbx, %rdi
callq 0xdaa9e
movl $0x4, %esi
movq %rbx, %rdi
callq 0xdaaae
movq %rbx, %rdi
callq 0xdaa77
movq %rbx, %rdi
callq 0xdaa77
movq %rbx, %rdi
callq 0xdaa77
movq %rbx, %rdi
callq 0xdaa77
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testq %rbx, %rbx
je 0xdb1be
leaq 0x30797(%rip), %rsi     # 0x10b948
movq %rbx, %rdi
movl $0xa5, %edx
callq 0x362a0
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x7fad(%rip), %rsi      # 0xe3179
leaq 0x309ae(%rip), %rdx     # 0x10bb81
leaq 0x30932(%rip), %rcx     # 0x10bb0c
leaq 0x30767(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x6f, %r9d
jmp 0xdb211
leaq 0x7f86(%rip), %rsi      # 0xe3179
leaq 0x309b6(%rip), %rdx     # 0x10bbb0
leaq 0x3090b(%rip), %rcx     # 0x10bb0c
leaq 0x30740(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x70, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xdb117
leaq 0x7f55(%rip), %rsi      # 0xe3179
leaq 0x308f8(%rip), %rdx     # 0x10bb23
leaq 0x308da(%rip), %rcx     # 0x10bb0c
leaq 0x3070f(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x73, %r9d
jmp 0xdb269
leaq 0x7f2e(%rip), %rsi      # 0xe3179
leaq 0x30900(%rip), %rdx     # 0x10bb52
leaq 0x308b3(%rip), %rcx     # 0x10bb0c
leaq 0x306e8(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x74, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xdb11f
leaq 0x7efd(%rip), %rsi      # 0xe3179
leaq 0x308a0(%rip), %rdx     # 0x10bb23
leaq 0x30882(%rip), %rcx     # 0x10bb0c
leaq 0x306b7(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x77, %r9d
jmp 0xdb2c1
leaq 0x7ed6(%rip), %rsi      # 0xe3179
leaq 0x308a8(%rip), %rdx     # 0x10bb52
leaq 0x3085b(%rip), %rcx     # 0x10bb0c
leaq 0x30690(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x78, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xdb127
leaq 0x7ea5(%rip), %rsi      # 0xe3179
leaq 0x30848(%rip), %rdx     # 0x10bb23
leaq 0x3082a(%rip), %rcx     # 0x10bb0c
leaq 0x3065f(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x7b, %r9d
jmp 0xdb319
leaq 0x7e7e(%rip), %rsi      # 0xe3179
leaq 0x308ae(%rip), %rdx     # 0x10bbb0
leaq 0x30803(%rip), %rcx     # 0x10bb0c
leaq 0x30638(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x7c, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xdb134
leaq 0x7e4d(%rip), %rsi      # 0xe3179
leaq 0x307f0(%rip), %rdx     # 0x10bb23
leaq 0x307d2(%rip), %rcx     # 0x10bb0c
leaq 0x30607(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x7f, %r9d
jmp 0xdb371
leaq 0x7e26(%rip), %rsi      # 0xe3179
leaq 0x307f8(%rip), %rdx     # 0x10bb52
leaq 0x307ab(%rip), %rcx     # 0x10bb0c
leaq 0x305e0(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x80, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xdb13c
leaq 0x7df5(%rip), %rsi      # 0xe3179
leaq 0x30854(%rip), %rdx     # 0x10bbdf
leaq 0x3077a(%rip), %rcx     # 0x10bb0c
leaq 0x305af(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x85, %r9d
jmp 0xdb3c9
leaq 0x7dce(%rip), %rsi      # 0xe3179
leaq 0x3085c(%rip), %rdx     # 0x10bc0e
leaq 0x30753(%rip), %rcx     # 0x10bb0c
leaq 0x30588(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x86, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xdb15e
leaq 0x7d9d(%rip), %rsi      # 0xe3179
leaq 0x30740(%rip), %rdx     # 0x10bb23
leaq 0x30722(%rip), %rcx     # 0x10bb0c
leaq 0x30557(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x89, %r9d
jmp 0xdb421
leaq 0x7d76(%rip), %rsi      # 0xe3179
leaq 0x30748(%rip), %rdx     # 0x10bb52
leaq 0x306fb(%rip), %rcx     # 0x10bb0c
leaq 0x30530(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x8a, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xdb166
leaq 0x7d45(%rip), %rsi      # 0xe3179
leaq 0x30802(%rip), %rdx     # 0x10bc3d
leaq 0x306ca(%rip), %rcx     # 0x10bb0c
leaq 0x304ff(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x8f, %r9d
jmp 0xdb479
leaq 0x7d1e(%rip), %rsi      # 0xe3179
leaq 0x3080b(%rip), %rdx     # 0x10bc6d
leaq 0x306a3(%rip), %rcx     # 0x10bb0c
leaq 0x304d8(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x90, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xdb188
leaq 0x7ced(%rip), %rsi      # 0xe3179
leaq 0x3074c(%rip), %rdx     # 0x10bbdf
leaq 0x30672(%rip), %rcx     # 0x10bb0c
leaq 0x304a7(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x92, %r9d
jmp 0xdb4d1
leaq 0x7cc6(%rip), %rsi      # 0xe3179
leaq 0x30754(%rip), %rdx     # 0x10bc0e
leaq 0x3064b(%rip), %rcx     # 0x10bb0c
leaq 0x30480(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x93, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xdb190
leaq 0x7c95(%rip), %rsi      # 0xe3179
leaq 0x307b2(%rip), %rdx     # 0x10bc9d
leaq 0x3061a(%rip), %rcx     # 0x10bb0c
leaq 0x3044f(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x96, %r9d
jmp 0xdb529
leaq 0x7c6e(%rip), %rsi      # 0xe3179
leaq 0x307bb(%rip), %rdx     # 0x10bccd
leaq 0x305f3(%rip), %rcx     # 0x10bb0c
leaq 0x30428(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x97, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xdb198
leaq 0x7c3d(%rip), %rsi      # 0xe3179
leaq 0x305e0(%rip), %rdx     # 0x10bb23
leaq 0x305c2(%rip), %rcx     # 0x10bb0c
leaq 0x303f7(%rip), %r8      # 0x10b948
movq %r14, %rdi
movl $0x9a, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xdb1a0
callq 0x33edc