接口
interface Arbitrary
public interface Arbitrary<T> {
static func arbitrary(random: Random): Generator<T>
}
功能:生成 T 类型随机值的接口。
func arbitrary(Random)
static func arbitrary(random: Random): Generator<T>
功能:获取生成 T 类型随机值生成器。
参数:
- random: Random - 随机数。
返回值:
- Generator<T> - 生成 T 类型随机值生成器。
extend Bool <: Arbitrary<Bool>
extend Bool <: Arbitrary<Bool>
功能:为 Bool 实现了 Arbitrary<T> 接口。
extend Float16 <: Arbitrary<Float16>
extend Float16 <: Arbitrary<Float16>
功能:为 Float16 实现了 Arbitrary<T> 接口。
extend Float32 <: Arbitrary<Float32>
extend Float32 <: Arbitrary<Float32>
功能:为 Float32 实现了 Arbitrary<T> 接口。
extend Float64 <: Arbitrary<Float64>
extend Float64 <: Arbitrary<Float64>
功能:为 Float64 实现了 Arbitrary<T> 接口。
extend Int16 <: Arbitrary<Int16>
extend Int16 <: Arbitrary<Int16>
功能:为 Int16 实现了 Arbitrary<T> 接口。
extend Int32 <: Arbitrary<Int32>
extend Int32 <: Arbitrary<Int32>
功能:为 Int32 实现了 Arbitrary<T> 接口。
extend Int64 <: Arbitrary<Int64>
extend Int64 <: Arbitrary<Int64>
功能:为 Int64 实现了 Arbitrary<T> 接口。
extend Int8 <: Arbitrary<Int8>
extend Int8 <: Arbitrary<Int8>
功能:为 Int8 实现了 Arbitrary<T> 接口。
extend IntNative <: Arbitrary<IntNative>
extend IntNative <: Arbitrary<IntNative>
功能:为 IntNative 实现了 Arbitrary<T> 接口。
extend Ordering <: Arbitrary<Ordering>
extend Ordering <: Arbitrary<Ordering>
功能:为 Ordering 实现了 Arbitrary<T> 接口。
extend Ordering <: Arbitrary<Ordering>
extend Ordering <: Arbitrary<Ordering>
功能:为 Ordering 实现了 Arbitrary<T> 接口。
extend Rune <: Arbitrary<Rune>
extend Rune <: Arbitrary<Rune>
功能:为 Rune 实现了 Arbitrary<T> 接口。
extend String <: Arbitrary<String>
extend String <: Arbitrary<String>
功能:为 String 实现了 Arbitrary<T> 接口。
extend UInt16 <: Arbitrary<UInt16>
extend UInt16 <: Arbitrary<UInt16>
功能:为 UInt16 实现了 Arbitrary<T> 接口。
extend UInt32 <: Arbitrary<UInt32>
extend UInt32 <: Arbitrary<UInt32>
功能:为 UInt32 实现了 Arbitrary<T> 接口。
extend UInt64 <: Arbitrary<UInt64>
extend UInt64 <: Arbitrary<UInt64>
功能:为 UInt64 实现了 Arbitrary<T> 接口。
extend UInt8 <: Arbitrary<UInt8>
extend UInt8 <: Arbitrary<UInt8>
功能:为 UInt8 实现了 Arbitrary<T> 接口。
extend UIntNative <: Arbitrary<UIntNative>
extend UIntNative <: Arbitrary<UIntNative>
功能:为 UIntNative 实现了 Arbitrary<T> 接口。
extend Unit <: Arbitrary<Unit>
extend Unit <: Arbitrary<Unit>
功能:为 Unit 实现了 Arbitrary<T> 接口。
extend<T> Array<T> <: Arbitrary<Array<T>> where T <: Arbitrary<T>
extend<T> Array<T> <: Arbitrary<Array<T>> where T <: Arbitrary<T>
功能:为 Array<T> 实现了 Arbitrary<Array<T>> 接口,且 T 需实现 Arbitrary<T> 接口。
extend<T> Option<T> <: Arbitrary<Option<T>> where T <: Arbitrary<T>
extend<T> option<T> <: Arbitrary<Option<T>> where T <: Arbitrary<T>
功能:为 Option<T> 实现了 Arbitrary<Option<T>> 接口,且 T 需实现 Arbitrary<T> 接口。
interface BenchInputProvider
public interface BenchInputProvider<T> <: BenchmarkInputMarker {
mut func get(idx: Int64): T
mut func reset(max: Int64)
}
功能:用于处理性能测试的接口,其中需要在每次性能测试调用之前执行一些代码或者性能测试的输入发生了变化,并且每次都必须从头开始生成。 要使用此功能,您的 DataStrategy 实现应返回此接口的实现者。 推荐的方法是使用 @Strategy 宏。
mut func get(Int64)
mut func get(idx: Int64): T
功能:获取元素,该函数的执行时间包含在基准测量中,然后作为框架开销计算的一部分从结果中排除。
参数:
- idx : Int64 - 元素索引值。
返回值:
- T - 元素值。
mut func reset(Int64)
mut func reset(max: Int64)
功能:在基准测量之前调用。调用此函数后,后续的 get(i)
调用必须成功获取 [0, max) 中的 i
。
参数:
- max : Int64 - 最大值。
interface BenchmarkInputMarker
public interface BenchmarkInputMarker
功能:当我们不知道 T
时,该接口能够检测 BenchInputProvider<T>
。
interface DataProvider
public interface DataProvider<T> {
func provide(): Iterable<T>
prop isInfinite: Bool
}
功能:DataStrategy 的组件,用于提供测试数据,T 指定提供者提供的数据类型。
prop isInfinite
prop isInfinite: Bool
功能:是否无法穷尽。
类型:Bool
func provide()
func provide(): Iterable<T>
功能:获取数据迭代器。
返回值:
- Iterable<T> - 数据迭代器。
extend<T> Array<T> <: DataProvider<T>
extend<T> Array<T> <: DataProvider<T>
功能:为 Array 实现了 DataProvider<T> 接口。使如下配置形式可用:
@Test[x in [1,2,3]]
func test(x: Int64) {}
extend<T> Range<T> <: DataProvider<T>
extend<T> Range<T> <: DataProvider<T>
功能:为 Range 实现了 DataProvider<T> 接口。使如下配置形式可用:
@Test[x in (0..5)]
func test(x: Int64) {}
interface DataShrinker<T>
public interface DataShrinker<T> {
func shrink(value: T): Iterable<T>
}
功能:DataStrategy 的组件,用于在测试期间缩减数据,T 指定该收缩器处理的数据类型。
func shrink(T)
func shrink(value: T): Iterable<T>
功能:获取类型 T 的值并生成较小值的集合。什么被认为是“较小”取决于数据的类型。
参数:
- value: T - 被缩减的值。
返回值:
- Iterable<T> - 较小值的集合,当数据无法再被缩减时返回空集合。
interface DataStrategy
public interface DataStrategy<T> {
func finisher(configuration: Configuration): DataFinisher<T>
func provider(configuration: Configuration): DataProvider<T>
func shrinker(configuration: Configuration): DataShrinker<T>
}
功能:为参数化测试提供数据的策略,T 指定该策略操作的数据类型。
func finisher(Configuration)
func finisher(configuration: Configuration): DataFinisher<T>
功能:获取对测试数据进行测试后操作的组件。
参数:
- configuration: Configuration - 配置信息。
返回值:
- DataFinisher<T> - 对测试数据进行测试后操作测试数据的组件对象。
func provider(Configuration)
func provider(configuration: Configuration): DataProvider<T>
功能:获取提供测试数据组件。
参数:
- configuration: Configuration - 配置信息。
返回值:
- DataProvider<T> - 提供测试数据的组件对象。
func shrinker(Configuration)
func shrinker(configuration: Configuration): DataShrinker<T>
功能:获取缩减测试数据的组件。
参数:
- configuration: Configuration - 配置信息。
返回值:
- DataShrinker<T> - 缩减测试数据的组件对象。
extend<T> Array<T> <: DataStrategy<T>
extend<T> Array<T> <: DataStrategy<T>
功能:为 Array 实现了 DataStrategy<T> 接口。使如下配置形式可用:
@Test[x in [1,2,3]]
func test(x: Int64) {}
extend<T> Range<T> <: DataStrategy<T>
extend<T> Range<T> <: DataStrategy<T>
功能:为 Range 实现了 DataStrategy<T> 接口。使如下配置形式可用:
@Test[x in (0..5)]
func test(x: Int64) {}
interface Generator<T>
public interface Generator<T> {
func next(): T
}
功能:生成器生成 T 类型的值。
func next()
func next(): T
功能:获取生成出来的 T 类型的值。
返回值:
- T - 生成的 T 类型的值。
interface Measurement
public interface Measurement {
func measure(f: () -> Unit): Float64
func toString(f: Float64): String
}
功能:在性能测试过程中可以收集和分析各种数据的接口。性能测试框架使用的特定实例由 @Configure
宏的 measurement
参数指定。
func measure(() -> Unit)
func measure(f: () -> Unit): Float64
功能: 返回将用于统计分析的测量数据的表示。
参数:
- f: () -> Unit - 是一个 lambda,应该测量它的执行信息。
返回值:
- Float64 - 测量得到的数据。
func toString(Float64)
func toString(f: Float64): String
功能:将测量数据的浮点表示转换为将在性能测试输出中使用的字符串。
参数:
- f: Float64 - 测量数据的浮点表示。
返回值:
- String - 按规则转换后的字符串。
interface Shrink<T>
public interface Shrink<T> {
func shrink(): Iterable<T>
}
功能:将 T 类型的值缩减到多个“更小”的值。
func shrink()
func shrink(): Iterable<T>
功能:将该值缩小为一组可能的“较小”值。
返回值:
- Iterable<T> - 一组可能的“较小”值的迭代器。
extend Bool <: Shrink<Bool>
extend Bool <: Shrink<Bool>
extend Float16 <: Shrink<Float16>
extend Float16 <: Shrink<Float16>
功能:为 Float16 实现了 Shrink<T> 接口。
extend Float32 <: Shrink<Float32>
extend Float32 <: Shrink<Float32>
功能:为 Float32 实现了 Shrink<T> 接口。
extend Float64 <: Shrink<Float64>
extend Float64 <: Shrink<Float64>
功能:为 Float64 实现了 Shrink<T> 接口。
extend Int16 <: Shrink<Int16>
extend Int16 <: Shrink<Int16>
extend Int32 <: Shrink<Int32>
extend Int32 <: Shrink<Int32>
extend Int64 <: Shrink<Int64>
extend Int64 <: Shrink<Int64>
extend Int8 <: Shrink<Int8>
extend Int8 <: Shrink<Int8>
extend IntNative <: Shrink<IntNative>
extend IntNative <: Shrink<IntNative>
功能:为 IntNative 实现了 Shrink<T> 接口。
extend Ordering <: Shrink<Ordering>
extend Ordering <: Shrink<Ordering>
功能:为 Ordering 实现了 Shrink<T> 接口。
extend Rune <: Shrink<Rune>
extend Rune <: Shrink<Rune>
extend String <: Shrink<String>
extend String <: Shrink<String>
extend UInt16 <: Shrink<UInt16>
extend UInt16 <: Shrink<UInt16>
extend UInt32 <: Shrink<UInt32>
extend UInt32 <: Shrink<UInt32>
extend UInt64 <: Shrink<UInt64>
extend UInt64 <: Shrink<UInt64>
extend UInt8 <: Shrink<UInt8>
extend UInt8 <: Shrink<UInt8>
extend UIntNative <: Shrink<UIntNative>
extend UIntNative <: Shrink<UIntNative>
功能:为 UIntNative 实现了 Shrink<T> 接口。
extend Unit <: Shrink<Unit>
extend Unit <: Shrink<Unit>
extend<T> Array<T> <: Shrink<Array<T>> where T <: Shrink<T>
extend<T> Array<T> <: Shrink<Array<T>> where T <: Shrink<T>
功能:为 Array<T> 实现了 Shrink<Array<T>> 接口,且 T 需实现 Shrink<T> 接口。
extend<T> Option<T> <: Shrink<Option<T>> where T <: Shrink<T>
extend<T> Option<T> <: Shrink<Option<T>> where T <: Shrink<T>
功能:为 Option<T> 实现了 Shrink<Option<T>> 接口,且 T 需实现 Shrink<T> 接口。
interface TestClass
public interface TestClass {
func asTestSuite(): TestSuite
}
功能:提供创建 TestSuite 的方法。
func asTestSuite()
func asTestSuite(): TestSuite
功能:创建 TestSuite 的方法。
返回值:
- TestSuite - 测试套对象。