gen

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 15, 2025 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CTestGenSeed    = 811509576612567777
	CUseTestGenSeed = false
)

Variables

View Source
var (
	ErrEmptyIterator = errors.New("iterator is empty")
)
View Source
var (
	ErrEmptyQueue = errors.New("queue is empty")
)
View Source
var (
	ErrEmptyStack = errors.New("stack is empty")
)

Functions

func GenerateS3AvoidCharacters

func GenerateS3AvoidCharacters() []rune

func GenerateS3SafeCharacters

func GenerateS3SafeCharacters() []rune

func GenerateS3SpecialHandlingCharacters

func GenerateS3SpecialHandlingCharacters() []rune

Types

type DepthFirstTreeNodeIterator

type DepthFirstTreeNodeIterator[T any] struct {
	// contains filtered or unexported fields
}

func (*DepthFirstTreeNodeIterator[T]) HasNext

func (r *DepthFirstTreeNodeIterator[T]) HasNext() bool

func (*DepthFirstTreeNodeIterator[T]) Must

func (r *DepthFirstTreeNodeIterator[T]) Must() iter.Seq[*TreeNode[T]]

func (*DepthFirstTreeNodeIterator[T]) Next

func (r *DepthFirstTreeNodeIterator[T]) Next() (*TreeNode[T], error)

type DepthFirstTreeValueIterator

type DepthFirstTreeValueIterator[T any] struct {
	DepthFirstTreeNodeIterator[T]
}

func (*DepthFirstTreeValueIterator[T]) Must

func (r *DepthFirstTreeValueIterator[T]) Must() iter.Seq[T]

func (*DepthFirstTreeValueIterator[T]) Next

func (r *DepthFirstTreeValueIterator[T]) Next() (T, error)

type DummyObjectGenerator

type DummyObjectGenerator[T any] struct{}

func NewDummyObjectGenerator

func NewDummyObjectGenerator[T any]() *DummyObjectGenerator[T]

func (*DummyObjectGenerator[T]) Generate

func (r *DummyObjectGenerator[T]) Generate(_ *Rnd, _ TreeNodeType, _ T) (T, error)

type GeneratedS3Object

type GeneratedS3Object struct {
	// contains filtered or unexported fields
}

func (*GeneratedS3Object) ContentReaderIterator

func (r *GeneratedS3Object) ContentReaderIterator() iter.Seq2[uint64, *GeneratedS3ObjectContentReader]

func (*GeneratedS3Object) GetContentReader

func (r *GeneratedS3Object) GetContentReader() *GeneratedS3ObjectContentReader

func (*GeneratedS3Object) GetFirstVersionContentReader

func (r *GeneratedS3Object) GetFirstVersionContentReader() *GeneratedS3ObjectContentReader

func (*GeneratedS3Object) GetFullPath

func (r *GeneratedS3Object) GetFullPath() string

func (*GeneratedS3Object) GetLastVersionContentReader

func (r *GeneratedS3Object) GetLastVersionContentReader() *GeneratedS3ObjectContentReader

func (*GeneratedS3Object) GetVersionContentReader

func (r *GeneratedS3Object) GetVersionContentReader(versionIdx uint64) *GeneratedS3ObjectContentReader

func (*GeneratedS3Object) GetVersionCount

func (r *GeneratedS3Object) GetVersionCount() uint64

type GeneratedS3ObjectContentReader

type GeneratedS3ObjectContentReader struct {
	// contains filtered or unexported fields
}

func NewGeneratedS3ObjectContentReader

func NewGeneratedS3ObjectContentReader(seed int64, contentLengthRange *GeneratorRange) *GeneratedS3ObjectContentReader

func (*GeneratedS3ObjectContentReader) Len

func (*GeneratedS3ObjectContentReader) Read

func (r *GeneratedS3ObjectContentReader) Read(p []byte) (int, error)

type GeneratorRange

type GeneratorRange struct {
	Min int64
	Max int64
}

type ObjectGenerator

type ObjectGenerator[T any] interface {
	Generate(rnd *Rnd, nodeType TreeNodeType, parentData T) (T, error)
}

type Queue

type Queue[T any] struct {
	// contains filtered or unexported fields
}

func NewQueue

func NewQueue[T any]() *Queue[T]

func (*Queue[T]) Dequeue

func (r *Queue[T]) Dequeue() (T, error)

func (*Queue[T]) Empty

func (r *Queue[T]) Empty() bool

func (*Queue[T]) Enqueue

func (r *Queue[T]) Enqueue(data T)

func (*Queue[T]) Len

func (r *Queue[T]) Len() uint64

type QueueNode

type QueueNode[T any] struct {
	// contains filtered or unexported fields
}

type Rnd

type Rnd struct {
	// contains filtered or unexported fields
}

func NewRnd

func NewRnd(seed int64) *Rnd

func (*Rnd) Bool

func (r *Rnd) Bool() bool

func (*Rnd) Int64

func (r *Rnd) Int64() int64

func (*Rnd) Int64InRange

func (r *Rnd) Int64InRange(min int64, max int64) int64

func (*Rnd) IntInRange

func (r *Rnd) IntInRange(min int, max int) int

func (*Rnd) Read

func (r *Rnd) Read(p []byte)

func (*Rnd) StringFromAlphabet

func (r *Rnd) StringFromAlphabet(alphabet string, resultLength int64) string

func (*Rnd) StringFromRunes

func (r *Rnd) StringFromRunes(alphabet []rune, resultLength int64) string

func (*Rnd) VarLengthStringFromAlphabet

func (r *Rnd) VarLengthStringFromAlphabet(alphabet string, minLength int64, maxLength int64) string

func (*Rnd) VarLengthStringFromRunes

func (r *Rnd) VarLengthStringFromRunes(alphabet []rune, minLength int64, maxLength int64) string

type S3Filler

type S3Filler struct {
	// contains filtered or unexported fields
}

func NewS3Filler

func NewS3Filler(tree *Tree[*GeneratedS3Object], client *minio.Client) *S3Filler

func NewS3Validator

func NewS3Validator(tree *Tree[*GeneratedS3Object], client *minio.Client) *S3Filler

func (*S3Filler) Fill

func (r *S3Filler) Fill(ctx context.Context, bucket string) error

func (*S3Filler) FillLast

func (r *S3Filler) FillLast(ctx context.Context, bucket string) error

type S3ObjectGenerator

type S3ObjectGenerator struct {
	// contains filtered or unexported fields
}

func NewS3ObjectGenerator

func NewS3ObjectGenerator(opts ...S3ObjectGeneratorOptions) *S3ObjectGenerator

func (*S3ObjectGenerator) Generate

func (r *S3ObjectGenerator) Generate(rnd *Rnd, nodeType TreeNodeType, parentData *GeneratedS3Object) (*GeneratedS3Object, error)

type S3ObjectGeneratorOptions

type S3ObjectGeneratorOptions func(gen *S3ObjectGenerator)

func WithContentLengthhRange

func WithContentLengthhRange(min uint32, max uint32) S3ObjectGeneratorOptions

func WithNameCharacters

func WithNameCharacters(chars []rune) S3ObjectGeneratorOptions

func WithNameLengthRange

func WithNameLengthRange(min uint32, max uint32) S3ObjectGeneratorOptions

func WithVersionRange

func WithVersionRange(min uint32, max uint32) S3ObjectGeneratorOptions

func WithVersioned

func WithVersioned() S3ObjectGeneratorOptions

type S3Validator

type S3Validator struct {
	// contains filtered or unexported fields
}

func (*S3Validator) Validator

func (r *S3Validator) Validator(ctx context.Context, bucket string) error

type Stack

type Stack[T any] struct {
	// contains filtered or unexported fields
}

func NewStack

func NewStack[T any]() *Stack[T]

func (*Stack[T]) Empty

func (r *Stack[T]) Empty() bool

func (*Stack[T]) Len

func (r *Stack[T]) Len() uint64

func (*Stack[T]) Peek

func (r *Stack[T]) Peek() (T, error)

func (*Stack[T]) Pop

func (r *Stack[T]) Pop() (T, error)

func (*Stack[T]) Push

func (r *Stack[T]) Push(data T)

type StackNode

type StackNode[T any] struct {
	// contains filtered or unexported fields
}

type Tree

type Tree[T any] struct {
	// contains filtered or unexported fields
}

func NewTree

func NewTree[T any](root *TreeNode[T]) *Tree[T]

func (*Tree[T]) DepthFirstNodeIterator

func (r *Tree[T]) DepthFirstNodeIterator() *DepthFirstTreeNodeIterator[T]

func (*Tree[T]) DepthFirstValueIterator

func (r *Tree[T]) DepthFirstValueIterator() *DepthFirstTreeValueIterator[T]

func (*Tree[T]) WidthFirstNodeIterator

func (r *Tree[T]) WidthFirstNodeIterator() *WidthFirstTreeNodeIterator[T]

func (*Tree[T]) WidthFirstValueIterator

func (r *Tree[T]) WidthFirstValueIterator() *WidthFirstTreeValueIterator[T]

type TreeGenerationTask

type TreeGenerationTask[T any] struct {
	// contains filtered or unexported fields
}

type TreeGenerator

type TreeGenerator[T any] struct {
	// contains filtered or unexported fields
}

func NewTreeGenerator

func NewTreeGenerator[T any](opts ...TreeGeneratorOption[T]) (*TreeGenerator[T], error)

func (*TreeGenerator[T]) Generate

func (r *TreeGenerator[T]) Generate() (*Tree[T], error)

type TreeGeneratorOption

type TreeGeneratorOption[T any] interface {
	// contains filtered or unexported methods
}

func WithDepthRange

func WithDepthRange[T any](min uint32, max uint32) TreeGeneratorOption[T]

func WithForceTargetDepth

func WithForceTargetDepth[T any]() TreeGeneratorOption[T]

func WithObjectGenerator

func WithObjectGenerator[T any](generator ObjectGenerator[T]) TreeGeneratorOption[T]

func WithRandomSeed

func WithRandomSeed[T any](seed int64) TreeGeneratorOption[T]

func WithRnd

func WithRnd[T any](rnd *Rnd) TreeGeneratorOption[T]

func WithWidthRange

func WithWidthRange[T any](min uint32, max uint32) TreeGeneratorOption[T]

type TreeGeneratorWithDepthRangeOption

type TreeGeneratorWithDepthRangeOption[T any] struct {
	// contains filtered or unexported fields
}

type TreeGeneratorWithForceTargetDepthOption

type TreeGeneratorWithForceTargetDepthOption[T any] struct{}

type TreeGeneratorWithObjectGeneratorOption

type TreeGeneratorWithObjectGeneratorOption[T any] struct {
	// contains filtered or unexported fields
}

type TreeGeneratorWithRandomSeedOption

type TreeGeneratorWithRandomSeedOption[T any] struct {
	// contains filtered or unexported fields
}

type TreeGeneratorWithRndOption

type TreeGeneratorWithRndOption[T any] struct {
	// contains filtered or unexported fields
}

type TreeGeneratorWithWidthRangeOption

type TreeGeneratorWithWidthRangeOption[T any] struct {
	// contains filtered or unexported fields
}

type TreeNode

type TreeNode[T any] struct {
	// contains filtered or unexported fields
}

func (*TreeNode[T]) Data

func (r *TreeNode[T]) Data() T

type TreeNodeType

type TreeNodeType int
const (
	CRootTreeNodeType TreeNodeType = iota + 1
	CJointTreeNodeType
	CLeafTreeNodeType
)

type TreeRandomElementPicker

type TreeRandomElementPicker[T any] struct {
	// contains filtered or unexported fields
}

func NewTreeRandomElementPicker

func NewTreeRandomElementPicker[T any](tree *Tree[T], rnd *Rnd) *TreeRandomElementPicker[T]

func (*TreeRandomElementPicker[T]) RandomJointNode

func (r *TreeRandomElementPicker[T]) RandomJointNode() *TreeNode[T]

func (*TreeRandomElementPicker[T]) RandomJointSubtree

func (r *TreeRandomElementPicker[T]) RandomJointSubtree() *Tree[T]

func (*TreeRandomElementPicker[T]) RandomJointValue

func (r *TreeRandomElementPicker[T]) RandomJointValue() T

func (*TreeRandomElementPicker[T]) RandomLeafNode

func (r *TreeRandomElementPicker[T]) RandomLeafNode() *TreeNode[T]

func (*TreeRandomElementPicker[T]) RandomLeafValue

func (r *TreeRandomElementPicker[T]) RandomLeafValue() T

func (*TreeRandomElementPicker[T]) RootNode

func (r *TreeRandomElementPicker[T]) RootNode() *TreeNode[T]

func (*TreeRandomElementPicker[T]) RootValue

func (r *TreeRandomElementPicker[T]) RootValue() T

type WidthFirstTreeNodeIterator

type WidthFirstTreeNodeIterator[T any] struct {
	// contains filtered or unexported fields
}

func (*WidthFirstTreeNodeIterator[T]) HasNext

func (r *WidthFirstTreeNodeIterator[T]) HasNext() bool

func (*WidthFirstTreeNodeIterator[T]) Must

func (r *WidthFirstTreeNodeIterator[T]) Must() iter.Seq[*TreeNode[T]]

func (*WidthFirstTreeNodeIterator[T]) Next

func (r *WidthFirstTreeNodeIterator[T]) Next() (*TreeNode[T], error)

type WidthFirstTreeValueIterator

type WidthFirstTreeValueIterator[T any] struct {
	WidthFirstTreeNodeIterator[T]
}

func (*WidthFirstTreeValueIterator[T]) Must

func (r *WidthFirstTreeValueIterator[T]) Must() iter.Seq[T]

func (*WidthFirstTreeValueIterator[T]) Next

func (r *WidthFirstTreeValueIterator[T]) Next() (T, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL