55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
|
|
package kcl
|
||
|
|
|
||
|
|
import (
|
||
|
|
"math/big"
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/stretchr/testify/assert"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestSequencePairIsLessThan(t *testing.T) {
|
||
|
|
assert := assert.New(t)
|
||
|
|
|
||
|
|
big10 := big.NewInt(10)
|
||
|
|
big5 := big.NewInt(5)
|
||
|
|
|
||
|
|
tests := []struct {
|
||
|
|
left SequencePair
|
||
|
|
right SequencePair
|
||
|
|
isLess bool
|
||
|
|
}{
|
||
|
|
{left: SequencePair{nil, 0}, right: SequencePair{nil, 0}, isLess: false},
|
||
|
|
{left: SequencePair{nil, 0}, right: SequencePair{big10, 0}, isLess: false},
|
||
|
|
{left: SequencePair{big10, 0}, right: SequencePair{nil, 0}, isLess: false},
|
||
|
|
|
||
|
|
{left: SequencePair{big5, 0}, right: SequencePair{big10, 0}, isLess: true},
|
||
|
|
{left: SequencePair{big5, 0}, right: SequencePair{big5, 10}, isLess: true},
|
||
|
|
|
||
|
|
{left: SequencePair{big10, 0}, right: SequencePair{big5, 0}, isLess: false},
|
||
|
|
{left: SequencePair{big5, 10}, right: SequencePair{big5, 0}, isLess: false},
|
||
|
|
}
|
||
|
|
|
||
|
|
for _, test := range tests {
|
||
|
|
left := test.left
|
||
|
|
right := test.right
|
||
|
|
t.Logf(
|
||
|
|
"Is <%s, %d> less than <%s, %d>? %t",
|
||
|
|
left.Sequence.String(), left.SubSequence,
|
||
|
|
right.Sequence.String(), right.SubSequence,
|
||
|
|
test.isLess,
|
||
|
|
)
|
||
|
|
|
||
|
|
assert.Equal(test.isLess, left.IsLessThan(right))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestSequencePairEmpty(t *testing.T) {
|
||
|
|
assert := assert.New(t)
|
||
|
|
|
||
|
|
assert.True(SequencePair{nil, 0}.IsEmpty())
|
||
|
|
assert.True(SequencePair{nil, 10000}.IsEmpty())
|
||
|
|
|
||
|
|
assert.False(SequencePair{big.NewInt(10), 0}.IsEmpty())
|
||
|
|
assert.False(SequencePair{big.NewInt(0), 1000}.IsEmpty())
|
||
|
|
}
|