star/gdu/pkg/analyze/top_test.go

70 lines
1.9 KiB
Go
Raw Normal View History

2025-04-26 19:33:14 +08:00
package analyze
import (
"sort"
"testing"
"b612.me/apps/b612/gdu/internal/testdir"
"b612.me/apps/b612/gdu/pkg/fs"
"github.com/stretchr/testify/assert"
)
func TestCollectTopFiles2(t *testing.T) {
fin := testdir.CreateTestDir()
defer fin()
dir := CreateAnalyzer().AnalyzeDir(
"test_dir", func(_, _ string) bool { return false }, false,
)
topFiles := CollectTopFiles(dir, 2)
assert.Equal(t, 2, len(topFiles))
assert.Equal(t, "file", topFiles[0].GetName())
assert.Equal(t, int64(5), topFiles[0].GetSize())
assert.Equal(t, "file2", topFiles[1].GetName())
assert.Equal(t, int64(2), topFiles[1].GetSize())
}
func TestCollectTopFiles1(t *testing.T) {
fin := testdir.CreateTestDir()
defer fin()
dir := CreateAnalyzer().AnalyzeDir(
"test_dir", func(_, _ string) bool { return false }, false,
)
topFiles := CollectTopFiles(dir, 1)
assert.Equal(t, 1, len(topFiles))
assert.Equal(t, "file", topFiles[0].GetName())
assert.Equal(t, int64(5), topFiles[0].GetSize())
}
func TestAdd2(t *testing.T) {
topList := NewTopList(2)
topList.Add(&File{Size: 1, Name: "file1"})
topList.Add(&File{Size: 5, Name: "file5"})
topList.Add(&File{Size: 2, Name: "file2"})
sort.Sort(sort.Reverse(fs.ByApparentSize(topList.Items)))
assert.Equal(t, 2, len(topList.Items))
assert.Equal(t, "file5", topList.Items[0].GetName())
assert.Equal(t, "file2", topList.Items[1].GetName())
}
func TestAdd3(t *testing.T) {
topList := NewTopList(3)
topList.Add(&File{Size: 5, Name: "file5"})
topList.Add(&File{Size: 1, Name: "file1"})
topList.Add(&File{Size: 2, Name: "file2"})
topList.Add(&File{Size: 4, Name: "file4"})
topList.Add(&File{Size: 3, Name: "file3"})
sort.Sort(sort.Reverse(fs.ByApparentSize(topList.Items)))
assert.Equal(t, 3, len(topList.Items))
assert.Equal(t, "file5", topList.Items[0].GetName())
assert.Equal(t, "file4", topList.Items[1].GetName())
assert.Equal(t, "file3", topList.Items[2].GetName())
}