From b2233a989b363d684bbc0f3de196c198bcab62e4 Mon Sep 17 00:00:00 2001 From: chanibarin Date: Wed, 6 Dec 2017 14:38:25 +0900 Subject: [PATCH] refactoring transpose method --- lib/transport.rb | 11 ----------- lib/transpose.rb | 5 +++++ test/{transport_test.rb => transpose_test.rb} | 12 ++++++------ 3 files changed, 11 insertions(+), 17 deletions(-) delete mode 100644 lib/transport.rb create mode 100644 lib/transpose.rb rename test/{transport_test.rb => transpose_test.rb} (52%) 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..9d8d47d --- /dev/null +++ b/lib/transpose.rb @@ -0,0 +1,5 @@ +def transpose(matrix_text) + source_array = matrix_text.lines.map(&:split) + source_array.transpose.map{ |array| array.join(" ")}.join("\n") +end + diff --git a/test/transport_test.rb b/test/transpose_test.rb similarity index 52% rename from test/transport_test.rb rename to test/transpose_test.rb index 64126c8..6f3a825 100644 --- a/test/transport_test.rb +++ b/test/transpose_test.rb @@ -1,14 +1,14 @@ require 'minitest/autorun' -require './lib/transport' +require './lib/transpose' -class TransportTest < MiniTest::Test - def test_transport +class TransposeTest < MiniTest::Test + def test_transpose 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) + assert_equal output, transpose(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) + assert_equal output, transpose(input) end -end \ No newline at end of file +end