transferred Code Ocean from original repository to GitHub

This commit is contained in:
Hauke Klement
2015-01-22 09:51:49 +01:00
commit 4cbf9970b1
683 changed files with 11979 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
def fibonacci(n)
end

View File

@@ -0,0 +1,15 @@
require './exercise'
describe '#fibonacci' do
it 'is defined' do
expect { method(:fibonacci) }.not_to raise_error
end
it 'has the correct arity' do
expect(method(:fibonacci).arity).to eq(1)
end
it 'returns a number' do
expect(fibonacci(1)).to be_an(Integer)
end
end

View File

@@ -0,0 +1,9 @@
require './exercise'
describe '#fibonacci' do
it 'works recursively' do
@n = 16
expect(self).to receive(:fibonacci).and_call_original.at_least(@n ** 2).times
fibonacci(@n)
end
end

View File

@@ -0,0 +1,16 @@
require './exercise'
require './reference'
describe '#fibonacci' do
SAMPLE_COUNT = 32
let(:reference) { Class.new.extend(Reference) }
SAMPLE_COUNT.times do |i|
instance_eval do
it "obtains the correct result for input #{i}" do
expect(fibonacci(i)).to eq(reference.fibonacci(i))
end
end
end
end

View File

@@ -0,0 +1,5 @@
module Reference
def fibonacci(n)
n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2)
end
end