Module: NPlusOneControl::MinitestHelper
- Defined in:
- lib/n_plus_one_control/minitest.rb
Overview
Minitest assertions
Instance Method Summary collapse
- #assert_perform_constant_number_of_queries(populate: nil, matching: nil, scale_factors: nil, warmup: nil) ⇒ Object
- #assert_perform_linear_number_of_queries(slope: 1, populate: nil, matching: nil, scale_factors: nil, warmup: nil) ⇒ Object
- #current_scale ⇒ Object
Instance Method Details
#assert_perform_constant_number_of_queries(populate: nil, matching: nil, scale_factors: nil, warmup: nil) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/n_plus_one_control/minitest.rb', line 8 def assert_perform_constant_number_of_queries( populate: nil, matching: nil, scale_factors: nil, warmup: nil ) raise ArgumentError, "Block is required" unless block_given? warming_up warmup @executor = NPlusOneControl::Executor.new( population: populate || population_method, matching: matching || NPlusOneControl.default_matching, scale_factors: scale_factors || NPlusOneControl.default_scale_factors ) queries = @executor.call { yield } counts = queries.map(&:last).map(&:size) assert counts.max == counts.min, NPlusOneControl.(:constant_queries, queries) end |
#assert_perform_linear_number_of_queries(slope: 1, populate: nil, matching: nil, scale_factors: nil, warmup: nil) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/n_plus_one_control/minitest.rb', line 32 def assert_perform_linear_number_of_queries( slope: 1, populate: nil, matching: nil, scale_factors: nil, warmup: nil ) raise ArgumentError, "Block is required" unless block_given? warming_up warmup @executor = NPlusOneControl::Executor.new( population: populate || population_method, matching: matching || NPlusOneControl.default_matching, scale_factors: scale_factors || NPlusOneControl.default_scale_factors ) queries = @executor.call { yield } assert linear?(queries, slope: slope), NPlusOneControl.(:linear_queries, queries) end |
#current_scale ⇒ Object
55 56 57 |
# File 'lib/n_plus_one_control/minitest.rb', line 55 def current_scale @executor&.current_scale end |