package main import "testing" func TestComputeSummaryDefaultVectors(t *testing.T) { dataset, err := loadVectors("vectors/default.json") if err != nil { t.Fatalf("loadVectors: %v", err) } summary, err := computeSummary("vectors/default.json", dataset) if err != nil { t.Fatalf("computeSummary: %v", err) } if summary.Attempts != 5 { t.Fatalf("expected 5 attempts, got %d", summary.Attempts) } if summary.Executed != 4 { t.Fatalf("expected 4 executed, got %d", summary.Executed) } if summary.Successful != 3 { t.Fatalf("expected 3 successful, got %d", summary.Successful) } if summary.Failed != 1 { t.Fatalf("expected 1 failed, got %d", summary.Failed) } if summary.GrossProfitETH != "0.101000" { t.Fatalf("gross profit mismatch: %s", summary.GrossProfitETH) } if summary.GasCostETH != "0.013700" { t.Fatalf("gas cost mismatch: %s", summary.GasCostETH) } if summary.NetProfitETH != "0.087300" { t.Fatalf("net profit mismatch: %s", summary.NetProfitETH) } if summary.AverageProfitETH != "0.021825" { t.Fatalf("avg profit mismatch: %s", summary.AverageProfitETH) } if summary.AverageGasCostETH != "0.003425" { t.Fatalf("avg gas mismatch: %s", summary.AverageGasCostETH) } if len(summary.ExchangeBreakdown) != 3 { t.Fatalf("expected 3 exchanges, got %d", len(summary.ExchangeBreakdown)) } }