Something went wrong. Try again.
[PRE-ALPHA] an open source web-based 2D/3D graphing calculator cartesium.org
Something went wrong. Try again.
TypeScript
at mathquill
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394import { describe, expect, it } from 'vitest';import { build3dPerformanceReport, summarize3d, type Cartesium3dObservedMeasure} from './performance-session-3d';
function measure( name: string, detail: Record<string, unknown>, startTime = 0, duration = 1): Cartesium3dObservedMeasure { return { name, detail, startTime, duration };}
describe('3D performance aggregation', () => { it('summarizes empty and unordered samples', () => { expect(summarize3d([])).toEqual({ count: 0, medianMs: null, worstMs: null }); expect(summarize3d([8, 2, 4])).toEqual({ count: 3, medianMs: 4, worstMs: 8 }); });
it('groups phases, cancellation, q3 accounting, and draw representations', () => { const measures = [ measure('cartesium:scene3d', { phase: 'preview', cancelled: false, requestDurationMs: 8, queueMs: 1, buildMs: 2, packingMs: 1, resourceCount: 1, vertexCount: 10, transferBytes: 20, sampledPointCapacity: 100, implicitCacheBytes: 12, adaptiveCandidateCount: 5, adaptiveSplitGroupCount: 2, adaptiveChildCount: 4, completedBricks: 2, cancelledBricks: 0 }, 0, 8), measure('cartesium:scene3d', { phase: 'refinement', refinementMode: 'q3-only', cancelled: true, requestDurationMs: 12, queueMs: 2, buildMs: 5, packingMs: 1, resourceCount: 2, vertexCount: 20, transferBytes: 40, sampledPointCapacity: 200, q3CandidateCount: 3, q3SplitGroupCount: 2, q3ChildCount: 2, q3SampledPointCapacity: 800, q3SampleBudget: 1000, q3SkippedGroupCount: 1, q3ViewRejectedGroupCount: 2, settledDeepCandidateCount: 6, settledDeepSplitGroupCount: 4, settledDeepChildCount: 16, settledDeepSampledPointCapacity: 17424, settledDeepSampleBudget: 17424, settledDeepSkippedGroupCount: 2, settledDeepViewRejectedGroupCount: 1 }, 9, 12), measure('cartesium:scene3d-presentation', { mergeMs: 3, publishMs: 4 }, 22, 7), measure('cartesium:scene3d-draw', { resourceCount: 1, reconcileMs: 2, renderMs: 3, gpuSurfaceCount: 1, gpuGridSize: 257, gpuLodTransition: true, representationCounts: { surface_gpu: 1 }, qualityCounts: { '0': 1 } }, 30, 5), measure('cartesium:scene3d-draw', { resourceCount: 2, reconcileMs: 1, renderMs: 2, gpuSurfaceCount: 0, gpuGridSize: 0, gpuLodTransition: false, representationCounts: { surface_mesh: 2 }, qualityCounts: { '1': 2 } }, 36, 3) ];
const report = build3dPerformanceReport('fixture', 0, 40, measures, [16, 24]); expect(report.requests).toMatchObject({ total: 2, completed: 1, cancelled: 1, byPhase: { full: 0, preview: 1, refinement: 1 }, q3Only: 1 }); expect(report.q3).toMatchObject({ candidateCount: 3, admittedGroups: 2, childCount: 2, sampledPointCapacity: 800, sampleBudget: 1000, skippedGroups: 1, rejectedGroups: 2 }); expect(report.settledDeep).toMatchObject({ candidateCount: 6, admittedGroups: 4, childCount: 16, sampledPointCapacity: 17424, sampleBudget: 17424, skippedGroups: 2, rejectedGroups: 1 }); expect(report.draw.observedRepresentations).toEqual({ surface_mesh: 2, solid_mesh: 0, surface_gpu: 1, points: 0, curve: 0, vector: 0 }); expect(report.draw.finalRepresentations).toEqual({ surface_mesh: 2, solid_mesh: 0, surface_gpu: 0, points: 0, curve: 0, vector: 0 }); expect(report.draw.refinedGridSize).toBeNull(); expect(report.firstNonEmptyDrawMs).toBe(35); });
it('keeps structural peaks finite when telemetry is absent', () => { const report = build3dPerformanceReport('empty', 10, 15, [], []); expect(report.requests.total).toBe(0); expect(report.draw.finalRepresentations.surface_mesh).toBe(0); expect(report.draw.observedRepresentations.surface_mesh).toBe(0); expect(report.firstNonEmptyDrawMs).toBeNull(); expect(report.lastMeasuredWorkMs).toBeNull(); expect(report.resources.peakImplicitCacheBytes).toBe(0); });});