1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
package fai
import (
"testing"
)
func TestFastaReader(t *testing.T) {
file := "seq.fa"
idx, err := New(file)
checkErr(t, err)
chr := "cel-let-7"
s, err := idx.Base(chr, 1)
checkErr(t, err)
if s != 'U' {
t.Errorf("unmatched sequences %s: %s", chr, []byte{s})
}
chr = "blank"
seq, err := idx.Seq(chr)
checkErr(t, err)
if string(seq) != "" {
t.Errorf("unmatched sequences %s: %s", chr, seq)
}
chr = "cel-mir-2"
seq, err = idx.Seq(chr)
checkErr(t, err)
if string(seq) != "UAAACAGUAUACAGAAAGCCAUCAAAGC" {
t.Errorf("unmatched sequences %s: %s", chr, seq)
}
start, end := 15, 19
seq, err = idx.SubSeq(chr, start, end)
checkErr(t, err)
if string(seq) != "AAAGC" {
t.Errorf("unmatched sequences %s from %d to %d: %s", chr, start, end, seq)
}
start, end = -3, -1
seq, err = idx.SubSeq(chr, start, end)
checkErr(t, err)
if string(seq) != "AGC" {
t.Errorf("unmatched sequences %s from %d to %d: %s", chr, start, end, seq)
}
start, end = 1, -1
seq, err = idx.SubSeq(chr, start, end)
checkErr(t, err)
if string(seq) != "UAAACAGUAUACAGAAAGCCAUCAAAGC" {
t.Errorf("unmatched sequences %s from %d to %d: %s", chr, start, end, seq)
}
start, end = 2, -2
seq, err = idx.SubSeq(chr, start, end)
checkErr(t, err)
if string(seq) != "AAACAGUAUACAGAAAGCCAUCAAAG" {
t.Errorf("unmatched sequences %s from %d to %d: %s", chr, start, end, seq)
}
start, end = 20, -2
seq, err = idx.SubSeq(chr, start, end)
checkErr(t, err)
if string(seq) != "CAUCAAAG" {
t.Errorf("unmatched sequences %s from %d to %d: %s", chr, start, end, seq)
}
start, end = 50, -2
seq, err = idx.SubSeq(chr, start, end)
checkErr(t, err)
if string(seq) != "" {
t.Errorf("unmatched sequences %s from %d to %d: %s", chr, start, end, seq)
}
chr = "seq"
seq, err = idx.Seq(chr)
checkErr(t, err)
if string(seq) != "ACTGACTG" {
t.Errorf("unmatched sequences %s: %s", chr, seq)
}
err = idx.Close()
if err != nil {
t.Errorf("fail to close faidx: %v", err)
}
}
func TestFastaReaderNotMapWholeFile(t *testing.T) {
MapWholeFile = false
TestFastaReader(t)
}
func checkErr(t *testing.T, err error) {
if err != nil {
t.Error(err)
}
}
|