# frozen_string_literal: true RSpec.describe GameOfLife::Plane do describe "#[]" do context "when empty" do subject { described_class.new } it "returns nil with [-1]" do expect(subject[-1]).to be_nil end it "returns nil with [0]" do expect(subject[0]).to be_nil end it "returns nil with [1]" do expect(subject[1]).to be_nil end end context "when not empty" do subject { described_class.new([0, 1, 2, 3]) } it "returns value at index" do expect(subject[0]).to eq 0 end it "returns value at -index (negative indices count backward from the end of the array)" do expect(subject[-5]).to eq 3 expect(subject[-1]).to eq 3 end it "returns value at any index (indices bigger than size cycle again from the beginning)" do expect(subject[5]).to eq 1 expect(subject[9]).to eq 1 end end end end