Sha256: 2eae4c1c7bde5d4ba7f47f660a881db8cc71a6e2bc2287bb1829593e6903db9e

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

require 'test/unit'
require 'ccsv'
require 'benchmark'

# Yeah, I know.
begin
  require 'csv'
  require 'rubygems'
  require 'fastercsv'
  require 'lightcsv'
  require 'csvscan'

  module CSVScan
    def self.foreach(file, &block)
      open(file) do |f|
        scan(f, &block)
      end
    end
  end
  
rescue LoadError
end

class TestCcsv < Test::Unit::TestCase
  
  def setup
    @dir = "#{File.dirname(__FILE__)}/../"
  end
  
  def test_should_raise
    assert_raises(RuntimeError) do
      Ccsv.foreach('fdssfd') do
      end
    end
  end
  
  def test_accuracy
    ccsv = []
    file = @dir + "data_small.csv"
    Ccsv.foreach(file) do |values|
      ccsv << values.dup
    end
    csv = []
    CSV.foreach(file) do |values|
      csv << values
    end    
    assert_equal csv, ccsv
  end
  
  def test_speed
    [Ccsv, FasterCSV, CSV].each do |klass| # CSVScan, LightCsv, 
      Benchmark.bm do |x|
        x.report(klass.name) do 
          klass.foreach(@dir + "data.csv") do |values| end
        end
      end
    end
  end
  
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
ccsv-e-0.1.0 test/unit/test_ccsv.rb
ccsv-0.1 test/unit/test_ccsv.rb