ts-tiled-converter
Version:
Typescript library to convert tiled map to Studio map
40 lines (37 loc) • 1.75 kB
text/typescript
import type { TileMetaData } from './types';
import { initNDSpace, resolveNDSpaceId } from './ndSpace';
describe('ndSpace', () => {
let tiles: TileMetaData[] = [
{ globalId: 0, transformId: 1 },
{ globalId: 1, transformId: 0 },
{ globalId: 2, transformId: 0 },
{ globalId: 3, transformId: 0 },
{ globalId: 0, transformId: 0 }, // This one is different from first one because it's rotated differently
];
it('resolve ids in a stable manner', () => {
const cache = initNDSpace<TileMetaData, 0>(0);
// First initialization
expect(resolveNDSpaceId(cache, [tiles[0]])).toEqual(0);
expect(resolveNDSpaceId(cache, [tiles[0], tiles[2]])).toEqual(1);
expect(resolveNDSpaceId(cache, [tiles[0], tiles[1]])).toEqual(2);
expect(resolveNDSpaceId(cache, [tiles[0], tiles[2], tiles[3]])).toEqual(3);
expect(resolveNDSpaceId(cache, [tiles[0], tiles[2], tiles[3], tiles[4]])).toEqual(4);
expect(resolveNDSpaceId(cache, [tiles[4]])).toEqual(5);
// Similar instances
expect(resolveNDSpaceId(cache, [tiles[0]])).toEqual(0);
expect(resolveNDSpaceId(cache, [tiles[0], tiles[2]])).toEqual(1);
expect(resolveNDSpaceId(cache, [tiles[0], tiles[1]])).toEqual(2);
expect(resolveNDSpaceId(cache, [tiles[0], tiles[2], tiles[3]])).toEqual(3);
expect(resolveNDSpaceId(cache, [tiles[0], tiles[2], tiles[3], tiles[4]])).toEqual(4);
expect(resolveNDSpaceId(cache, [tiles[4]])).toEqual(5);
// Test itemsOrderedByIds
expect(cache.itemsOrderedByIds).toEqual([
[]],
[], tiles[2]],
[], tiles[1]],
[], tiles[2], tiles[3]],
[], tiles[2], tiles[3], tiles[4]],
[]],
]);
});
});