File: utils_test.go

package info (click to toggle)
golang-github-t3rm1n4l-go-mega 0.0~git20230228.a01a2cd-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 160 kB
  • sloc: makefile: 15
file content (105 lines) | stat: -rw-r--r-- 1,697 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package mega

import (
	"reflect"
	"testing"
)

func TestGetChunkSizes(t *testing.T) {
	const k = 1024
	for _, test := range []struct {
		size int64
		want []chunkSize
	}{
		{
			size: 0,
			want: []chunkSize(nil),
		},
		{
			size: 1,
			want: []chunkSize{
				{0, 1},
			},
		},
		{
			size: 128*k - 1,
			want: []chunkSize{
				{0, 128*k - 1},
			},
		},
		{
			size: 128 * k,
			want: []chunkSize{
				{0, 128 * k},
			},
		},
		{
			size: 128*k + 1,
			want: []chunkSize{
				{0, 128 * k},
				{128 * k, 1},
			},
		},
		{
			size: 384*k - 1,
			want: []chunkSize{
				{0, 128 * k},
				{128 * k, 256*k - 1},
			},
		},
		{
			size: 384 * k,
			want: []chunkSize{
				{0, 128 * k},
				{128 * k, 256 * k},
			},
		},
		{
			size: 384*k + 1,
			want: []chunkSize{
				{0, 128 * k},
				{128 * k, 256 * k},
				{384 * k, 1},
			},
		},
		{
			size: 5 * k * k,
			want: []chunkSize{
				{0, 128 * k},
				{128 * k, 256 * k},
				{384 * k, 384 * k},
				{768 * k, 512 * k},
				{1280 * k, 640 * k},
				{1920 * k, 768 * k},
				{2688 * k, 896 * k},
				{3584 * k, 1024 * k},
				{4608 * k, 512 * k},
			},
		},
		{
			size: 10 * k * k,
			want: []chunkSize{
				{0, 128 * k},
				{128 * k, 256 * k},
				{384 * k, 384 * k},
				{768 * k, 512 * k},
				{1280 * k, 640 * k},
				{1920 * k, 768 * k},
				{2688 * k, 896 * k},
				{3584 * k, 1024 * k},
				{4608 * k, 1024 * k},
				{5632 * k, 1024 * k},
				{6656 * k, 1024 * k},
				{7680 * k, 1024 * k},
				{8704 * k, 1024 * k},
				{9728 * k, 512 * k},
			},
		},
	} {
		got := getChunkSizes(test.size)
		if !reflect.DeepEqual(test.want, got) {
			t.Errorf("incorrect chunks for size %d: want %#v, got %#v", test.size, test.want, got)

		}
	}
}