mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-12-08 16:50:27 +00:00
Adds some unit test
Former-commit-id: b1a59df1c87187a1538f30c447d42bbe96402419
This commit is contained in:
48
pkg/obiseq/subseq_test.go
Normal file
48
pkg/obiseq/subseq_test.go
Normal file
@@ -0,0 +1,48 @@
|
||||
package obiseq
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestSubsequence(t *testing.T) {
|
||||
// Test case 1: Subsequence with valid parameters and non-circular
|
||||
seq := NewBioSequence("ID1", []byte("ATCG"), "")
|
||||
sub, err := seq.Subsequence(1, 3, false)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, []byte("tc"), sub.Sequence())
|
||||
|
||||
seq = NewBioSequenceWithQualities("ID1", []byte("ATCG"), "", []byte{40, 30, 20, 10})
|
||||
sub, err = seq.Subsequence(1, 3, false)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, []byte("tc"), sub.Sequence())
|
||||
assert.Equal(t, Quality([]byte{30, 20}), sub.Qualities())
|
||||
|
||||
// Test case 2: Subsequence with valid parameters and circular
|
||||
seq2 := NewBioSequence("ID1", []byte("ATCG"), "")
|
||||
sub2, err2 := seq2.Subsequence(3, 2, true)
|
||||
assert.NoError(t, err2)
|
||||
assert.Equal(t, []byte("gat"), sub2.Sequence())
|
||||
|
||||
seq = NewBioSequenceWithQualities("ID1", []byte("ATCG"), "", []byte{40, 30, 20, 10})
|
||||
sub, err = seq.Subsequence(3, 2, true)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, []byte("gat"), sub.Sequence())
|
||||
assert.Equal(t, Quality([]byte{10, 40, 30}), sub.Qualities())
|
||||
|
||||
// Test case 3: Subsequence with from greater than to and non-circular
|
||||
seq3 := NewBioSequence("ID1", []byte("ATCG"), "")
|
||||
_, err3 := seq3.Subsequence(3, 1, false)
|
||||
assert.EqualError(t, err3, "from greater than to")
|
||||
|
||||
// Test case 4: Subsequence with from out of bounds
|
||||
seq4 := NewBioSequence("ID1", []byte("ATCG"), "")
|
||||
_, err4 := seq4.Subsequence(-1, 2, false)
|
||||
assert.EqualError(t, err4, "from out of bounds")
|
||||
|
||||
// Test case 5: Subsequence with to out of bounds
|
||||
seq5 := NewBioSequence("ID1", []byte("ATCG"), "")
|
||||
_, err5 := seq5.Subsequence(2, 5, false)
|
||||
assert.EqualError(t, err5, "to out of bounds")
|
||||
}
|
||||
Reference in New Issue
Block a user