Skip to content

Instantly share code, notes, and snippets.

@joshuastr
Created May 2, 2016 13:16
Show Gist options
  • Save joshuastr/ff0288798383dd82e4fd2f25c92cad2a to your computer and use it in GitHub Desktop.
Save joshuastr/ff0288798383dd82e4fd2f25c92cad2a to your computer and use it in GitHub Desktop.
### SETUP
require 'rspec'
### LOGIC (fix me)
class HelloWorld
def hello
@hello
end
def initialize(who)
@hello = who
puts "hello #{who}!"
end
end
# greeting = HelloWorld.new('world')
# greeting.hello
# TEST CODE (don't touch me)
describe '#hello' do
it 'returns "hello world!" when "world" is passed in' do
result = hello('world')
expect(result).to eq('hello world!')
end
end
### SETUP
require 'rspec'
### LOGIC (fix me)
# Returns the average of all the numbers in the array
def average(numbers)
sum = 0
if numbers == nil
return nil
end
if numbers.empty?
return nil
end
numbers.each do |n|
sum += n.to_f
end
sum / numbers.size
end
# puts average(nil)
#TEST CODE (don't touch me)
describe '#average' do
it 'returns nil for empty array' do
result = average([])
expect(result).to be_nil
end
it 'returns nil when nil is passed in' do
result = average(nil)
expect(result).to be_nil
end
it 'returns 4 for 3,4,5' do
result = average([3, 4, 5])
expect(result).to eq(4)
end
it 'can handle numbers represented as strings' do
result = average([10, '20', 30])
expect(result).to eq(20)
end
it 'can handle floats' do
result = average([1.0, 1.5, 2.0])
expect(result).to eq(1.5)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment