1- @precompile_setup begin
2- const response_types = (BooleanResponse (), MultinomialResponse ())
3- const domains = (OneDimContinuousDomain (), VectorContinuousDomain ())
4- const item_banks = Dict (
5- (OneDimContinuousDomain (), BooleanResponse ()) => [],
6- (OneDimContinuousDomain (), MultinomialResponse ()) => [],
7- (VectorContinuousDomain (), BooleanResponse ()) => [],
8- (VectorContinuousDomain (), MultinomialResponse ()) => []
9- )
1+ using PrecompileTools
102
11- # struct BareResponses{ResponseTypeT <: ResponseType, ConcreteResponseTypeT, IndicesVecT <: AbstractVector}
12- @precompile_all_calls begin
13- for response_type in response_types
14- concrete_type = concrete_response_type (response)
15- single_response = Response (response_type, 1 , zero (concrete_type))
16- bare_responses = BareResponses (response_type, [1 ], [zero (concrete_type)])
17- end
18- Response{ResponseTypeT <: ResponseType , ConcreteResponseTypeT}
3+ @setup_workload begin
4+ using PsychometricsBazaarBase: Integrators
5+ using FittedItemBanks: SimpleItemBankSpec, StdModel2PL, OneDimContinuousDomain, BooleanResponse
6+ using FittedItemBanks. DummyData: dummy_item_bank
7+ using Random: default_rng
8+ using . Aggregators: LikelihoodAbilityEstimator, MeanAbilityEstimator, GriddedAbilityTracker,
9+ AbilityIntegrator
10+ using . NextItemRules: catr_next_item_aliases, preallocate
11+ using . Stateful: Stateful
12+
13+ rng = default_rng (42 )
14+ spec = SimpleItemBankSpec (StdModel2PL (), OneDimContinuousDomain (), BooleanResponse ())
15+ item_bank = dummy_item_bank (rng, spec, 2 )
16+ @compile_workload begin
17+ integrator = Integrators. even_grid (- 6.0 , 6.0 , 61 )
18+ lh_ability_est = LikelihoodAbilityEstimator ()
19+ lh_grid_tracker = GriddedAbilityTracker (lh_ability_est, integrator)
20+ ability_integrator = AbilityIntegrator (integrator, lh_grid_tracker)
21+ ability_estimator = MeanAbilityEstimator (lh_ability_est, ability_integrator)
22+ next_item_rule = catr_next_item_aliases[" MEPV" ](ability_estimator)
23+ cat = Stateful. StatefulCatConfig (CatConfig. CatRules (;
24+ next_item= next_item_rule,
25+ termination_condition= TerminationConditions. RunForeverTerminationCondition (),
26+ ability_estimator= ability_estimator
27+ ), item_bank)
28+ Stateful. add_response! (cat, 1 , 0 )
29+ Stateful. next_item (cat)
1930 end
20- end
31+ end
0 commit comments