![show/hide quicksearch [+]](../../../../images/find.png)
Load data from file.
@param [String] file_name full path to test data file.
File format is automatically detected from filename extension.
@raise [ArgumentError] if `file_name` is not supported file format. @see load_csv @see load_tsv @api private
 
               # File test-unit-3.3.7/lib/test/unit/data.rb, line 218
def load(file_name)
  case File.extname(file_name).downcase
  when ".csv"
    load_csv(file_name)
  when ".tsv"
    load_tsv(file_name)
  else
    raise ArgumentError, "unsupported file format: <#{file_name}>"
  end
end
             
            Load data from CSV file.
There are 2 types of CSV file as following examples. First, there is a header on first row and it's first column is “label”. Another, there is no header in the file.
@example Load data from CSV file with header
# test-data.csv: # label,expected,target # empty string,true,"" # plain string,false,hello # load_data("/path/to/test-data.csv") def test_empty?(data) assert_equal(data["expected"], data["target"].empty?) end
@example Load data from CSV file without header
# test-data-without-header.csv: # empty string,true,"" # plain string,false,hello # load_data("/path/to/test-data-without-header.csv") def test_empty?(data) expected, target = data assert_equal(expected, target.empty?) end
@api private
 
               # File test-unit-3.3.7/lib/test/unit/data.rb, line 258
def load_csv(file_name)
  require 'csv'
  first_row = true
  header = nil
  CSV.foreach(file_name) do |row|
    if first_row
      first_row = false
      if row.first == "label"
        header = row[1..-1]
        next
      end
    end
    set_test_data(header, row)
  end
end
             
            Load data from TSV file.
There are 2 types of TSV file as following examples. First, there is a header on first row and it's first column is “label”. Another, there is no header in the file.
@example Load data from TSV file with header
# test-data.tsv: # label expected target # empty string true "" # plain string false hello # load_data("/path/to/test-data.tsv") def test_empty?(data) assert_equal(data["expected"], data["target"].empty?) end
@example Load data from TSV file without header
# test-data-without-header.tsv: # empty string true "" # plain string false hello # load_data("/path/to/test-data-without-header.tsv") def test_empty?(data) expected, target = data assert_equal(expected, target.empty?) end
@api private
 
               # File test-unit-3.3.7/lib/test/unit/data.rb, line 304
def load_tsv(file_name)
  require "csv"
  if CSV.const_defined?(:VERSION)
    first_row = true
    header = nil
    CSV.foreach(file_name, :col_sep => "\t") do |row|
      if first_row
        first_row = false
        if row.first == "label"
          header = row[1..-1]
          next
        end
      end
      set_test_data(header, row)
    end
  else
    # for old CSV library
    first_row = true
    header = nil
    CSV.open(file_name, "r", "\t") do |row|
      if first_row
        first_row = false
        if row.first == "label"
          header = row[1..-1]
          next
        end
      end
      set_test_data(header, row)
    end
  end
end