Skip to content

[E5-F4] Generate implementation issues for Builder, Factory, and Exports #1118

@Gorkowski

Description

@Gorkowski

Dependencies:

#1115 [E5-F1] ──┐
├──► #THIS [E5-F4]
#1117 [E5-F3] ──┘

Summary

Generate implementation issues for feature E5-F4: Builder, Factory, and Exports.

Create CondensationLatentHeatBuilder following the established builder pattern, register the new strategy in CondensationFactory, and update all namespace exports so the new condensation strategy is accessible through the particula.dynamics public API.

Feature Plan

Document: adw-docs/dev-plans/features/E5-F4-builder-factory-exports.md

Parent Epic: E5: Non-Isothermal Condensation with Latent Heat (adw-docs/dev-plans/epics/E5-non-isothermal-condensation.md)

Phases to Generate

Phase Description Size
E5-F4-P1 Create CondensationLatentHeatBuilder with tests S (~60 LOC)
E5-F4-P2 Register in factory and update exports with tests S (~40 LOC)

Dependencies

ADW Instructions

When processing this issue:

  1. Read the feature plan document: adw-docs/dev-plans/features/E5-F4-builder-factory-exports.md
  2. Read the parent epic for context: adw-docs/dev-plans/epics/E5-non-isothermal-condensation.md
  3. For each phase in the Phase Checklist (E5-F4-P1 through E5-F4-P2), create an implementation issue with:
    • Full technical details from the feature plan
    • Specific file paths from the feature plan's scope section
    • Test file paths (co-located in module tests/ directories)
    • Co-located testing: tests ship with implementation in every phase
    • Coverage target: 80-85% per phase
  4. Set dependency chain: E5-F4-P1 → E5-F4-P2
  5. Label all phases with agent, blocked, type:complete, model:default

Files to Create/Modify

  • Create: particula/dynamics/condensation/condensation_builder/condensation_latent_heat_builder.py — builder class
  • Modify: particula/dynamics/condensation/condensation_builder/__init__.py — export new builder
  • Modify: particula/dynamics/condensation/condensation_factories.py (currently 49 lines) — add "latent_heat" type mapping
  • Modify: particula/dynamics/condensation/__init__.py (currently 22 lines) — export CondensationLatentHeat and CondensationLatentHeatBuilder
  • Modify: particula/dynamics/__init__.py (currently 169 lines) — re-export new symbols
  • Create or Modify: particula/dynamics/condensation/tests/condensation_builder_test.py — builder tests
  • Modify: particula/dynamics/condensation/tests/condensation_factories_test.py (currently 117 lines) — factory tests

Testing Strategy

Unit Tests

Test File Phase Coverage Target
particula/dynamics/condensation/tests/condensation_builder_test.py P1 Builder class
particula/dynamics/condensation/tests/condensation_factories_test.py P2 Factory + exports

Key Test Cases

  1. Builder with strategy: Pass LatentHeatStrategy object, verify it propagates to built CondensationLatentHeat
  2. Builder with constant: Pass latent_heat=2.5e6, verify ConstantLatentHeat wrapper is created
  3. Builder missing params: Omit required param, expect ValueError
  4. Factory creation: factory.get_strategy("latent_heat", params) returns CondensationLatentHeat
  5. Factory invalid type: factory.get_strategy("bad_type", {}) raises error
  6. Import smoke tests: from particula.dynamics import CondensationLatentHeat, CondensationLatentHeatBuilder

Metadata

Metadata

Assignees

No one assigned

    Labels

    agentCreated or managed by ADW automationblockedBlocked - review required before ADW can processepic:E5type:generateGeneration workflow - create new issues, code, or artifacts

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions