Sha256: d1a99660b2ba3db831c4c2888fe9a1e7e1da406309a54b210616ca7b5d8e22a1

Contents?: true

Size: 1.82 KB

Versions: 330

Compression:

Stored size: 1.82 KB

Contents

require File.expand_path(File.join(File.dirname(__FILE__), '../..', 'test_helper.rb'))
require 'rbbt/tsv'

class TestTSVParser < Test::Unit::TestCase
  def test_flat
    TmpFile.with_file do |tmpdir|
      file = File.join(tmpdir, 'file')
      str =<<-EOF
#: :type=:flat#:sep=' '
#Key Value
a b c d e
A B C D E
      EOF
      Open.write(file, str)
      Open.open(file) do |io|
        parser = TSV::Parser.new(io, :merge => true, :zipped => true)
        parser.traverse do |k,v|
          assert v.length > 1
        end
      end
    end
  end

  def test_traverse

    content =<<-EOF
row1    a|aa|aaa    b    Id1|Id2
    EOF

    TmpFile.with_file(content) do |filename|
      TSV::Parser.traverse(Open.open(filename), :sep => /\s+/, :fields => [1], :type => :double) do |k,v|
        assert_equal ["row1"], k
        assert_equal [%w(a aa aaa)], v
      end

      TSV::Parser.traverse(Open.open(filename), :sep => /\s+/, :fields => [1], :type => :list) do |k,v|
        assert_equal "row1", k
        assert_equal ["a|aa|aaa"], v
      end

      TSV::Parser.traverse(Open.open(filename), :sep => /\s+/, :fields => [1], :type => :single) do |k,v|
        assert_equal "row1", k
        assert_equal "a|aa|aaa", v
      end

      TSV::Parser.traverse(Open.open(filename), :sep => /\s+/, :fields => [1], :type => :flat) do |k,v|
        assert_equal ["row1"], k
        assert_equal %w(a aa aaa), v
      end
    end
  end

  def test_fields
    TmpFile.with_file do |tmpdir|
      file = File.join(tmpdir, 'file')
      str =<<-EOF
#: :type=:flat#:sep=' '
#Key Value
a b c d e
A B C D E
      EOF
      Open.write(file, str)
      Open.open(file) do |io|
        parser = TSV::Parser.new(io, :merge => true, :zipped => true, :type => :double)
        parser.traverse do |k,v,f|
          assert_equal f, %w(Value)
        end
      end
    end
  end

end

Version data entries

330 entries across 330 versions & 1 rubygems

Version Path
rbbt-util-5.38.0 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.16 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.15 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.14 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.13 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.12 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.11 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.10 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.9 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.8 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.6 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.4 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.3 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.1 test/rbbt/tsv/test_parser.rb
rbbt-util-5.37.0 test/rbbt/tsv/test_parser.rb
rbbt-util-5.36.0 test/rbbt/tsv/test_parser.rb
rbbt-util-5.35.4 test/rbbt/tsv/test_parser.rb
rbbt-util-5.35.3 test/rbbt/tsv/test_parser.rb
rbbt-util-5.35.2 test/rbbt/tsv/test_parser.rb
rbbt-util-5.35.1 test/rbbt/tsv/test_parser.rb