maplibre-gl
Version:
BSD licensed community fork of mapbox-gl, a WebGL interactive maps library
34 lines (30 loc) • 1.49 kB
text/typescript
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<WorkerTileWithData> => {
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();
});