summaryrefslogtreecommitdiff
path: root/internal/tui/flamegraph/testdata_fixture_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-05 23:09:31 +0200
committerPaul Buetow <paul@buetow.org>2026-03-05 23:09:31 +0200
commit4953fd0200eef52f7e1547d5961a2e70e24e49d1 (patch)
tree3f392865fc0255a32f2db02f781438d7aa182cd3 /internal/tui/flamegraph/testdata_fixture_test.go
parent9744b3ce9e7b33b8843d1c260c3dfa3431391f43 (diff)
task 367: add flamegraph benchmark fixture generators
Diffstat (limited to 'internal/tui/flamegraph/testdata_fixture_test.go')
-rw-r--r--internal/tui/flamegraph/testdata_fixture_test.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/internal/tui/flamegraph/testdata_fixture_test.go b/internal/tui/flamegraph/testdata_fixture_test.go
new file mode 100644
index 0000000..1f22c26
--- /dev/null
+++ b/internal/tui/flamegraph/testdata_fixture_test.go
@@ -0,0 +1,39 @@
+package flamegraph
+
+import "testing"
+
+func TestFixtureSnapshotsHaveApproximateFrameCounts(t *testing.T) {
+ fixtures := []struct {
+ name string
+ depth int
+ breadth int
+ expect int
+ }{
+ {name: "small", depth: fixtureSmallDepth, breadth: fixtureSmallBreadth, expect: 121},
+ {name: "medium", depth: fixtureMediumDepth, breadth: fixtureMediumBreadth, expect: 2500},
+ {name: "large", depth: fixtureLargeDepth, breadth: fixtureLargeBreadth, expect: 12000},
+ {name: "deep", depth: fixtureDeepDepth, breadth: fixtureDeepBreadth, expect: 100},
+ {name: "wide", depth: fixtureWideDepth, breadth: fixtureWideBreadth, expect: 5000},
+ }
+
+ for _, fixture := range fixtures {
+ t.Run(fixture.name, func(t *testing.T) {
+ snap := generateTestSnapshot(fixture.depth, fixture.breadth)
+ got := snapshotNodeCount(snap)
+ if !approxEqualCount(got, fixture.expect) {
+ t.Fatalf("%s fixture nodes=%d, expected approximately %d", fixture.name, got, fixture.expect)
+ }
+ })
+ }
+}
+
+func TestGenerateTestTrieProducesSnapshotData(t *testing.T) {
+ lt := generateTestTrie(fixtureSmallDepth, fixtureSmallBreadth)
+ snap, err := decodeTrieSnapshot(lt)
+ if err != nil {
+ t.Fatalf("decode trie snapshot: %v", err)
+ }
+ if snap.Total == 0 {
+ t.Fatalf("expected generated trie snapshot to contain data")
+ }
+}