Activity Log - 2025-11-27

Learning

  • Evolved the Graph Layout Algorithm Through Iterative Specification:

    • Started with a Multi-Pass Anchoring strategy (3 passes: anchor to Output, Input, then Islands)
    • Simplified to Single Pass Sink-Anchored strategy after recognizing the complexity was unnecessary
  • Defined Comprehensive Test Cases for Invalid Graphs:

    • Expanded from 2 test cases to 10 distinct scenarios covering edge cases:
      • Invalid Source Direction (backward Output edge)
      • Missing Output (Input Chain) / Missing Input (Output Chain)
      • Isolated Chain (no Input, no Output - “Islands”)
      • Mixed scenarios: Valid Chain + Missing Output/Input/Isolated Chain
      • Input-Input and Output-Output connections
      • Input-Only Graph (degenerate case)
    • Each test case now has explicit, testable assertions for both layer indices and visual coordinates
  • Established Two-Layer Testing Strategy:

    • Layer 1 (Algorithm Logic): Use data-layer attribute on nodes for E2E tests to verify computed layer indices
    • Layer 2 (Visual Rendering): Assert relative X-coordinates to verify correct rendering
    • Benefits: Decouples logic verification from pixel-perfect rendering; failures indicate which layer failed