diff options
| author | a14m <[email protected]> | 2020-12-10 21:15:53 +0100 |
|---|---|---|
| committer | a14m <[email protected]> | 2020-12-10 21:15:53 +0100 |
| commit | db5499043df24548d2a6a23e45f23daae8de43ee (patch) | |
| tree | a4785c6f99ac8c9fa9f2f84a985eb6d34ee1b693 /CLI/ruby | |
| parent | 780f85fc9d729735b192db866ad9a19484dc5743 (diff) | |
Add the seed generator testing
Diffstat (limited to 'CLI/ruby')
| -rw-r--r-- | CLI/ruby/spec/game_of_life/generators/seed_spec.rb | 88 |
1 files changed, 85 insertions, 3 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 |
