Skip to content

feat: CTI resurrection Phase 2 — autofit sync (factor-graph aggregator) #86

Description

@Jammy2211

Overview

Phase 2 of the CTI resurrection epic (Phase 0: #82/#83; Phase 1: #84/#85). PyAutoFit removed analysis summing (analysis + analysis) in favour of af.AnalysisFactor + af.FactorGraphModel; 5 multi-analysis aggregator tests were skipped in Phase 0 pending the port. This phase ports them and sweeps for remaining autofit drift.

Plan

  • Update test_autocti/aggregator/conftest.py so multi-dataset cases fit an af.FactorGraphModel(*[af.AnalysisFactor(prior_model=model, analysis=a) for a in analyses]) (the autolens_workspace/multi/start_here.py pattern); un-skip the 5 skipped tests and fix loader fallout (fit.children).
  • Grep autocti for other removed autofit idioms; verify the multi-dataset visualizer path (visualize_combined, in_ascending_fpr_order_from) is exercised by the factor-graph fit.

Out of scope: Phase 3 CI/ecosystem plumbing, Phase 4 workspace, Phase 5 workspace_test + release.

Detailed implementation plan

Affected Repositories

  • PyAutoCTI (primary)

Branch Survey

Repository Current Branch Dirty?
./PyAutoCTI main (post-#85, clean) clean

Suggested branch: feature/cti-resurrection-phase2

Implementation Steps

  1. test_autocti/aggregator/conftest.py: extend aggregator_from for a list of analyses via FactorGraphModel; MockSearch fit of factor_graph.global_prior_model.
  2. Un-skip: test_aggregator_dataset_1d.py (multi_dataset, use_dataset_full), test_aggregator_imaging_ci.py (multi_dataset, use_dataset_full), test_aggregator_fit_imaging_ci.py (multi_analysis).
  3. Fix aggregator loader fallout; keep single-analysis behavior unchanged.
  4. Drift sweep + full suite green.

Key Files

  • test_autocti/aggregator/conftest.py, test_autocti/aggregator/test_*.py
  • autocti/aggregator/*.py (loaders)

Original Prompt

PyAutoMind prompt: draft/feature/autocti/cti_resurrection_phase2_autofit_sync.md (epic origin verbatim in #82).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions