diff --git a/lib/transport.rb b/lib/transport.rb deleted file mode 100644 index d930638..0000000 --- a/lib/transport.rb +++ /dev/null @@ -1,11 +0,0 @@ -def transport(source) - array = source.split("\n").map {|s| s.split(" ")} - rows_count = array.first.count - - transported_array = [] - 0.upto(rows_count - 1) do |i| - transported_array << array.map {|a| a[i]} - end - - transported_array.map {|s| s.join(" ")}.join("\n") -end \ No newline at end of file diff --git a/lib/transpose.rb b/lib/transpose.rb new file mode 100644 index 0000000..8665afa --- /dev/null +++ b/lib/transpose.rb @@ -0,0 +1,4 @@ +def transpose(source) + matrix = source.split("\n").map {|s| s.split(" ")} + matrix.transpose.map {|s| s.join(" ")}.join("\n") +end diff --git a/test/transport_test.rb b/test/transport_test.rb deleted file mode 100644 index 64126c8..0000000 --- a/test/transport_test.rb +++ /dev/null @@ -1,14 +0,0 @@ -require 'minitest/autorun' -require './lib/transport' - -class TransportTest < MiniTest::Test - def test_transport - input = "1 2 3\n4 5 6\n7 8 9" - output = "1 4 7\n2 5 8\n3 6 9" - assert_equal output, transport(input) - - input = "1 2 3\n4 5 6\n7 8 9\n10 11 12" - output = "1 4 7 10\n2 5 8 11\n3 6 9 12" - assert_equal output, transport(input) - end -end \ No newline at end of file diff --git a/test/transpose_test.rb b/test/transpose_test.rb new file mode 100644 index 0000000..74ab788 --- /dev/null +++ b/test/transpose_test.rb @@ -0,0 +1,16 @@ +require 'minitest/autorun' +require './lib/transpose' + +class TransposeTest < MiniTest::Test + def test_transpose_3x3 + input = "1 2 3\n4 5 6\n7 8 9" + output = "1 4 7\n2 5 8\n3 6 9" + assert_equal output, transpose(input) + end + + def test_transpose_3x4 + input = "1 2 3\n4 5 6\n7 8 9\n10 11 12" + output = "1 4 7 10\n2 5 8 11\n3 6 9 12" + assert_equal output, transpose(input) + end +end