import { describe, it, expect } from 'vitest';
import { generateAllScenarios } from '../audit/scenarios';


describe('Cenários de Validação Bibliográfica - TesteBib', () => {
  const bibScenarios = generateAllScenarios().filter(s => s.isBibliographic);

  it('deve ter carregado ao menos um cenário bibliográfico', () => {
    expect(bibScenarios.length).toBeGreaterThan(0);
  });

  for (const s of bibScenarios) {
    describe(`Cenário: ${s.id}`, () => {
      it('deve conter referência e enunciado', () => {
        expect(s.bibliografiaReferencia).toBeTruthy();
        expect(s.enunciadoParafraseado).toBeTruthy();
      });

      // Aqui testaremos os gabaritos se necessário
      // Como os resultados já foram pre-calculados, 
      // podemos validar se os intermediários batem com os limites.
      it('deve ter valores q dentro do range esperado', () => {
        if (s.intermediates.q !== undefined && s.expectedRanges.q) {
          const qVal = s.intermediates.q as number;
          expect(qVal).toBeGreaterThanOrEqual(s.expectedRanges.q.min);
          expect(qVal).toBeLessThanOrEqual(s.expectedRanges.q.max);
        }
      });
    });
  }
});
