forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
at master 409 B view raw
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}