45 lines
622 B
Go
45 lines
622 B
Go
package upload
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"kr.dev/diff"
|
|
)
|
|
|
|
func TestChunks(t *testing.T) {
|
|
const size = 101
|
|
const chunkSize = 10
|
|
var got []Chunk[int]
|
|
var lastN int
|
|
for n, c := range Chunks(size, chunkSize) {
|
|
if n != lastN+1 {
|
|
t.Errorf("n = %d; want %d", n, lastN+1)
|
|
}
|
|
got = append(got, c)
|
|
lastN = n
|
|
}
|
|
|
|
want := []Chunk[int]{
|
|
{0, 10},
|
|
{10, 10},
|
|
{20, 10},
|
|
{30, 10},
|
|
{40, 10},
|
|
{50, 10},
|
|
{60, 10},
|
|
{70, 10},
|
|
{80, 10},
|
|
{90, 10},
|
|
{100, 1},
|
|
}
|
|
|
|
diff.Test(t, t.Errorf, got, want)
|
|
}
|
|
|
|
func TestChunksBreak(t *testing.T) {
|
|
for _, _ = range Chunks(1, 1) {
|
|
return
|
|
}
|
|
t.Fatal("expected break")
|
|
}
|