aoc_omni/ruby/2025/7/test/test_laboratories.rb
2025-12-07 07:51:28 -05:00

45 lines
1.1 KiB
Ruby

require "minitest/autorun"
require "laboratories"
class TestLaboratories < Minitest::Test
def test_split_count
lab = Laboratories.for <<-END
.......S.......
...............
.......^.......
...............
......^.^......
...............
.....^.^.^.....
...............
....^.^...^....
...............
...^.^...^.^...
...............
..^...^.....^..
...............
.^.^.^.^.^...^.
...............
END
assert_equal(21, lab.split_count)
end
end
class TestLayer < Minitest::Test
def test_split_beams
layer = Laboratories::Layer.for(".S.")
assert_equal([[false, true, false], 0], layer.split_beams([false, false, false]))
layer = Laboratories::Layer.for("..")
assert_equal([[true, false], 0], layer.split_beams([true, false]))
layer = Laboratories::Layer.for(".^.")
assert_equal([[true, false, true], 1], layer.split_beams([false, true, false]))
layer = Laboratories::Layer.for("^.^")
assert_equal([[false, true, false], 0], layer.split_beams([false, true, false]))
assert_equal([[false, true, false], 2], layer.split_beams([true, false, true]))
end
end