import {test} from 'vitest'; import {performSymbolLayout} from './symbol_layout.ts'; import {SymbolBucket} from '../data/bucket/symbol_bucket.ts'; import {SubdivisionGranularitySetting} from '../render/subdivision_granularity_settings.ts'; import {fixtureTiles, parseTile} from '../../test/bench/lib/parse_tile.ts'; import type {WorkerTileWithData} from '../source/worker_source.ts'; const parsedTiles = await Promise.all(fixtureTiles.map(async (tile): Promise => { return await parseTile(tile, true) as WorkerTileWithData; })); test('performSymbolLayout', async ({bench}) => { await bench('performSymbolLayout', () => { for (const tileResult of parsedTiles) { for (const bucket of tileResult.buckets) { if (bucket instanceof SymbolBucket) { performSymbolLayout({ bucket, glyphMap: tileResult.glyphMap, glyphPositions: tileResult.glyphPositions, imageMap: tileResult.iconMap, imagePositions: tileResult.imageAtlas.iconPositions, showCollisionBoxes: false, canonical: tileResult.featureIndex.tileID.canonical, subdivisionGranularity: SubdivisionGranularitySetting.noSubdivision, hasPromoteId: false }); } } } }).run(); });