45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
import { describe, it, expect } 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);
|
|
});
|
|
}); |