// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/quality.c
// Function: gt_quality_unit_test
int gt_quality_unit_test(GtError *err)
{
  int had_err = 0;
  double val, phredscore, solexascore;

  gt_ensure(gt_quality_fastq_to_phred('!') == 0);
  gt_ensure(gt_quality_fastq_to_phred('{') == 90);
  val = gt_quality_phred_to_errorprob(gt_quality_fastq_to_phred('!'));
  gt_ensure(gt_double_equals_double(val, 1.0));
  val = gt_quality_phred_to_errorprob(gt_quality_fastq_to_phred('{'));
  gt_ensure(gt_double_equals_double(val, 0.000000001));

  gt_ensure(gt_quality_fastq_to_solexa('@') == 0);
  gt_ensure(gt_quality_fastq_to_solexa('!') == -31);
  gt_ensure(gt_quality_fastq_to_solexa('8') == -8);
  gt_ensure(gt_quality_fastq_to_solexa('{') == 59);

  phredscore = gt_quality_fastq_to_phred('A');
  solexascore = gt_quality_fastq_to_solexa('A'+31);
  gt_ensure(phredscore == solexascore);

  /* testing conversion (has rounding errors!)
     taken from Biopython test cases
     (http://portal.open-bio.org/pipermail/biopython-dev
             /2009-February/005385.html) */
  solexascore = gt_quality_phred_to_solexa(90);
  gt_ensure(gt_double_equals_double(solexascore, 89.999999995657035));
  solexascore = gt_quality_phred_to_solexa(50);
  gt_ensure(gt_double_equals_double(solexascore, 49.99995657033466));
  solexascore = gt_quality_phred_to_solexa(10);
  gt_ensure(gt_double_equals_double(solexascore, 9.5424250943932485));
  solexascore = gt_quality_phred_to_solexa(1);
  gt_ensure(gt_double_equals_double(solexascore, -5.8682532438011537));
  solexascore = gt_quality_phred_to_solexa(0.1);
  gt_ensure(gt_double_equals_double(solexascore, -16.32774717238372));

  phredscore = gt_quality_solexa_to_phred(90);
  gt_ensure(gt_double_equals_double(phredscore, 90.000000004342922));
  phredscore = gt_quality_solexa_to_phred(10);
  gt_ensure(gt_double_equals_double(phredscore, 10.41392685158225));
  phredscore = gt_quality_solexa_to_phred(0);
  gt_ensure(gt_double_equals_double(phredscore, 3.0102999566398116));
  phredscore = gt_quality_solexa_to_phred(-20);
  gt_ensure(gt_double_equals_double(phredscore, 0.043213737826425784));

  solexascore = gt_quality_fastq_to_solexa('!');
  phredscore = gt_quality_solexa_to_phred(solexascore);
  gt_ensure(
            gt_double_equals_double(phredscore, 0.0034483543102526788));
  solexascore = gt_quality_fastq_to_solexa('{');
  phredscore = gt_quality_solexa_to_phred(solexascore);
  gt_ensure(gt_double_equals_double(phredscore, 59.000005467440147));

  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movl $0x0, 0x1c(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfc98f
movl $0x21, %edi
callq 0xfc670
cmpl $0x0, %eax
je 0xfc98d
movq 0x20(%rsp), %rdi
leaq 0x432c97(%rip), %rsi    # 0x52f5fa
leaq 0x4436cf(%rip), %rdx    # 0x540039
leaq 0x4436ec(%rip), %rcx    # 0x54005d
leaq 0x44363b(%rip), %r8     # 0x53ffb3
movl $0x44, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfc98f
jmp 0xfc991
jmp 0xfc993
cmpl $0x0, 0x1c(%rsp)
jne 0xfc9e1
movl $0x7b, %edi
callq 0xfc670
cmpl $0x5a, %eax
je 0xfc9df
movq 0x20(%rsp), %rdi
leaq 0x432c45(%rip), %rsi    # 0x52f5fa
leaq 0x4436b6(%rip), %rdx    # 0x540072
leaq 0x44369a(%rip), %rcx    # 0x54005d
leaq 0x4435e9(%rip), %r8     # 0x53ffb3
movl $0x45, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfc9e1
jmp 0xfc9e3
movl $0x21, %edi
callq 0xfc670
movl %eax, %eax
cvtsi2sd %rax, %xmm0
callq 0xfc7f0
movsd %xmm0, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfca55
movsd 0x10(%rsp), %xmm0
movsd 0x41a82c(%rip), %xmm1   # 0x517240
callq 0xec260
testb $0x1, %al
jne 0xfca53
movq 0x20(%rsp), %rdi
leaq 0x432bd1(%rip), %rsi    # 0x52f5fa
leaq 0x443667(%rip), %rdx    # 0x540097
leaq 0x443626(%rip), %rcx    # 0x54005d
leaq 0x443575(%rip), %r8     # 0x53ffb3
movl $0x47, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfca55
jmp 0xfca57
movl $0x7b, %edi
callq 0xfc670
movl %eax, %eax
cvtsi2sd %rax, %xmm0
callq 0xfc7f0
movsd %xmm0, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfcac9
movsd 0x10(%rsp), %xmm0
movsd 0x4217d8(%rip), %xmm1   # 0x51e260
callq 0xec260
testb $0x1, %al
jne 0xfcac7
movq 0x20(%rsp), %rdi
leaq 0x432b5d(%rip), %rsi    # 0x52f5fa
leaq 0x443615(%rip), %rdx    # 0x5400b9
leaq 0x4435b2(%rip), %rcx    # 0x54005d
leaq 0x443501(%rip), %r8     # 0x53ffb3
movl $0x49, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfcac9
jmp 0xfcacb
jmp 0xfcacd
cmpl $0x0, 0x1c(%rsp)
jne 0xfcb1b
movl $0x40, %edi
callq 0xfc6e0
cmpl $0x0, %eax
je 0xfcb19
movq 0x20(%rsp), %rdi
leaq 0x432b0b(%rip), %rsi    # 0x52f5fa
leaq 0x4435ed(%rip), %rdx    # 0x5400e3
leaq 0x443560(%rip), %rcx    # 0x54005d
leaq 0x4434af(%rip), %r8     # 0x53ffb3
movl $0x4b, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfcb1b
jmp 0xfcb1d
jmp 0xfcb1f
cmpl $0x0, 0x1c(%rsp)
jne 0xfcb6d
movl $0x21, %edi
callq 0xfc6e0
cmpl $-0x1f, %eax
je 0xfcb6b
movq 0x20(%rsp), %rdi
leaq 0x432ab9(%rip), %rsi    # 0x52f5fa
leaq 0x4435c0(%rip), %rdx    # 0x540108
leaq 0x44350e(%rip), %rcx    # 0x54005d
leaq 0x44345d(%rip), %r8     # 0x53ffb3
movl $0x4c, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfcb6d
jmp 0xfcb6f
jmp 0xfcb71
cmpl $0x0, 0x1c(%rsp)
jne 0xfcbbf
movl $0x38, %edi
callq 0xfc6e0
cmpl $-0x8, %eax
je 0xfcbbd
movq 0x20(%rsp), %rdi
leaq 0x432a67(%rip), %rsi    # 0x52f5fa
leaq 0x443595(%rip), %rdx    # 0x54012f
leaq 0x4434bc(%rip), %rcx    # 0x54005d
leaq 0x44340b(%rip), %r8     # 0x53ffb3
movl $0x4d, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfcbbf
jmp 0xfcbc1
jmp 0xfcbc3
cmpl $0x0, 0x1c(%rsp)
jne 0xfcc11
movl $0x7b, %edi
callq 0xfc6e0
cmpl $0x3b, %eax
je 0xfcc0f
movq 0x20(%rsp), %rdi
leaq 0x432a15(%rip), %rsi    # 0x52f5fa
leaq 0x443569(%rip), %rdx    # 0x540155
leaq 0x44346a(%rip), %rcx    # 0x54005d
leaq 0x4433b9(%rip), %r8     # 0x53ffb3
movl $0x4e, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfcc11
jmp 0xfcc13
movl $0x41, %edi
callq 0xfc670
movl %eax, %eax
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x8(%rsp)
movl $0x60, %edi
callq 0xfc6e0
cvtsi2sd %eax, %xmm0
movsd %xmm0, (%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfcc8d
movsd 0x8(%rsp), %xmm0
ucomisd (%rsp), %xmm0
jne 0xfcc55
jp 0xfcc55
jmp 0xfcc8b
movq 0x20(%rsp), %rdi
leaq 0x432999(%rip), %rsi    # 0x52f5fa
leaq 0x443513(%rip), %rdx    # 0x54017b
leaq 0x4433ee(%rip), %rcx    # 0x54005d
leaq 0x44333d(%rip), %r8     # 0x53ffb3
movl $0x52, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfcc8d
jmp 0xfcc8f
movsd 0x443289(%rip), %xmm0   # 0x53ff20
callq 0xfc750
movsd %xmm0, (%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfccf6
movsd (%rsp), %xmm0
movsd 0x443273(%rip), %xmm1   # 0x53ff28
callq 0xec260
testb $0x1, %al
jne 0xfccf4
movq 0x20(%rsp), %rdi
leaq 0x432930(%rip), %rsi    # 0x52f5fa
leaq 0x4434c4(%rip), %rdx    # 0x540195
leaq 0x443385(%rip), %rcx    # 0x54005d
leaq 0x4432d4(%rip), %r8     # 0x53ffb3
movl $0x59, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfccf6
jmp 0xfccf8
movsd 0x4406d8(%rip), %xmm0   # 0x53d3d8
callq 0xfc750
movsd %xmm0, (%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfcd5f
movsd (%rsp), %xmm0
movsd 0x443212(%rip), %xmm1   # 0x53ff30
callq 0xec260
testb $0x1, %al
jne 0xfcd5d
movq 0x20(%rsp), %rdi
leaq 0x4328c7(%rip), %rsi    # 0x52f5fa
leaq 0x443494(%rip), %rdx    # 0x5401ce
leaq 0x44331c(%rip), %rcx    # 0x54005d
leaq 0x44326b(%rip), %r8     # 0x53ffb3
movl $0x5b, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfcd5f
jmp 0xfcd61
movsd 0x429317(%rip), %xmm0   # 0x526080
callq 0xfc750
movsd %xmm0, (%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfcdc8
movsd (%rsp), %xmm0
movsd 0x4431b1(%rip), %xmm1   # 0x53ff38
callq 0xec260
testb $0x1, %al
jne 0xfcdc6
movq 0x20(%rsp), %rdi
leaq 0x43285e(%rip), %rsi    # 0x52f5fa
leaq 0x443463(%rip), %rdx    # 0x540206
leaq 0x4432b3(%rip), %rcx    # 0x54005d
leaq 0x443202(%rip), %r8     # 0x53ffb3
movl $0x5d, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfcdc8
jmp 0xfcdca
movsd 0x41a46e(%rip), %xmm0   # 0x517240
callq 0xfc750
movsd %xmm0, (%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfce31
movsd (%rsp), %xmm0
movsd 0x443150(%rip), %xmm1   # 0x53ff40
callq 0xec260
testb $0x1, %al
jne 0xfce2f
movq 0x20(%rsp), %rdi
leaq 0x4327f5(%rip), %rsi    # 0x52f5fa
leaq 0x443433(%rip), %rdx    # 0x54023f
leaq 0x44324a(%rip), %rcx    # 0x54005d
leaq 0x443199(%rip), %r8     # 0x53ffb3
movl $0x5f, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfce31
jmp 0xfce33
movsd 0x422415(%rip), %xmm0   # 0x51f250
callq 0xfc750
movsd %xmm0, (%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfce9a
movsd (%rsp), %xmm0
movsd 0x4430ef(%rip), %xmm1   # 0x53ff48
callq 0xec260
testb $0x1, %al
jne 0xfce98
movq 0x20(%rsp), %rdi
leaq 0x43278c(%rip), %rsi    # 0x52f5fa
leaq 0x443404(%rip), %rdx    # 0x540279
leaq 0x4431e1(%rip), %rcx    # 0x54005d
leaq 0x443130(%rip), %r8     # 0x53ffb3
movl $0x61, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfce9a
jmp 0xfce9c
movsd 0x44307c(%rip), %xmm0   # 0x53ff20
callq 0xfc7a0
movsd %xmm0, 0x8(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfcf05
movsd 0x8(%rsp), %xmm0
movsd 0x44308c(%rip), %xmm1   # 0x53ff50
callq 0xec260
testb $0x1, %al
jne 0xfcf03
movq 0x20(%rsp), %rdi
leaq 0x432721(%rip), %rsi    # 0x52f5fa
leaq 0x4433d2(%rip), %rdx    # 0x5402b2
leaq 0x443176(%rip), %rcx    # 0x54005d
leaq 0x4430c5(%rip), %r8     # 0x53ffb3
movl $0x64, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfcf05
jmp 0xfcf07
movsd 0x429171(%rip), %xmm0   # 0x526080
callq 0xfc7a0
movsd %xmm0, 0x8(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfcf70
movsd 0x8(%rsp), %xmm0
movsd 0x443029(%rip), %xmm1   # 0x53ff58
callq 0xec260
testb $0x1, %al
jne 0xfcf6e
movq 0x20(%rsp), %rdi
leaq 0x4326b6(%rip), %rsi    # 0x52f5fa
leaq 0x44339f(%rip), %rdx    # 0x5402ea
leaq 0x44310b(%rip), %rcx    # 0x54005d
leaq 0x44305a(%rip), %r8     # 0x53ffb3
movl $0x66, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfcf70
jmp 0xfcf72
xorps %xmm0, %xmm0
callq 0xfc7a0
movsd %xmm0, 0x8(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfcfd6
movsd 0x8(%rsp), %xmm0
movsd 0x442fcb(%rip), %xmm1   # 0x53ff60
callq 0xec260
testb $0x1, %al
jne 0xfcfd4
movq 0x20(%rsp), %rdi
leaq 0x432650(%rip), %rsi    # 0x52f5fa
leaq 0x443370(%rip), %rdx    # 0x540321
leaq 0x4430a5(%rip), %rcx    # 0x54005d
leaq 0x442ff4(%rip), %r8     # 0x53ffb3
movl $0x68, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfcfd6
jmp 0xfcfd8
movsd 0x442f88(%rip), %xmm0   # 0x53ff68
callq 0xfc7a0
movsd %xmm0, 0x8(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfd041
movsd 0x8(%rsp), %xmm0
movsd 0x442f70(%rip), %xmm1   # 0x53ff70
callq 0xec260
testb $0x1, %al
jne 0xfd03f
movq 0x20(%rsp), %rdi
leaq 0x4325e5(%rip), %rsi    # 0x52f5fa
leaq 0x44333d(%rip), %rdx    # 0x540359
leaq 0x44303a(%rip), %rcx    # 0x54005d
leaq 0x442f89(%rip), %r8     # 0x53ffb3
movl $0x6a, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfd041
jmp 0xfd043
movl $0x21, %edi
callq 0xfc6e0
cvtsi2sd %eax, %xmm0
movsd %xmm0, (%rsp)
movsd (%rsp), %xmm0
callq 0xfc7a0
movsd %xmm0, 0x8(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfd0bc
movsd 0x8(%rsp), %xmm0
movsd 0x442efd(%rip), %xmm1   # 0x53ff78
callq 0xec260
testb $0x1, %al
jne 0xfd0ba
movq 0x20(%rsp), %rdi
leaq 0x43256a(%rip), %rsi    # 0x52f5fa
leaq 0x4432fc(%rip), %rdx    # 0x540393
leaq 0x442fbf(%rip), %rcx    # 0x54005d
leaq 0x442f0e(%rip), %r8     # 0x53ffb3
movl $0x6f, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfd0bc
jmp 0xfd0be
movl $0x7b, %edi
callq 0xfc6e0
cvtsi2sd %eax, %xmm0
movsd %xmm0, (%rsp)
movsd (%rsp), %xmm0
callq 0xfc7a0
movsd %xmm0, 0x8(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0xfd137
movsd 0x8(%rsp), %xmm0
movsd 0x442e8a(%rip), %xmm1   # 0x53ff80
callq 0xec260
testb $0x1, %al
jne 0xfd135
movq 0x20(%rsp), %rdi
leaq 0x4324ef(%rip), %rsi    # 0x52f5fa
leaq 0x4432bc(%rip), %rdx    # 0x5403ce
leaq 0x442f44(%rip), %rcx    # 0x54005d
leaq 0x442e93(%rip), %r8     # 0x53ffb3
movl $0x72, %r9d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xfd137
jmp 0xfd139
movl 0x1c(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)