# coding: utf-8
require 'minitest/autorun'
PROGRAM =-> {
###
gets.split(/(\d)(?!\d)/).each_slice(2){|s,i|s.chars.map{|c|$><<c*i.to_i}}
###
}
describe PROGRAM do
def test_case_1
assert_equal 'aaabbbccccc', execute('ab3c5')
end
def test_case_2
assert_equal 'bbb', execute('a0b3')
end
def test_case_3
assert_equal '111b', execute('13b1')
end
def test_case_4
assert_equal 'aaa111b', execute('a13b1')
end
def test_case_5
assert_equal 'aaa111222b', execute('a123b1')
end
def test_case_6
assert_equal 'aaaaab', execute('aa2a1b1')
end
def execute(input)
capture_stdout(input){ PROGRAM[] }
end
end
# capture STDIN/STDOUT for testing purposes
require 'stringio'
module Kernel
def capture_stdout(console_input = '')
$stdin = StringIO.new(console_input)
out = StringIO.new
$stdout = out
yield
return out.string.chomp
ensure
$stdout = STDOUT
$stdin = STDIN
end
end
IyBjb2Rpbmc6IHV0Zi04CnJlcXVpcmUgJ21pbml0ZXN0L2F1dG9ydW4nCgpQUk9HUkFNID0tPiB7CiMjIwpnZXRzLnNwbGl0KC8oXGQpKD8hXGQpLykuZWFjaF9zbGljZSgyKXt8cyxpfHMuY2hhcnMubWFwe3xjfCQ+PDxjKmkudG9faX19CiMjIwp9CgpkZXNjcmliZSBQUk9HUkFNIGRvCiAgZGVmIHRlc3RfY2FzZV8xCiAgICBhc3NlcnRfZXF1YWwgJ2FhYWJiYmNjY2NjJywgZXhlY3V0ZSgnYWIzYzUnKQogIGVuZAoKICBkZWYgdGVzdF9jYXNlXzIKICAgIGFzc2VydF9lcXVhbCAnYmJiJywgZXhlY3V0ZSgnYTBiMycpICAgCiAgZW5kCgogIGRlZiB0ZXN0X2Nhc2VfMwogICAgYXNzZXJ0X2VxdWFsICcxMTFiJywgZXhlY3V0ZSgnMTNiMScpICAgCiAgZW5kCgogIGRlZiB0ZXN0X2Nhc2VfNAogICAgYXNzZXJ0X2VxdWFsICdhYWExMTFiJywgZXhlY3V0ZSgnYTEzYjEnKSAgIAogIGVuZAoKICBkZWYgdGVzdF9jYXNlXzUKICAgIGFzc2VydF9lcXVhbCAnYWFhMTExMjIyYicsIGV4ZWN1dGUoJ2ExMjNiMScpICAgCiAgZW5kCgogIGRlZiB0ZXN0X2Nhc2VfNgogICAgYXNzZXJ0X2VxdWFsICdhYWFhYWInLCBleGVjdXRlKCdhYTJhMWIxJykgICAKICBlbmQKCgogIGRlZiBleGVjdXRlKGlucHV0KQogICAgY2FwdHVyZV9zdGRvdXQoaW5wdXQpeyBQUk9HUkFNW10gfQogIGVuZAplbmQKCiMgY2FwdHVyZSBTVERJTi9TVERPVVQgZm9yIHRlc3RpbmcgcHVycG9zZXMKcmVxdWlyZSAnc3RyaW5naW8nCm1vZHVsZSBLZXJuZWwKICBkZWYgY2FwdHVyZV9zdGRvdXQoY29uc29sZV9pbnB1dCA9ICcnKQogICAgJHN0ZGluID0gU3RyaW5nSU8ubmV3KGNvbnNvbGVfaW5wdXQpCiAgICBvdXQgPSBTdHJpbmdJTy5uZXcKICAgICRzdGRvdXQgPSBvdXQKICAgIHlpZWxkCiAgICByZXR1cm4gb3V0LnN0cmluZy5jaG9tcAogIGVuc3VyZQogICAgJHN0ZG91dCA9IFNURE9VVAogICAgJHN0ZGluID0gU1RESU4KICBlbmQKZW5kCgo=