Sha256: ade014addfb3ca4efa9558024a21004f1f61f71493cf24fe221d73cda36f5e90
Contents?: true
Size: 1.38 KB
Versions: 1
Compression:
Stored size: 1.38 KB
Contents
require 'rubygems' require 'benchmark' require 'minitest/autorun' require 'each_line_reverse' require 'tempfile' class TestEachLineReverse < MiniTest::Unit::TestCase def test_each_line_reverse_block Dir[File.expand_path('../..', __FILE__) + '**/*'].each do |file| [nil, $/, 'e', ' '].each do |sep| next if File.directory?(file) # Without block lines = File.open(file).each(*sep).to_a.reverse assert_equal lines, File.open(file).each_line_reverse(*sep).to_a # With block rlines = [] File.open(file).each_line_reverse(*sep) do |line| rlines << line end assert_equal lines, rlines # Buffer size [0, -1, :sym].each do |bufsz| assert_raises(ArgumentError) { File.open(file).each_line_reverse(sep || $/, bufsz) } end (0..16).each do |sh| bufsz = 1 << sh assert_equal lines, File.open(file).each_line_reverse(sep || $/, bufsz).to_a end end end end def test_benchmark file = Tempfile.new('test_each_line_reverse') line = '_' * 80 (10 ** 6).times do |i| file.puts line end file.close Benchmark.bm(20) { |x| x.report(:each_line_reverse) { File.open(file.path).each_line_reverse.take(10) } x.report(:reverse) { File.readlines(file.path).reverse.take(10) } } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
each_line_reverse-1.0.0 | test/test_each_line_reverse.rb |