koenhandekyn/functions

View on GitHub
performance/prelude_performance.rb

Summary

Maintainability
A
1 hr
Test Coverage
$LOAD_PATH << 'lib' # File.expand_path( File.dirname(__FILE__) + '/../lib' )

require_relative '../examples/prelude_lambda'

require 'benchmark'

include PreludeLambdaUsage

[10, 100, 1000, 10000].each do |n|
  Benchmark.bm(40) do |b|
    b.report("Sum_Of_Squares(n=#{n}): ") { (100000/n).times { SumOfSquares.((1..n).to_a) } }
  end
end

[10, 100, 1000, 10000].each do |n|
  Benchmark.bm(40) do |b|
    b.report("Average(n=#{n}): ") { (100000/n).times { Average.((1..n).to_a) } }
  end
end

[10, 100, 1000, 10000].each do |n|
  Benchmark.bm(40) do |b|
    b.report("Sum.(n=#{n}): ") { (100000/n).times { Sum.((1..n).to_a) } }
  end
end

[10, 100, 1000].each do |n|
  random_array = (0..n).to_a.shuffle
  Benchmark.bm(40) do |b|
    b.report("Merge_Sort(n=#{n}): ") { (100000/n).times { MergeSort.(random_array) } }
  end
end

[10, 100, 1000].each do |n|
  random_array = (0..n).to_a.shuffle
  Benchmark.bm(40) do |b|
    b.report("Quick_Sort(n=#{n}): ") { (100000/n).times { QuickSort.(random_array) } }
    b.report("Quick_Sort/identity(n=#{n}): ") { (100000/n).times { QuickSortBy.(Id, random_array) } }
  end
end