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