Skip to content

Add CPM fixtures for non-finish-start relationships #6

Description

@jonathanmcmichael

Background

Rustit's CPM engine implements finish-start, start-start, finish-finish, and start-finish relationship weights, but the initial tests exercise only finish-start networks. Scheduling practitioners and Rust contributors can make this behavior easier to trust by adding small, documented fixtures.

Suggested scope

Work in crates/rustit-schedule/src/lib.rs. Add deterministic unit tests for:

  • start-start with a positive lag
  • finish-finish with a positive lag
  • start-finish with a clearly explained expected result
  • at least one negative lag (lead) where the expected timing is unambiguous

Acceptance criteria

  • each fixture names the activities, durations, relationship type, and lag
  • assertions cover relevant early starts/finishes and project duration
  • comments explain the expected scheduling behavior in working-hour units
  • no calendar or date logic is introduced
  • cargo fmt --all -- --check, clippy, and workspace tests pass

If a fixture reveals a calculation defect, document the failing case before expanding the implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ai-readyPortable work packet ready for human-and-AI implementationarea:scheduleSchedule model, CPM, calendars, and statusgood first issueGood for newcomershelp wantedExtra attention is neededkind:fixtureSynthetic truth fixture or minimized failure casereview:rustRust API or implementation review requestedreview:schedulingScheduling or project-controls review requestedsize:xsOne behavior or fixturestate:readyReady for a contributor to claim

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions