UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

35 lines (34 loc) 1.73 kB
import PrintMaskManager from './printMaskManager'; import { describe, expect, it } from 'vitest'; describe('PrintMaskManager Class', () => { it('tests getOptimalResolution method', () => { let mapSize = [600, 400]; let printMapSize = [600, 400]; // landscape layout let scale = 10000; let result = PrintMaskManager.getOptimalResolution(mapSize, printMapSize, scale); expect(result).toBeCloseTo(3.5, 1); scale = 100; // 100x smaller extent result = PrintMaskManager.getOptimalResolution(mapSize, printMapSize, scale); expect(result).toBeCloseTo(0.035, 3); //rounded up to two decimal places mapSize = [600, 400]; printMapSize = [400, 600]; // Portrait layout scale = 10000; result = PrintMaskManager.getOptimalResolution(mapSize, printMapSize, scale); expect(result).toBeCloseTo(5.3, 1); //rounded up to two decimal places }); it('tests getOptimalScale method', () => { const mapScales = [100, 1000, 2500, 5000, 10000, 25000, 50000]; const mapSize = [600, 400]; let printMapSize = [600, 400]; // landscape layout let mapResolution = 1; let result = PrintMaskManager.getOptimalScale(mapSize, mapResolution, printMapSize, mapScales); expect(result).toBe(2500); mapResolution = 10; // X10 resolution result = PrintMaskManager.getOptimalScale(mapSize, mapResolution, printMapSize, mapScales); expect(result).toBe(25000); printMapSize = [400, 600]; // Portrait layout mapResolution = 10; result = PrintMaskManager.getOptimalScale(mapSize, mapResolution, printMapSize, mapScales); expect(result).toBe(10000); }); });