Skip to content

Recorded cat porc#84

Merged
frankier merged 11 commits into
mainfrom
recorded-cat-porc
Jul 4, 2026
Merged

Recorded cat porc#84
frankier merged 11 commits into
mainfrom
recorded-cat-porc

Conversation

@frankier

Copy link
Copy Markdown
Member

No description provided.

@frankier frankier marked this pull request as draft August 30, 2025 11:33
@coveralls

coveralls commented Aug 30, 2025

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 28704916407

Warning

Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes.
Quick fix: rebase this PR. Learn more →

Coverage decreased (-5.8%) to 32.982%

Details

  • Coverage decreased (-5.8%) from the base build.
  • Patch coverage: 387 uncovered changes across 22 files (14 of 401 lines covered, 3.49%).
  • 6 coverage regressions across 2 files.

Uncovered Changes

Top 10 Files by Coverage Impact Changed Covered %
src/Sim/recorder.jl 147 0 0.0%
src/Sim/recorded_loop.jl 113 0 0.0%
src/DerivedMeasures.jl 53 0 0.0%
src/Aggregators/ability_estimator.jl 9 0 0.0%
src/NextItemRules/criteria/pointwise/information.jl 9 0 0.0%
src/Rules.jl 9 0 0.0%
src/NextItemRules/porcelain/porcelain.jl 8 0 0.0%
src/NextItemRules/combinators/expectation.jl 5 0 0.0%
src/NextItemRules/criteria/state/ability_variance.jl 5 0 0.0%
src/Sim/loop.jl 13 8 61.54%
Total (25 files) 401 14 3.49%

Coverage Regressions

6 previously-covered lines in 2 files lost coverage.

File Lines Losing Coverage Coverage
src/Sim/recorder.jl 5 0.0%
src/Aggregators/tracked.jl 1 27.27%

Coverage Stats

Coverage Status
Relevant Lines: 1898
Covered Lines: 626
Line Coverage: 32.98%
Coverage Strength: 1456.04 hits per line

💛 - Coveralls

@github-actions

github-actions Bot commented Aug 30, 2025

Copy link
Copy Markdown

Benchmark Results

main 48d09e7... main / 48d09e7...
next_item_rules/4pl/mean_point_mepv_10 2.36 ± 0.012 ms 2.41 ± 0.015 ms 0.98 ± 0.0079
next_item_rules/4pl/mean_point_mepv_bare 0.916 ± 0.0082 ms 0.917 ± 0.0056 ms 1 ± 0.011
next_item_rules/4pl/mode_point_mepv_10 1.91 ± 0.0093 ms 1.94 ± 0.008 ms 0.986 ± 0.0063
next_item_rules/4pl/mode_point_mepv_bare 0.842 ± 0.0049 ms 0.839 ± 0.0045 ms 1 ± 0.0079
time_to_load 2.17 ± 0.021 s 2.17 ± 0.03 s 1 ± 0.017

Benchmark Plots

A plot of the benchmark results have been uploaded as an artifact to the workflow run for this PR.
Go to "Actions"->"Benchmark a pull request"->[the most recent run]->"Artifacts" (at the bottom).

Frankie Robertson added 6 commits December 21, 2025 16:52
* Clear recorded data on run_cat startup
  * Use power_summary(...) as main method for all printing
  * Add StdDevEstimator as a std dev measure
  * Add way to make recording entry before any items are administered
  * Add all kinds printing for Recorder and Recording
  * Format numbers to 3dp in Recording
 * Delete a lot of comments
 * Remove vestigial dependency on RDataGet
 * Use derivatives stuff from PsychometricsBazaarBase
@frankier frankier marked this pull request as ready for review July 4, 2026 08:03
@frankier frankier requested a review from Copilot July 4, 2026 08:03

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a higher-level “recorded CAT” runner/recorder flow in Sim, standardizes human-readable printing via power_summary, and expands/renames parts of the next-item criterion API.

Changes:

  • Add RecordedCatLoop plus recorder initialization hooks to capture initial state and produce richer summaries/tables.
  • Replace many show(::MIME"text/plain") implementations with power_summary and route CatConfigBase printing through it.
  • Fix/extend next-item criterion exports (including correcting Scalarized* type names) and add new pointwise information criteria.

Reviewed changes

Copilot reviewed 28 out of 30 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
test/ability_estimator_2d.jl Updates tests to use the corrected Scalarized*Criterion type names.
src/TerminationConditions.jl Switches termination-condition printing to power_summary.
src/Sim/Sim.jl Exports/loads RecordedCatLoop and wires show to power_summary for Sim objects.
src/Sim/run.jl Adds init_callback support to initialize recording/state at CAT start.
src/Sim/recorder.jl Major recorder redesign: initial-state handling, richer summaries, dataframe/table output, request enrichment.
src/Sim/recorded_loop.jl New convenience wrapper to build/run a CatLoop + CatRecorder together.
src/Sim/loop.jl Adds init_callback and callback collation; adds power_summary for CatLoop.
src/Rules.jl Routes CatRules show through power_summary.
src/Responses.jl Adds length(::BareResponses) used by recorder logic.
src/NextItemRules/strategies/sequential.jl Converts strategy printing to power_summary.
src/NextItemRules/strategies/randomesque.jl Converts strategy printing to power_summary.
src/NextItemRules/strategies/pointwise.jl Converts strategy printing to power_summary.
src/NextItemRules/strategies/balance.jl Converts strategy printing to power_summary.
src/NextItemRules/prelude/next_item_rule.jl Converts rule printing to power_summary.
src/NextItemRules/porcelain/porcelain.jl Fixes misspelled Scalarized* constructor usage; adds pointwise information porcelain helpers.
src/NextItemRules/NextItemRules.jl Updates exports/imports (power_summary, Differentiation) and adds new criterion exports.
src/NextItemRules/criteria/state/ability_variance.jl Uses domdims and converts printing to power_summary.
src/NextItemRules/criteria/pointwise/information.jl Moves derivatives to Differentiation and converts printing to power_summary.
src/NextItemRules/criteria/pointwise/information_support.jl Replaces local derivative helpers with Differentiation usage.
src/NextItemRules/combinators/scalarizers.jl Renames scalarized criterion types to correctly-spelled names.
src/NextItemRules/combinators/expectation.jl Converts printing to power_summary.
src/DerivedMeasures.jl New module providing derived estimators/samplers used by the recorder request enrichment.
src/ConfigBase.jl Makes show(::CatConfigBase) delegate to power_summary.
src/ComputerAdaptiveTesting.jl Includes DerivedMeasures in the top-level package module.
src/Aggregators/tracked.jl Adds get_integrator accessor for tracked integrators.
src/Aggregators/optimizers.jl Converts optimizer printing to power_summary.
src/Aggregators/Aggregators.jl Adds get_integrator export and converts integrator printing to power_summary.
src/Aggregators/ability_estimator.jl Converts ability estimator printing to power_summary.
Project.toml Adds new dependencies (DataAPI/PrettyPrinting/PrettyTables) and bumps compat for FittedItemBanks/PsychometricsBazaarBase.
.gitignore Ignores a local Claude settings file.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Sim/recorder.jl
Comment on lines +51 to +56
function consume!(cb, dict, key)
if haskey(dict, key)
cb(dict[key])
delete!(dict, key)
end
end
Comment thread src/Sim/recorded_loop.jl Outdated
end
=#

MeanAbilityEstimator, ModeAbilityEstimator
Comment thread src/Sim/recorded_loop.jl
Comment on lines +197 to +199
if haskey(kwargs, :dims)
dims = pop!(kwargs, :dims)
end
Comment thread src/Sim/recorded_loop.jl Outdated
Comment on lines +99 to +101
@info "ability_distribution" rules source
@requiresome composite = get_composite(rules, source)
@info "composite" composite
Comment thread src/Sim/recorded_loop.jl Outdated
Comment on lines +105 to +106
@info "ability_distribution" rules_source DistributionAbilityEstimator
@requiresome dist_est = _walk_find_type_first(rules_source, DistributionAbilityEstimator)
Comment on lines 20 to +23
scalarizer::MatrixScalarizerT
end

function compute_criterion(ssc::Union{ScalarizedItemCriteron, ScalarizedStateCriteron},
function compute_criterion(ssc::Union{ScalarizedItemCriterion, ScalarizedStateCriterion},
@frankier frankier merged commit 696384d into main Jul 4, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants