From eeb4f8366c118dc8bf00715c834275ecb2610828 Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Sun, 11 Dec 2016 11:11:18 -0500 Subject: [PATCH] [2016][ruby][11.0] read state from input --- 2016/ruby/day_11.rb | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 2016/ruby/day_11.rb diff --git a/2016/ruby/day_11.rb b/2016/ruby/day_11.rb new file mode 100644 index 0000000..7fe53fd --- /dev/null +++ b/2016/ruby/day_11.rb @@ -0,0 +1,31 @@ +class State + attr_reader :floors, :elevator + + def initialize(input) + @floors = input.lines.reverse.map.with_index {|line, index| + _, e, *items = line.split(/\s+/) + @elevator = index if e == ?E + items.reject {|item| item == ?. } + } + end +end + +require 'minitest/autorun' + +class TestDay11 < Minitest::Test + def test_initialize + input = <<-INPUT +F4 . . . . . +F3 . . . LG . +F2 . HG . . . +F1 E . HM . LM + INPUT + + state = State.new(input) + assert_equal 4, state.floors.size + assert_equal 0, state.elevator + + floor = state.floors[0] + assert_equal 2, floor.size + end +end