sonic-pi
https://github.com/sonic-pi-net/sonic-pi
C++
Code. Music. Live.
Minitest::Benchmark#assert_performance_constant
Runs the given +work+ and asserts that the times gathered fit to
match a constant rate (eg, linear slope == 0) within a given
+threshold+. Note: because we're testing for a slope of 0, R^2
is not a good determining factor for the fit, so the threshold
is applied against the slope itself. As such, you probably want
to tighten it from the default.
See http://www.graphpad.com/curvefit/goodness_of_fit.htm for
more details.
Fit is calculated by #fit_linear.
Ranges are specified by ::bench_range.
Eg:
def bench_algorithm
assert_performance_constant 0.9999 do |n|
@obj.algorithm(n)
end
endEdit
git clone [email protected]:sonic-pi-net/sonic-pi.git
cd sonic-pi
open app/server/ruby/vendor/minitest-5.18.1/lib/minitest/benchmark.rb
Contribute
# Make a new branchgit checkout -b -your-name--update-docs-Minitest--Benchmark-assert_performance_constant-for-pr
# Commit to gitgit add app/server/ruby/vendor/minitest-5.18.1/lib/minitest/benchmark.rbgit commit -m "better docs for Minitest::Benchmark#assert_performance_constant"
# Open pull requestgem install hub # on a mac you can `brew install hub`
hub fork
git push <your name> -your-name--update-docs-Minitest--Benchmark-assert_performance_constant-for-pr
hub pull-request
# Celebrate!