@@ -10,25 +10,34 @@ function ItemCriterion(bits...; ability_estimator = nothing, ability_tracker = n
1010 ability_tracker = ability_tracker)
1111end
1212
13+ function StateCriterion (bits... ; ability_estimator = nothing , ability_tracker = nothing )
14+ @returnsome find1_instance (StateCriterion, bits)
15+ @returnsome find1_type (StateCriterion, bits) typ-> typ ()
16+ end
17+
1318function init_thread (:: ItemCriterion , :: TrackedResponses )
1419 nothing
1520end
1621
17- function StateCriterion (bits... ; ability_estimator = nothing , ability_tracker = nothing )
18- @returnsome find1_instance (StateCriterion, bits)
19- @returnsome find1_type (StateCriterion, bits) typ-> typ ()
22+ function init_thread (:: StateCriterion , :: TrackedResponses )
23+ nothing
2024end
2125
22- function (item_criterion:: ItemCriterion )(:: Nothing , tracked_responses, item_idx)
23- item_criterion (tracked_responses, item_idx)
26+ function compute_criterion (
27+ item_criterion:: ItemCriterion , :: Nothing , tracked_responses, item_idx)
28+ compute_criterion (item_criterion, tracked_responses, item_idx)
2429end
2530
26- function (item_criterion:: ItemCriterion )( tracked_responses, item_idx)
31+ function compute_criterion (item_criterion:: ItemCriterion , tracked_responses, item_idx)
2732 criterion_state = init_thread (item_criterion, tracked_responses)
2833 if criterion_state === nothing
2934 error (" Tried to run an state-requiring item criterion $(typeof (item_criterion)) , but init_thread(...) returned nothing" )
3035 end
31- item_criterion (criterion_state, tracked_responses, item_idx)
36+ compute_criterion (item_criterion, criterion_state, tracked_responses, item_idx)
37+ end
38+
39+ function compute_criterion (state_criterion:: StateCriterion , :: Nothing , tracked_responses)
40+ compute_criterion (state_criterion, tracked_responses)
3241end
3342
3443function compute_criteria (
@@ -48,3 +57,30 @@ function compute_criteria(
4857) where {StrategyT, ItemCriterionT <: ItemCriterion }
4958 compute_criteria (rule. criterion, responses, items)
5059end
60+
61+ function compute_pointwise_criterion (
62+ ppic:: PurePointwiseItemCriterion , tracked_responses, item_idx)
63+ compute_pointwise_criterion (ppic, ItemResponse (tracked_responses. item_bank, item_idx))
64+ end
65+
66+ struct PurePointwiseItemCriterionFunction{PointwiseItemCriterionT <: PointwiseItemCriterion }
67+ item_response:: ItemResponse
68+ end
69+
70+ function init_thread (:: ItemMultiCriterion , :: TrackedResponses )
71+ nothing
72+ end
73+
74+ function init_thread (:: StateMultiCriterion , :: TrackedResponses )
75+ nothing
76+ end
77+
78+ function compute_multi_criterion (
79+ item_criterion:: ItemMultiCriterion , :: Nothing , tracked_responses, item_idx)
80+ compute_multi_criterion (item_criterion, tracked_responses, item_idx)
81+ end
82+
83+ function compute_multi_criterion (
84+ state_criterion:: StateMultiCriterion , :: Nothing , tracked_responses)
85+ compute_multi_criterion (state_criterion, tracked_responses)
86+ end
0 commit comments