diff options
| author | a14m <[email protected]> | 2020-12-10 21:31:16 +0000 |
|---|---|---|
| committer | a14m <[email protected]> | 2020-12-10 21:31:16 +0000 |
| commit | fe3c74d73728de8c732af6982aad2d19e3f61373 (patch) | |
| tree | 35f07cdcf823d03316e803d79bd25d8a7272a378 /CLI/ruby/spec | |
| parent | b4e9a712549dba1326aa680157574e946e1faa85 (diff) | |
| parent | 88ec97f698f5ba68ad2a4be0f45cefa24a3f8934 (diff) | |
Merge branch 'feature/ruby/seed' into 'master'
Feature/ruby/seed
See merge request a14m/game-of-life!6
Diffstat (limited to 'CLI/ruby/spec')
| -rw-r--r-- | CLI/ruby/spec/game_of_life/generators/seed_spec.rb | 88 | ||||
| -rw-r--r-- | CLI/ruby/spec/game_of_life_spec.rb | 5 |
2 files changed, 88 insertions, 5 deletions
diff --git a/CLI/ruby/spec/game_of_life/generators/seed_spec.rb b/CLI/ruby/spec/game_of_life/generators/seed_spec.rb index 17037e6..b9f9ed2 100644 --- a/CLI/ruby/spec/game_of_life/generators/seed_spec.rb +++ b/CLI/ruby/spec/game_of_life/generators/seed_spec.rb @@ -2,9 +2,91 @@ RSpec.describe GameOfLife::Generators::Seed do describe ".new" do - it "raises NotImplementedError" do - options = { "seed" => 1337, "width" => 1, "height" => 1 } - expect { described_class.new(options) }.to raise_error(NotImplementedError) + it "returns a GameOfLife::Universe" do + options = { "seed" => 1, "width" => 1, "height" => 1 } + expect(described_class.new(options)).to be_a GameOfLife::Universe + end + + context "when seed => 1" do + it "returns the same universe for width => 10, height => 1" do + options = { "seed" => 1, "width" => 10, "height" => 1 } + stub_const("GameOfLife::Cell::LIVE_CELL", "X") + stub_const("GameOfLife::Cell::DEAD_CELL", ".") + + universe = "..X..X.XXX" + expect(described_class.new(options).to_s).to eq universe + end + + it "returns the same universe for width => 20, height => 1" do + options = { "seed" => 1, "width" => 20, "height" => 1 } + stub_const("GameOfLife::Cell::LIVE_CELL", "X") + stub_const("GameOfLife::Cell::DEAD_CELL", ".") + + universe = "..X..X.XXXXX.X..XX.." + expect(described_class.new(options).to_s).to eq universe + end + + it "returns the same universe for width => 20, height => 2" do + options = { "seed" => 1, "width" => 20, "height" => 2 } + stub_const("GameOfLife::Cell::LIVE_CELL", "X") + stub_const("GameOfLife::Cell::DEAD_CELL", ".") + + universe = "..X..X.XXXXX.X..XX..\n" \ + "...X.XX.X.X.XXX.X.XX" + expect(described_class.new(options).to_s).to eq universe + end + + it "returns the same universe for width => 20, height => 3" do + options = { "seed" => 1, "width" => 20, "height" => 3 } + stub_const("GameOfLife::Cell::LIVE_CELL", "X") + stub_const("GameOfLife::Cell::DEAD_CELL", ".") + + universe = "..X..X.XXXXX.X..XX..\n" \ + "...X.XX.X.X.XXX.X.XX\n" \ + "X........X...XXXXXXX" + expect(described_class.new(options).to_s).to eq universe + end + end + + context "when seed => 2" do + it "returns the same universe for width => 10, height => 1" do + options = { "seed" => 2, "width" => 10, "height" => 1 } + stub_const("GameOfLife::Cell::LIVE_CELL", "X") + stub_const("GameOfLife::Cell::DEAD_CELL", ".") + + universe = "X.X.X....X" + expect(described_class.new(options).to_s).to eq universe + end + + it "returns the same universe for width => 20, height => 1" do + options = { "seed" => 2, "width" => 20, "height" => 1 } + stub_const("GameOfLife::Cell::LIVE_CELL", "X") + stub_const("GameOfLife::Cell::DEAD_CELL", ".") + + universe = "X.X.X....X.XXX..X..X" + expect(described_class.new(options).to_s).to eq universe + end + + it "returns the same universe for width => 20, height => 2" do + options = { "seed" => 2, "width" => 20, "height" => 2 } + stub_const("GameOfLife::Cell::LIVE_CELL", "X") + stub_const("GameOfLife::Cell::DEAD_CELL", ".") + + universe = "X.X.X....X.XXX..X..X\n" \ + "XX.X.XX.XXXX....XXXX" + expect(described_class.new(options).to_s).to eq universe + end + + it "returns the same universe for width => 20, height => 3" do + options = { "seed" => 2, "width" => 20, "height" => 3 } + stub_const("GameOfLife::Cell::LIVE_CELL", "X") + stub_const("GameOfLife::Cell::DEAD_CELL", ".") + + universe = "X.X.X....X.XXX..X..X\n" \ + "XX.X.XX.XXXX....XXXX\n" \ + "X...X.X..XX....X..X." + expect(described_class.new(options).to_s).to eq universe + end end end end diff --git a/CLI/ruby/spec/game_of_life_spec.rb b/CLI/ruby/spec/game_of_life_spec.rb index b4c1710..6564327 100644 --- a/CLI/ruby/spec/game_of_life_spec.rb +++ b/CLI/ruby/spec/game_of_life_spec.rb @@ -48,11 +48,12 @@ RSpec.describe GameOfLife do described_class.generate(options) end - it "calls Generators::Seed.new (and raises error)" do + it "calls Generators::Seed.new" do allow(described_class::Cell).to receive(:const_set) allow(described_class).to receive(:const_set) - expect { described_class.generate(options) }.to raise_error(NotImplementedError) + expect(described_class::Generators::Seed).to receive(:new).with(options) + described_class.generate(options) end end end |
