basis

package
v0.0.0-...-a7ffdd2 Latest Latest
Warning

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

Go to latest
Published: May 27, 2022 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultNForBenchmark uint8 = 30

DefaultNForBenchmark - n c которым функция проверяется при выполнении бенчмарка

View Source
var DefaultPrecession = 0.001

DefaultPrecession - максимальная допустимая погрешность по умолчанию - 0.1%

Functions

func AssertIsValidSuperFunc

func AssertIsValidSuperFunc(t *testing.T, x1 float64, x2 float64, n uint8, impl SuperFuncType, precession float64)

AssertIsValidSuperFunc - вспомогательное утверждение для сравнения результатов float64, использует IsEqualWithPrecession для сравнения с допустимой погрешностью для сравнения использует вычисляемый эталон на основе базовой функции

func AssertIsValidSuperFuncF

func AssertIsValidSuperFuncF(t *testing.T, reference float64, x1 float64, x2 float64, n uint8, impl SuperFuncType, precession float64)

AssertIsValidSuperFuncF - вспомогательное утверждение для сравнения результатов float64, использует IsEqualWithPrecession для сравнения с допустимой погрешностью для сравнения использует заранее вычисленное значение [reference]

func BasicSuperFuncImpl

func BasicSuperFuncImpl(x1 float64, x2 float64, n uint8) float64

BasicSuperFuncImpl - начальная не оптимизированная версия функции описывает основной инвариантный алгоритм: 1. `n==0` -> `x1` 2. `n==1` -> `x1 * x2` 3. `n>1` -> `f(x1, x2, n-2) * f(x1, x2, n-1)`

func IsEqualWithPrecession

func IsEqualWithPrecession(reference float64, actual float64, precession float64) bool

IsEqualWithPrecession IsEqualWithDelta вспомогательная функция для сравнения float64 с учетом допустимой точности вычислений относительно эталона, например погрешность 1% `IsEqualWithPrecession(x1,x2,0.01)`

func SuperFuncBenchmark

func SuperFuncBenchmark(impl SuperFuncType, b *testing.B)

SuperFuncBenchmark - обобщенный бенчмарк для SuperFuncType использование в своем коде: `func BenchmarkMySuperFunc(b *testing.B) { SuperFuncBenchmark(MyFunc, b) }`

func SuperFuncTestCase

func SuperFuncTestCase(impl SuperFuncType, t *testing.T)

SuperFuncTestCase - стандартный набор тестов для тестирования переданного экземпляра SuperFuncType должен в обязательном порядке выполняться для всех реализаций используется достаточно просто: `func TestMySuperFunc(t *testing.T) { SuperFuncTestCase(MyFunc, t) }`

Types

type SuperFuncType

type SuperFuncType func(x1 float64, x2 float64, n uint8) float64

SuperFuncType - сигнатура типа для реализуемой функции

Jump to

Keyboard shortcuts

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