import { describe, expect, it } from 'vitest';

import { __mlbPropInternals } from '../grok';

describe('spread signal benchmark', () => {
  it('suppresses tiny MLB projected margins that only create fake dog value off the run line', () => {
    expect(__mlbPropInternals.deriveSpreadSignal({
      league: 'mlb',
      projectedMargin: 0.3,
      marketHomeSpread: -1.5,
      homeTeam: 'Braves',
      awayTeam: 'Royals',
      winnerPick: 'Braves',
    })).toEqual({
      forecastSide: 'Braves',
      spreadEdge: 0,
      spreadValue: -1.2,
    });
  });

  it('preserves half-run MLB run-line edges instead of zeroing them out', () => {
    expect(__mlbPropInternals.deriveSpreadSignal({
      league: 'mlb',
      projectedMargin: 2,
      marketHomeSpread: -1.5,
      homeTeam: 'Dodgers',
      awayTeam: 'Diamondbacks',
      winnerPick: 'Dodgers',
    })).toEqual({
      forecastSide: 'Dodgers',
      spreadEdge: 0.5,
      spreadValue: 0.5,
    });
  });

  it('preserves meaningful MLB run-line edges', () => {
    expect(__mlbPropInternals.deriveSpreadSignal({
      league: 'mlb',
      projectedMargin: 2.5,
      marketHomeSpread: -1.5,
      homeTeam: 'Mariners',
      awayTeam: 'Guardians',
      winnerPick: 'Mariners',
    })).toEqual({
      forecastSide: 'Mariners',
      spreadEdge: 1,
      spreadValue: 1,
    });
  });

  it('keeps non-MLB spread behavior unchanged', () => {
    expect(__mlbPropInternals.deriveSpreadSignal({
      league: 'nba',
      projectedMargin: 7,
      marketHomeSpread: -5.5,
      homeTeam: 'Lakers',
      awayTeam: 'Celtics',
      winnerPick: 'Lakers',
    })).toEqual({
      forecastSide: 'Lakers',
      spreadEdge: 1.5,
      spreadValue: 1.5,
    });
  });
});
