Skip to content

Commit

Permalink
Speed up callback spec test/unit assertions
Browse files Browse the repository at this point in the history
The test/unit assertions are way, WAY faster than rspec's matchers, and
though not as pretty, it makes a huge difference for the large PDFs with
lots of assertions.

Before:

  rspec spec/callbacks_spec.rb
  Finished in 192.45 seconds

After:

  rspec spec/callbacks_spec.rb
  Finished in 34.32 seconds
  • Loading branch information
bernerdschaefer authored and yob committed Oct 19, 2011
1 parent 3e47414 commit aa2c270
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 37 deletions.
66 changes: 33 additions & 33 deletions spec/callback_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return a single float argument on #{filename}" do
receiver.all_args(:pdf_version).each.each do |args|
args.size.should eql(1)
args[0].should be_a_kind_of(Float)
assert_equal 1, args.size
assert args[0].is_a?(Float)
end
end
end
Expand All @@ -34,8 +34,8 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return a single hash argument on #{filename}" do
receiver.all_args(:metadata).each.each do |args|
args.size.should eql(1)
args[0].should be_a_kind_of(Hash)
assert_equal 1, args.size
assert args[0].is_a?(Hash)
check_utf8(args)
end
end
Expand All @@ -47,8 +47,8 @@
it "should return a single UTF-8 string argument on #{filename}" do

receiver.all_args(:xml_metadata).each do |args|
args.size.should eql(1)
args[0].should be_a_kind_of(String)
assert_equal 1, args.size
assert args[0].is_a?(String)
check_utf8(args)
end

Expand All @@ -61,8 +61,8 @@
it "should return a single Fixnum argument that is > 0 on #{filename}" do

receiver.all_args(:page_count).each do |args|
args.size.should eql(1)
args[0].should be_a_kind_of(Fixnum)
assert_equal 1, args.size
assert args[0].is_a?(Fixnum)
(args[0] > 0).should be_true
end

Expand All @@ -78,7 +78,7 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return no arguments on #{filename}" do
receiver.all_args(:begin_inline_image).each do |args|
args.should be_empty
assert_equal [], args
end
end
end
Expand All @@ -88,9 +88,9 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return a Hash and binary string argument on #{filename}" do
receiver.all_args(:begin_inline_image_data).each do |args|
args.size.should eql(2)
args[0].should be_a_kind_of(Hash)
args[1].should be_a_kind_of(String)
assert_equal 2, args.size
assert args[0].is_a?(Hash)
assert args[1].is_a?(String)
check_utf8(args[0])
check_binary(args[1])
end
Expand All @@ -108,7 +108,7 @@
else
bytes_per_pixel = bits / 8.0
end
args[1].size.should eql((width * height * bytes_per_pixel).to_i)
assert_equal (width * height * bytes_per_pixel).to_i, args[1].size
end

end
Expand All @@ -119,7 +119,7 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return no arguments on #{filename}" do
receiver.all_args(:begin_text_object).each do |args|
args.should be_empty
assert_equal [], args
end
end
end
Expand All @@ -129,7 +129,7 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return no arguments on #{filename}" do
receiver.all_args(:end_document).each do |args|
args.should be_empty
assert_equal [], args
end
end
end
Expand All @@ -140,7 +140,7 @@
it "should return no arguments on #{filename}" do

receiver.all_args(:end_inline_image).each do |args|
args.should be_empty
assert_equal [], args
end

end
Expand All @@ -151,7 +151,7 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return no arguments on #{filename}" do
receiver.all_args(:end_page).each do |args|
args.should be_empty
assert_equal [], args
end
end
end
Expand All @@ -161,7 +161,7 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return no arguments on #{filename}" do
receiver.all_args(:end_page_container).each do |args|
args.should be_empty
assert_equal [], args
end
end
end
Expand All @@ -171,7 +171,7 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return no arguments on #{filename}" do
receiver.all_args(:end_text_object).each do |args|
args.should be_empty
assert_equal [], args
end
end
end
Expand All @@ -181,8 +181,8 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return a single UTF-8 strings on #{filename}" do
receiver.all_args(:move_to_next_line_and_show_text).each do |args|
args.size.should eql(1)
args[0].should be_a_kind_of(String)
assert_equal 1, args.size
assert args[0].is_a? String
check_utf8(args)
end
end
Expand All @@ -193,7 +193,7 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return no arguments on #{filename}" do
receiver.all_args(:restore_graphics_state).each do |args|
args.should be_empty
assert_equal [], args
end
end
end
Expand All @@ -203,7 +203,7 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return no arguments on #{filename}" do
receiver.all_args(:save_graphics_state).each do |args|
args.should be_empty
assert_equal [], args
end
end
end
Expand All @@ -213,9 +213,9 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return no arguments on #{filename}" do
receiver.all_args(:set_text_font_and_size).each do |args|
args.size.should eql(2)
args[0].should be_a(Symbol)
args[1].should be_a(Numeric)
assert_equal 2, args.size
assert args[0].is_a? Symbol
assert args[1].is_a? Numeric
end
end
end
Expand All @@ -225,8 +225,8 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return a single UTF-8 string argument on #{filename}" do
receiver.all_args(:show_text).each do |args|
args.size.should eql(1)
args[0].should be_a_kind_of(String)
assert_equal 1, args.size
assert args[0].is_a? String
check_utf8(args)
end
end
Expand All @@ -238,7 +238,7 @@
it "should return an array of Numbers and UTF-8 strings on #{filename}" do
receiver.all_args(:show_text_with_positioning).each do |args|
args[0].each do |arg|
(arg.class == String || arg.class == Fixnum || arg.class == Float).should be_true
assert (arg.class == String || arg.class == Fixnum || arg.class == Float)
end
check_utf8(args)
end
Expand All @@ -250,10 +250,10 @@
CallbackHelper.instance.good_receivers.each do |filename, receiver|
it "should return a single UTF-8 strings on #{filename}" do
receiver.all_args(:set_spacing_next_line_show_text).each do |args|
args.size.should eql(3)
args[0].should be_a_kind_of(Numeric)
args[1].should be_a_kind_of(Numeric)
args[2].should be_a_kind_of(String)
assert_equal 3, args.size
assert args[0].is_a?(Numeric)
assert args[1].is_a?(Numeric)
assert args[2].is_a?(String)
check_utf8(args)
end
end
Expand Down
1 change: 1 addition & 0 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f }

RSpec.configure do |config|
config.expect_with :rspec, :stdlib
config.include ReaderSpecHelper
end
8 changes: 4 additions & 4 deletions spec/support/encoding_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ def check_utf8(obj)
check_utf8(value)
}
when String
obj.encoding.should eql(Encoding.find("utf-8"))
obj.valid_encoding?.should be_true
assert_equal obj.encoding, Encoding.find("utf-8")
assert obj.valid_encoding?
else
return
end
Expand All @@ -43,8 +43,8 @@ def check_binary(obj)
check_utf8(value)
}
when String
obj.encoding.should eql(Encoding.find("binary"))
obj.valid_encoding?.should be_true
assert_equal obj.encoding, Encoding.find("binary")
assert obj.valid_encoding?
else
return
end
Expand Down

0 comments on commit aa2c270

Please sign in to comment.