Skip to content

Commit 75947f2

Browse files
author
Frankie Robertson
committed
Move add_response!/pop_response! to Responses
1 parent 27ae85f commit 75947f2

File tree

5 files changed

+32
-28
lines changed

5 files changed

+32
-28
lines changed

src/Responses.jl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ using FittedItemBanks: AbstractItemBank,
77
using AutoHashEquals: @auto_hash_equals
88

99
export Response, BareResponses, AbilityLikelihood, function_xs, function_ys
10+
export add_response!, pop_response!
1011

1112
concrete_response_type(::BooleanResponse) = Bool
1213
concrete_response_type(::MultinomialResponse) = Int
@@ -69,6 +70,28 @@ function Base.iterate(::BareResponses, gen_gen_state)
6970
return _iter_helper(gen, iterate(gen, gen_state))
7071
end
7172

73+
function Base.empty!(responses::BareResponses)
74+
Base.empty!(responses.indices)
75+
Base.empty!(responses.values)
76+
end
77+
78+
function add_response!(responses::BareResponses, response::Response)::BareResponses
79+
push!(responses.indices, response.index)
80+
push!(responses.values, response.value)
81+
responses
82+
end
83+
84+
function pop_response!(responses::BareResponses)::BareResponses
85+
pop!(responses.indices)
86+
pop!(responses.values)
87+
responses
88+
end
89+
90+
function Base.sizehint!(bare_responses::BareResponses, n)
91+
sizehint!(bare_responses.indices, n)
92+
sizehint!(bare_responses.values, n)
93+
end
94+
7295
struct AbilityLikelihood{ItemBankT <: AbstractItemBank, BareResponsesT <: BareResponses}
7396
item_bank::ItemBankT
7497
responses::BareResponsesT

src/Stateful.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ using DocStringExtensions
1010
using FittedItemBanks: AbstractItemBank, ResponseType
1111
using ..Aggregators: TrackedResponses, Aggregators
1212
using ..CatConfig: CatLoopConfig, CatRules
13-
using ..Responses: BareResponses, Response
13+
using ..Responses: BareResponses, Response, Responses
1414
using ..NextItemRules: compute_criteria, best_item
1515
using ..Sim: Sim, item_label
1616

@@ -190,13 +190,13 @@ end
190190

191191
function add_response!(config::StatefulCatConfig, index, response)
192192
tracked_responses = config.tracked_responses[]
193-
Aggregators.add_response!(
193+
Responses.add_response!(
194194
tracked_responses, Response(
195195
ResponseType(tracked_responses.item_bank), index, response))
196196
end
197197

198198
function rollback!(config::StatefulCatConfig)
199-
pop_response!(config.tracked_responses[])
199+
Responses.pop_response!(config.tracked_responses[])
200200
end
201201

202202
function reset!(config::StatefulCatConfig)

src/aggregators/Aggregators.jl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ using FittedItemBanks: AbstractItemBank, ContinuousDomain,
1717
PointsItemBank, ResponseType, VectorContinuousDomain,
1818
domdims, item_params, resp, resp_vec, responses
1919
using ..Responses
20-
using ..Responses: concrete_response_type, function_xs, function_ys
20+
using ..Responses: concrete_response_type, function_xs, function_ys, Responses
2121
using ..ConfigBase
2222
using PsychometricsBazaarBase.ConfigTools: @requiresome, @returnsome,
2323
find1_instance, find1_type,
@@ -37,8 +37,7 @@ import PsychometricsBazaarBase.IntegralCoeffs
3737
export AbilityEstimator, TrackedResponses
3838
export AbilityTracker, NullAbilityTracker, PointAbilityTracker, GriddedAbilityTracker
3939
export ClosedFormNormalAbilityTracker, track!
40-
export response_expectation,
41-
add_response!, pop_response!, expectation, distribution_estimator
40+
export response_expectation, expectation, distribution_estimator
4241
export PointAbilityEstimator, PriorAbilityEstimator, LikelihoodAbilityEstimator
4342
export ModeAbilityEstimator, MeanAbilityEstimator
4443
export Speculator, replace_speculation!, normdenom, maybe_tracked_ability_estimate

src/aggregators/ability_tracker.jl

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,19 @@
1-
function sizehint!(bare_responses::BareResponses, n)
2-
sizehint!(bare_responses.indices, n)
3-
sizehint!(bare_responses.values, n)
4-
end
5-
61
function track!(responses)
72
track!(responses, responses.ability_tracker)
83
end
94

10-
function add_response!(responses::BareResponses, response::Response)::BareResponses
11-
push!(responses.indices, response.index)
12-
push!(responses.values, response.value)
13-
responses
14-
end
15-
16-
function add_response!(tracked_responses::TrackedResponses, response::Response)
5+
function Responses.add_response!(tracked_responses::TrackedResponses, response::Response)
176
add_response!(tracked_responses.responses, response)
187
track!(tracked_responses)
198
end
209

21-
function pop_response!(responses::BareResponses)::BareResponses
22-
pop!(responses.indices)
23-
pop!(responses.values)
24-
responses
25-
end
26-
27-
function pop_response!(tracked_responses::TrackedResponses)::TrackedResponses
10+
function Responses.pop_response!(tracked_responses::TrackedResponses)::TrackedResponses
2811
pop_response!(tracked_responses.responses)
2912
tracked_responses
3013
end
3114

3215
function Base.empty!(tracked_responses::TrackedResponses)
33-
Base.empty!(tracked_responses.responses.indices)
34-
Base.empty!(tracked_responses.responses.values)
16+
Base.empty!(tracked_responses.responses)
3517
end
3618

3719
function response_expectation(ability_estimator::DistributionAbilityEstimator,

src/decision_tree/DecisionTree.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ using ComputerAdaptiveTesting.ConfigBase: CatConfigBase
66
using ComputerAdaptiveTesting.PushVectors
77
using ComputerAdaptiveTesting.NextItemRules
88
using ComputerAdaptiveTesting.Aggregators
9-
using ComputerAdaptiveTesting.Responses: BareResponses, Response
9+
using ComputerAdaptiveTesting.Responses: BareResponses, Response, add_response!, pop_response!
1010
using FittedItemBanks: AbstractItemBank, BooleanResponse, ResponseType
1111

1212
# TODO: Remove ability tracking from here?

0 commit comments

Comments
 (0)