159159
160160# phase_func=nothing;
161161function measure_all (comparison, system, cat, phase; kwargs... )
162- @info " measure_all" phase comparison . phases
162+ @info " measure_all" phase system kwargs
163163 if ! (phase in keys (comparison. phases))
164164 return
165165 end
189189struct IncreaseItemBankSizeExecutionStrategy <: CatComparisonExecutionStrategy
190190 item_bank:: AbstractItemBank
191191 sizes:: AbstractVector{Int}
192+ responses:: Vector # XXX : Type
192193 starting_responses:: Int
193194 shuffle:: Bool
194195 time_limit:: Float64
@@ -205,24 +206,42 @@ function IncreaseItemBankSizeExecutionStrategy(item_bank, sizes)
205206 return IncreaseItemBankSizeExecutionStrategy (item_bank, sizes, 0 , false , Inf )
206207end
207208
209+ function init_cat (cat:: Stateful.StatefulCat , item_bank)
210+ Stateful. set_item_bank! (cat, item_bank)
211+ cat
212+ end
213+
214+ function init_cat (cat, item_bank)
215+ cat (item_bank)
216+ end
217+
208218function run_comparison (comparison:: CatComparisonConfig{IncreaseItemBankSizeExecutionStrategy} )
209219 strategy = comparison. strategy
210220 current_cats = collect (pairs (comparison. rules))
211- next_current_cats = copy (current_cats)
221+ next_current_cats = []
212222 @info " sizes" strategy. sizes
213223 for size in strategy. sizes
214224 subsetted_item_bank = subset (strategy. item_bank, 1 : size)
215225 empty! (next_current_cats)
216- for (name, cat) in current_cats
217- Stateful. set_item_bank! (cat, subsetted_item_bank)
218- for _ in 1 : (strategy. starting_responses)
219- Stateful. next_item (cat)
226+ for (name, mk_cat) in current_cats
227+ init_time = @timed begin
228+ cat = init_cat (mk_cat, subsetted_item_bank)
220229 end
230+ response_add_time = @timed begin
231+ for idx in 1 : (strategy. starting_responses)
232+ Stateful. add_response! (cat, idx, strategy. responses[idx])
233+ end
234+ end
235+ @info " responses" Stateful. get_responses (cat)
221236 measure_all (
222237 comparison,
223238 name,
224239 cat,
225- :before_next_item
240+ :before_next_item ,
241+ init_time = init_time. time,
242+ response_add_time = response_add_time. time,
243+ num_items= size,
244+ system_name= name
226245 )
227246 timed_next_item = @timed Stateful. next_item (cat)
228247 next_item = timed_next_item. value
@@ -232,14 +251,17 @@ function run_comparison(comparison::CatComparisonConfig{IncreaseItemBankSizeExec
232251 cat,
233252 :after_next_item ,
234253 next_item = next_item,
235- timing = timed_next_item
254+ timing = timed_next_item,
255+ num_items= size,
256+ system_name= name
236257 )
237- @info " next_item" timed_next_item. time strategy. time_limit
258+ @info " next_item" name timed_next_item. time strategy. time_limit
238259 if timed_next_item. time < strategy. time_limit
239260 push! (next_current_cats, name => cat)
240261 end
241262 end
242- current_cats, next_current_cats = next_current_cats, current_cats
263+ current_cats = next_current_cats
264+ next_current_cats = []
243265 end
244266end
245267
0 commit comments