diff options
| author | Tom Black <[email protected]> | 2019-01-06 02:22:14 -0800 |
|---|---|---|
| committer | Tom Black <[email protected]> | 2019-01-06 02:22:14 -0800 |
| commit | 9994b770686428ebbde636081156abb5a50dc6c2 (patch) | |
| tree | 745d89e4d017b4b6dda4056d98c6a8fbcc956a72 /test/renderable_spec.rb | |
| parent | 742bb574dc506fbb7a8d1774c44736ad0e228c54 (diff) | |
| download | ruby2d-9994b770686428ebbde636081156abb5a50dc6c2.tar.gz ruby2d-9994b770686428ebbde636081156abb5a50dc6c2.zip | |
Tests and fixes to the public API
Namely to ensure attribute getters/setters are consistent
Diffstat (limited to 'test/renderable_spec.rb')
| -rw-r--r-- | test/renderable_spec.rb | 177 |
1 files changed, 93 insertions, 84 deletions
diff --git a/test/renderable_spec.rb b/test/renderable_spec.rb index 1352d5b..2f855b1 100644 --- a/test/renderable_spec.rb +++ b/test/renderable_spec.rb @@ -2,69 +2,78 @@ require 'ruby2d' RSpec.describe Ruby2D::Renderable do + # Create and use a fresh class to ensure nothing is overridden + class SomeShape + include Renderable + def initialize(x: 0, y: 0, width: 100, height: 100) + @x, @y, @width, @height = x, y, width, height + end + end + it "allows colors to be set on objects" do - quad = Quad.new - - quad.color = 'red' - expect(quad.color.r).to eq(1) - - quad.color = [0.9, 0.8, 0.7, 0.6] - expect(quad.color.r).to eq(0.9) - expect(quad.color.g).to eq(0.8) - expect(quad.color.b).to eq(0.7) - expect(quad.color.a).to eq(0.6) - - quad.color.r = 0.1 - quad.color.g = 0.2 - quad.color.b = 0.3 - quad.color.a = 0.4 - expect(quad.color.r).to eq(0.1) - expect(quad.color.g).to eq(0.2) - expect(quad.color.b).to eq(0.3) - expect(quad.color.a).to eq(0.4) - - quad.r = 0.5 - quad.g = 0.6 - quad.b = 0.7 - quad.a = 0.8 - expect(quad.r).to eq(0.5) - expect(quad.g).to eq(0.6) - expect(quad.b).to eq(0.7) - expect(quad.a).to eq(0.8) + shape = SomeShape.new + + shape.color = 'red' + expect(shape.color.r).to eq(1) + + shape.color = [0.9, 0.8, 0.7, 0.6] + expect(shape.color.r).to eq(0.9) + expect(shape.color.g).to eq(0.8) + expect(shape.color.b).to eq(0.7) + expect(shape.color.a).to eq(0.6) + + shape.color.r = 0.1 + shape.color.g = 0.2 + shape.color.b = 0.3 + shape.color.a = 0.4 + expect(shape.color.r).to eq(0.1) + expect(shape.color.g).to eq(0.2) + expect(shape.color.b).to eq(0.3) + expect(shape.color.a).to eq(0.4) + + shape.r = 0.5 + shape.g = 0.6 + shape.b = 0.7 + shape.a = 0.8 + expect(shape.r).to eq(0.5) + expect(shape.g).to eq(0.6) + expect(shape.b).to eq(0.7) + expect(shape.a).to eq(0.8) end it "allows British English spelling of color (colour)" do - quad = Quad.new - - quad.colour = 'blue' - expect(quad.color.r).to eq(0) - - quad.colour = [0.1, 0.2, 0.3, 0.4] - expect(quad.color.r).to eq(0.1) - expect(quad.color.g).to eq(0.2) - expect(quad.color.b).to eq(0.3) - expect(quad.color.a).to eq(0.4) - - quad.colour.r = 0.9 - quad.colour.g = 0.8 - quad.colour.b = 0.7 - quad.colour.a = 0.6 - expect(quad.colour.r).to eq(0.9) - expect(quad.colour.g).to eq(0.8) - expect(quad.colour.b).to eq(0.7) - expect(quad.colour.a).to eq(0.6) - expect(quad.color.r).to eq(0.9) - expect(quad.color.g).to eq(0.8) - expect(quad.color.b).to eq(0.7) - expect(quad.color.a).to eq(0.6) - expect(quad.r).to eq(0.9) - expect(quad.g).to eq(0.8) - expect(quad.b).to eq(0.7) - expect(quad.a).to eq(0.6) + shape = SomeShape.new + + shape.colour = 'blue' + expect(shape.color.r).to eq(0) + + shape.colour = [0.1, 0.2, 0.3, 0.4] + expect(shape.color.r).to eq(0.1) + expect(shape.color.g).to eq(0.2) + expect(shape.color.b).to eq(0.3) + expect(shape.color.a).to eq(0.4) + + shape.colour.r = 0.9 + shape.colour.g = 0.8 + shape.colour.b = 0.7 + shape.colour.a = 0.6 + expect(shape.colour.r).to eq(0.9) + expect(shape.colour.g).to eq(0.8) + expect(shape.colour.b).to eq(0.7) + expect(shape.colour.a).to eq(0.6) + expect(shape.color.r).to eq(0.9) + expect(shape.color.g).to eq(0.8) + expect(shape.color.b).to eq(0.7) + expect(shape.color.a).to eq(0.6) + expect(shape.r).to eq(0.9) + expect(shape.g).to eq(0.8) + expect(shape.b).to eq(0.7) + expect(shape.a).to eq(0.6) end describe "#contains?" do - square = Square.new(x: 1, y: 1, size: 2) + + shape = SomeShape.new(x: 1, y: 1, width: 2, height: 2) # Grid looks like this, 2x2 square at point (1, 1): # @@ -79,36 +88,36 @@ RSpec.describe Ruby2D::Renderable do # | | | | | # 4 +--+--+--+--+ - it "returns true if point is inside the rectangle" do - expect(square.contains?(1, 1)).to be true - expect(square.contains?(2, 1)).to be true - expect(square.contains?(3, 1)).to be true - expect(square.contains?(1, 2)).to be true - expect(square.contains?(2, 2)).to be true - expect(square.contains?(3, 2)).to be true - expect(square.contains?(1, 3)).to be true - expect(square.contains?(2, 3)).to be true - expect(square.contains?(3, 3)).to be true + it "returns true if point is inside the shape" do + expect(shape.contains?(1, 1)).to be true + expect(shape.contains?(2, 1)).to be true + expect(shape.contains?(3, 1)).to be true + expect(shape.contains?(1, 2)).to be true + expect(shape.contains?(2, 2)).to be true + expect(shape.contains?(3, 2)).to be true + expect(shape.contains?(1, 3)).to be true + expect(shape.contains?(2, 3)).to be true + expect(shape.contains?(3, 3)).to be true end - it "returns false if point is outside the rectangle" do - # Clockwise around the square - expect(square.contains?(0, 0)).to be false - expect(square.contains?(1, 0)).to be false - expect(square.contains?(2, 0)).to be false - expect(square.contains?(3, 0)).to be false - expect(square.contains?(4, 0)).to be false - expect(square.contains?(4, 1)).to be false - expect(square.contains?(4, 2)).to be false - expect(square.contains?(4, 3)).to be false - expect(square.contains?(4, 4)).to be false - expect(square.contains?(3, 4)).to be false - expect(square.contains?(2, 4)).to be false - expect(square.contains?(1, 4)).to be false - expect(square.contains?(0, 4)).to be false - expect(square.contains?(0, 3)).to be false - expect(square.contains?(0, 2)).to be false - expect(square.contains?(0, 1)).to be false + it "returns false if point is outside the shape" do + # Clockwise around the shape + expect(shape.contains?(0, 0)).to be false + expect(shape.contains?(1, 0)).to be false + expect(shape.contains?(2, 0)).to be false + expect(shape.contains?(3, 0)).to be false + expect(shape.contains?(4, 0)).to be false + expect(shape.contains?(4, 1)).to be false + expect(shape.contains?(4, 2)).to be false + expect(shape.contains?(4, 3)).to be false + expect(shape.contains?(4, 4)).to be false + expect(shape.contains?(3, 4)).to be false + expect(shape.contains?(2, 4)).to be false + expect(shape.contains?(1, 4)).to be false + expect(shape.contains?(0, 4)).to be false + expect(shape.contains?(0, 3)).to be false + expect(shape.contains?(0, 2)).to be false + expect(shape.contains?(0, 1)).to be false end end |
