Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
require 'test/unit'
require 'csv'
class FillBlankTest < Test::Unit::TestCase
def fill_blank(csv_text)
CSV.parse(csv_text).inject([]) { |results, row|
results << row.zip(results.last || []).map { |curr, prev| curr || prev }
}
.map { |row| row.join(',') }
.join("\n")
end
def test_fill_blank
input = <<-TEXT
日本,東京,新宿
,,渋谷
,兵庫,神戸
アメリカ,カリフォルニア,サンフランシスコ
,,ロサンゼルス
TEXT
output = <<-TEXT.chomp
日本,東京,新宿
日本,東京,渋谷
日本,兵庫,神戸
アメリカ,カリフォルニア,サンフランシスコ
アメリカ,カリフォルニア,ロサンゼルス
TEXT
assert_equal output, fill_blank(input)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment