import { describe, expect, it } from 'vitest';
import { generateSeedLayout, suggestSkeletonLayouts } from './layout-seeds.js';
describe('layout-seeds', () => {
it('generates interior-only rock placements for columns_with_gaps', () => {
const plan = generateSeedLayout('columns_with_gaps', 12, 10, 'medium');
expect(plan.rocks.length).toBeGreaterThan(0);
for (const rock of plan.rocks) {
expect(rock.x).toBeGreaterThan(0);
expect(rock.x).toBeLessThan(11);
expect(rock.y).toBeGreaterThan(0);
expect(rock.y).toBeLessThan(9);
}
});
it('generates interior-only rock placements for switchback_lanes', () => {
const plan = generateSeedLayout('switchback_lanes', 14, 12, 'hard');
expect(plan.rocks.length).toBeGreaterThan(0);
for (const rock of plan.rocks) {
expect(rock.x).toBeGreaterThan(0);
expect(rock.x).toBeLessThan(13);
expect(rock.y).toBeGreaterThan(0);
expect(rock.y).toBeLessThan(11);
}
});
it('returns both suggestion patterns', () => {
const plans = suggestSkeletonLayouts(12, 10, 'easy');
const patterns = plans.map((plan) => plan.pattern).sort();
expect(patterns).toEqual(['columns_with_gaps', 'switchback_lanes']);
});
});