forked from
tangled.org/core
Monorepo for Tangled — https://tangled.org
1package sets
2
3import (
4 "math/rand"
5 "reflect"
6 "testing/quick"
7)
8
9func (_ Set[T]) Generate(rand *rand.Rand, size int) reflect.Value {
10 s := New[T]()
11
12 var zero T
13 itemType := reflect.TypeOf(zero)
14
15 for {
16 if s.Len() >= size {
17 break
18 }
19
20 item, ok := quick.Value(itemType, rand)
21 if !ok {
22 continue
23 }
24
25 if val, ok := item.Interface().(T); ok {
26 s.Insert(val)
27 }
28 }
29
30 return reflect.ValueOf(s)
31}