hikan.ru/benchmarks/post_sublist_test.go

32 lines
867 B
Go

package benchmarks
import (
"strings"
"testing"
)
func BenchmarkPostsSublist(b *testing.B) {
p := generatePostsList()
// fmt.Println(p)
b.ResetTimer() // reset timer before cycle
b.Run("GetPostListBySubstring1", func(b *testing.B) {
for i := 0; i < b.N; i++ {
p.GetPostListBySubstring1("#Aiogram")
}
})
}
func (posts Posts) GetPostListBySubstring1(substring string) Posts {
res := make(Posts, 0, len(posts))
// Если первый символ - #, то поиск происходит по тегам
if substring = substring + " "; substring[0] == '#' {
for i := range posts {
// добавляю пробел, чтобы не было ситуации включения одного тега в начало другого
if strings.Contains(posts[i].Tags+" ", substring) {
res = append(res, posts[i])
}
}
}
return res
}