import { describe, expect, it } from 'vitest';
import { TrackTurns } from './TrackTurns';

describe('TrackTurns', () => {
  it('should create track turns', () => {
    const turns = TrackTurns.create(10);
    expect(turns.toNumber()).toBe(10);
    expect(turns.props).toBe(10);
  });

  it('should allow zero turns', () => {
    const turns = TrackTurns.create(0);
    expect(turns.toNumber()).toBe(0);
  });

  it('should throw for negative turns', () => {
    expect(() => TrackTurns.create(-1)).toThrow('Track turns cannot be negative');
  });

  it('should equal same turns', () => {
    const t1 = TrackTurns.create(10);
    const t2 = TrackTurns.create(10);
    expect(t1.equals(t2)).toBe(true);
  });

  it('should not equal different turns', () => {
    const t1 = TrackTurns.create(10);
    const t2 = TrackTurns.create(20);
    expect(t1.equals(t2)).toBe(false);
  });
});