import pandas as pd

from psx_signal.data.validation import DataValidator


def test_validator_reports_errors_without_silent_correction(market_data: pd.DataFrame) -> None:
    bad = market_data.iloc[:5].copy()
    bad = pd.concat([bad, bad.iloc[[0]]], ignore_index=True)
    bad.loc[1, "high"] = bad.loc[1, "low"] - 1
    original = bad.copy(deep=True)
    issues = DataValidator().validate(bad)
    codes = {issue.code for issue in issues}
    assert {"duplicate_symbol_date", "high_below_low"}.issubset(codes)
    pd.testing.assert_frame_equal(bad, original)

