mirror of
https://github.com/Jguer/yay.git
synced 2025-10-16 00:05:01 -04:00
Improve testing of Intranges
This commit is contained in:
parent
bf89b3383c
commit
ed274ec665
@ -56,31 +56,6 @@ func Max(a, b int) int {
|
||||
return a
|
||||
}
|
||||
|
||||
func intRangesEqual(a, b IntRanges) bool {
|
||||
if a == nil && b == nil {
|
||||
return true
|
||||
}
|
||||
|
||||
if a == nil || b == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
if len(a) != len(b) {
|
||||
return false
|
||||
}
|
||||
|
||||
for n := range a {
|
||||
r1 := a[n]
|
||||
r2 := b[n]
|
||||
|
||||
if r1.min != r2.min || r1.max != r2.max {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// ParseNumberMenu parses input for number menus split by spaces or commas
|
||||
//supports individual selection: 1 2 3 4
|
||||
//supports range selections: 1-4 10-20
|
||||
|
@ -1,6 +1,8 @@
|
||||
package types
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestParseNumberMenu(t *testing.T) {
|
||||
type result struct {
|
||||
@ -54,3 +56,90 @@ func TestParseNumberMenu(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestIntRange_Get(t *testing.T) {
|
||||
type fields struct {
|
||||
min int
|
||||
max int
|
||||
}
|
||||
type args struct {
|
||||
n int
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
fields fields
|
||||
args args
|
||||
want bool
|
||||
}{
|
||||
{name: "normal range true", fields: fields{0, 10}, args: args{5}, want: true},
|
||||
{name: "normal start range true", fields: fields{0, 10}, args: args{0}, want: true},
|
||||
{name: "normal end range true", fields: fields{0, 10}, args: args{10}, want: true},
|
||||
{name: "small range true", fields: fields{1, 1}, args: args{1}, want: true},
|
||||
{name: "normal start range false", fields: fields{1, 2}, args: args{0}, want: false},
|
||||
{name: "normal end range false", fields: fields{1, 2}, args: args{3}, want: false},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
r := IntRange{
|
||||
min: tt.fields.min,
|
||||
max: tt.fields.max,
|
||||
}
|
||||
if got := r.Get(tt.args.n); got != tt.want {
|
||||
t.Errorf("IntRange.Get() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func intRangesEqual(a, b IntRanges) bool {
|
||||
if a == nil && b == nil {
|
||||
return true
|
||||
}
|
||||
|
||||
if a == nil || b == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
if len(a) != len(b) {
|
||||
return false
|
||||
}
|
||||
|
||||
for n := range a {
|
||||
r1 := a[n]
|
||||
r2 := b[n]
|
||||
|
||||
if r1.min != r2.min || r1.max != r2.max {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func TestIntRanges_Get(t *testing.T) {
|
||||
type args struct {
|
||||
n int
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
rs IntRanges
|
||||
args args
|
||||
want bool
|
||||
}{
|
||||
{name: "normal range true", rs: IntRanges{{0, 10}}, args: args{5}, want: true},
|
||||
{name: "normal ranges inbetween true", rs: IntRanges{{0, 4}, {5, 10}}, args: args{5}, want: true},
|
||||
{name: "normal ranges inbetween false", rs: IntRanges{{0, 4}, {6, 10}}, args: args{5}, want: false},
|
||||
{name: "normal start range true", rs: IntRanges{{0, 10}}, args: args{0}, want: true},
|
||||
{name: "normal end range true", rs: IntRanges{{0, 10}}, args: args{10}, want: true},
|
||||
{name: "small range true", rs: IntRanges{{1, 1}, {3, 3}}, args: args{1}, want: true},
|
||||
{name: "normal start range false", rs: IntRanges{{1, 2}}, args: args{0}, want: false},
|
||||
{name: "normal end range false", rs: IntRanges{{1, 2}}, args: args{3}, want: false},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := tt.rs.Get(tt.args.n); got != tt.want {
|
||||
t.Errorf("IntRanges.Get() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user