github.com/vertgenlab/gonomics@v1.0.0/cigar/byteCigar_test.go (about) 1 package cigar 2 3 import ( 4 "testing" 5 ) 6 7 // Current declaration of the cigar struct. 8 var c1 Cigar = Cigar{RunLength: 35, Op: 'M'} 9 var c2 Cigar = Cigar{RunLength: 2, Op: 'I'} 10 var c3 Cigar = Cigar{RunLength: 16, Op: 'D'} 11 12 // Byte Cigar light weight cigar. 13 var b1 ByteCigar = ByteCigar{RunLen: 35, Op: 'M'} 14 var b2 ByteCigar = ByteCigar{RunLen: 2, Op: 'I'} 15 var b3 ByteCigar = ByteCigar{RunLen: 16, Op: 'D'} 16 17 func TestBytesToCigar(t *testing.T) { 18 var cigarbytes = []byte("35M2I16D") 19 bc := ReadToBytesCigar(cigarbytes) 20 if string(ByteCigarToString(bc)) != "35M2I16D" { 21 t.Errorf("Error: could not convert %v to cigar...\n", bc) 22 } 23 } 24 25 func TestUint32ToCigar(t *testing.T) { 26 var query []uint32 = []uint32{560, 33, 258} 27 byteCigs := Uint32ToByteCigar(query) 28 if string(ByteCigarToString(byteCigs)) != "35M2I16D" { 29 t.Errorf("Error: 35M!=560, 2I!=33, 16D!=258...\n") 30 } 31 } 32 33 func TestToUint32(t *testing.T) { 34 var answer []uint32 = []uint32{560, 33, 258} 35 byteCigs := []ByteCigar{b1, b2, b3} 36 code := ByteCigarToUint32(byteCigs) 37 if len(answer) == len(code) { 38 if code[0] != answer[0] || code[1] != answer[1] || code[2] != answer[2] { 39 t.Errorf("Error: %d!=35M || %d!=2I || %d!=16D\n", code[0], code[1], code[2]) 40 } 41 } 42 } 43 func BenchmarkCigarBytesToString(b *testing.B) { 44 b.ReportAllocs() 45 b.ResetTimer() 46 for n := 0; n < b.N; n++ { 47 ByteCigarToString([]ByteCigar{b1, b2, b3}) 48 } 49 } 50 51 func BenchmarkCigarToString(b *testing.B) { 52 b.ReportAllocs() 53 b.ResetTimer() 54 for n := 0; n < b.N; n++ { 55 ToString([]Cigar{c1, c2, c3}) 56 } 57 } 58 59 func BenchmarkBytesToCigar(b *testing.B) { 60 b.ReportAllocs() 61 b.ResetTimer() 62 var cigarbytes = []byte("35M2I16D") 63 for n := 0; n < b.N; n++ { 64 ReadToBytesCigar(cigarbytes) 65 } 66 } 67 68 func BenchmarkStringToCigar(b *testing.B) { 69 b.ReportAllocs() 70 b.ResetTimer() 71 var cigarstring string = "35M2I16D" 72 for n := 0; n < b.N; n++ { 73 FromString(cigarstring) 74 } 75 }