(t *testing.T)
| 507 | } |
| 508 | |
| 509 | func TestComputeRunMetricsDiff_WithData(t *testing.T) { |
| 510 | summary1 := &RunSummary{ |
| 511 | RunID: 100, |
| 512 | Run: WorkflowRun{ |
| 513 | TokenUsage: 5000, |
| 514 | Duration: 10 * time.Minute, |
| 515 | Turns: 8, |
| 516 | }, |
| 517 | } |
| 518 | summary2 := &RunSummary{ |
| 519 | RunID: 200, |
| 520 | Run: WorkflowRun{ |
| 521 | TokenUsage: 7500, |
| 522 | Duration: 15 * time.Minute, |
| 523 | Turns: 12, |
| 524 | }, |
| 525 | } |
| 526 | |
| 527 | diff := computeRunMetricsDiff(summary1, summary2) |
| 528 | |
| 529 | require.NotNil(t, diff, "Should produce metrics diff when data is available") |
| 530 | assert.Equal(t, 5000, diff.Run1TokenUsage, "Run1 token usage should be 5000") |
| 531 | assert.Equal(t, 7500, diff.Run2TokenUsage, "Run2 token usage should be 7500") |
| 532 | assert.Equal(t, "+50%", diff.TokenUsageChange, "Token usage should increase by 50%") |
| 533 | |
| 534 | assert.Equal(t, "10m0s", diff.Run1Duration, "Run1 duration should be 10m0s") |
| 535 | assert.Equal(t, "15m0s", diff.Run2Duration, "Run2 duration should be 15m0s") |
| 536 | assert.Equal(t, "+5m0s", diff.DurationChange, "Duration should increase by 5m0s") |
| 537 | |
| 538 | assert.Equal(t, 8, diff.Run1Turns, "Run1 turns should be 8") |
| 539 | assert.Equal(t, 12, diff.Run2Turns, "Run2 turns should be 12") |
| 540 | assert.Equal(t, 4, diff.TurnsChange, "Turns change should be +4") |
| 541 | } |
| 542 | |
| 543 | func TestComputeRunMetricsDiff_NegativeChange(t *testing.T) { |
| 544 | summary1 := &RunSummary{ |
nothing calls this directly
no test coverage detected