import { describe, expect, it } from 'vitest'; import { PointsTable } from './PointsTable'; describe('PointsTable', () => { it('should create points table from record', () => { const table = new PointsTable({ 1: 25, 2: 18, 3: 15 }); expect(table.getPointsForPosition(1)).toBe(25); expect(table.getPointsForPosition(2)).toBe(18); expect(table.getPointsForPosition(3)).toBe(15); }); it('should create points table from map', () => { const map = new Map([[1, 25], [2, 18]]); const table = new PointsTable(map); expect(table.getPointsForPosition(1)).toBe(25); expect(table.getPointsForPosition(2)).toBe(18); }); it('should return 0 for invalid positions', () => { const table = new PointsTable({ 1: 25 }); expect(table.getPointsForPosition(0)).toBe(0); expect(table.getPointsForPosition(-1)).toBe(0); expect(table.getPointsForPosition(1.5)).toBe(0); expect(table.getPointsForPosition(2)).toBe(0); }); it('should equal same points table', () => { const t1 = new PointsTable({ 1: 25, 2: 18 }); const t2 = new PointsTable({ 1: 25, 2: 18 }); expect(t1.equals(t2)).toBe(true); }); it('should not equal different points table', () => { const t1 = new PointsTable({ 1: 25, 2: 18 }); const t2 = new PointsTable({ 1: 25, 2: 19 }); expect(t1.equals(t2)).toBe(false); }); it('should not equal table with different size', () => { const t1 = new PointsTable({ 1: 25 }); const t2 = new PointsTable({ 1: 25, 2: 18 }); expect(t1.equals(t2)).toBe(false); }); });