mirror of
https://github.com/ditkrg/validates_timeliness.git
synced 2026-01-23 06:16:44 +00:00
update benchmarks
This commit is contained in:
parent
b23dba5202
commit
4f8b300261
119
benchmark.rb
Normal file
119
benchmark.rb
Normal file
@ -0,0 +1,119 @@
|
||||
$:.unshift(File.expand_path('lib'))
|
||||
|
||||
require 'date'
|
||||
require 'parsedate'
|
||||
require 'benchmark'
|
||||
require 'rubygems'
|
||||
require 'active_record'
|
||||
|
||||
require 'validates_timeliness'
|
||||
|
||||
Time.zone = 'Australia/Melbourne'
|
||||
|
||||
def parse(*args)
|
||||
ValidatesTimeliness::Parser.parse(*args)
|
||||
end
|
||||
|
||||
n = 10000
|
||||
Benchmark.bm do |x|
|
||||
x.report('timeliness - datetime') {
|
||||
n.times do
|
||||
parse("2000-01-04 12:12:12", :datetime)
|
||||
end
|
||||
}
|
||||
|
||||
x.report('timeliness - date') {
|
||||
n.times do
|
||||
parse("2000-01-04", :date)
|
||||
end
|
||||
}
|
||||
|
||||
x.report('timeliness - date as datetime') {
|
||||
n.times do
|
||||
parse("2000-01-04", :datetime)
|
||||
end
|
||||
}
|
||||
|
||||
x.report('timeliness - time') {
|
||||
n.times do
|
||||
parse("12:01:02", :time)
|
||||
end
|
||||
}
|
||||
|
||||
x.report('timeliness - invalid format datetime') {
|
||||
n.times do
|
||||
parse("20xx-01-04 12:12:12", :datetime)
|
||||
end
|
||||
}
|
||||
|
||||
x.report('timeliness - invalid format date') {
|
||||
n.times do
|
||||
parse("20xx-01-04", :date)
|
||||
end
|
||||
}
|
||||
|
||||
x.report('timeliness - invalid format time') {
|
||||
n.times do
|
||||
parse("12:xx:02", :time)
|
||||
end
|
||||
}
|
||||
|
||||
|
||||
x.report('timeliness - invalid value datetime') {
|
||||
n.times do
|
||||
parse("2000-01-32 12:12:12", :datetime)
|
||||
end
|
||||
}
|
||||
|
||||
x.report('timeliness - invalid value date') {
|
||||
n.times do
|
||||
parse("2000-01-32", :date)
|
||||
end
|
||||
}
|
||||
|
||||
x.report('timeliness - invalid value time') {
|
||||
n.times do
|
||||
parse("12:61:02", :time)
|
||||
end
|
||||
}
|
||||
x.report('date/time') {
|
||||
n.times do
|
||||
"2000-01-04 12:12:12" =~ /\A(\d{4})-(\d{2})-(\d{2}) (\d{2})[\. :](\d{2})([\. :](\d{2}))?\Z/
|
||||
arr = [$1, $2, $3, $3, $5, $6].map {|i| i.to_i }
|
||||
Date.new(*arr[0..2])
|
||||
Time.mktime(*arr)
|
||||
end
|
||||
}
|
||||
|
||||
x.report('Date._parse') {
|
||||
n.times do
|
||||
Date._parse("2000-01-04 12:12:12")
|
||||
end
|
||||
}
|
||||
|
||||
x.report('invalid Date._parse') {
|
||||
n.times do
|
||||
Date._parse("2000-01-32 12:12:12")
|
||||
end
|
||||
}
|
||||
|
||||
x.report('parsedate') {
|
||||
n.times do
|
||||
arr = ParseDate.parsedate("2000-01-04 12:12:12")
|
||||
Date.new(*arr[0..2])
|
||||
Time.mktime(*arr)
|
||||
end
|
||||
}
|
||||
|
||||
x.report('invalid parsedate') {
|
||||
n.times do
|
||||
arr = ParseDate.parsedate("garbage")
|
||||
end
|
||||
}
|
||||
|
||||
x.report('strptime') {
|
||||
n.times do
|
||||
DateTime.strptime("2000-01-04 12:12:12", '%Y-%m-%d %H:%M:%s')
|
||||
end
|
||||
}
|
||||
end
|
||||
Loading…
Reference in New Issue
Block a user