Instructions
Create a Circle data class with a radius attribute and add methods:
diameter- returns radius * 2area- returns Math::PI * radius ** 2
You can add methods to Data classes by reopening or using a block:
ruby
Circle = Data.define(:radius) do
def diameter
radius * 2
end
end
Hints:
- Use Data.define(:radius) do ... end
- Define methods inside the block
- Use Math::PI for pi
Your Code
Circle = Data.define(:radius) do
def diameter
radius * 2
end
def area
Math::PI * radius ** 2
end
end
RSpec.describe "Circle Data class" do
let(:circle) { Circle.new(radius: 5) }
it "has a radius" do
expect(circle.radius).to eq(5)
end
it "calculates diameter" do
expect(circle.diameter).to eq(10)
end
it "calculates area" do
expect(circle.area).to be_within(0.01).of(78.54)
end
end
Results
Click "Run Tests" to see results