import pandas as pd from femsurrogate.data.bounds import DEFAULT_PARAMETER_BOUNDS from femsurrogate.data.dataset import build_dataset, run_beam2d_case from femsurrogate.data.sampling import generate_lhs_samples from femsurrogate.data.schema import TARGET_COLUMNS, BeamParameters def test_run_beam2d_case_returns_physical_responses(): result = run_beam2d_case( BeamParameters(L_m=2.0, b_m=0.05, h_m=0.1, E_pa=200e9, P_n=1000.0) ) assert result.tip_uy_m < 0.0 assert result.max_abs_bending_stress_pa > 0.0 assert result.mass_kg > 0.0 assert result.compliance_j > 0.0 def test_build_dataset_preserves_samples_and_adds_schema_columns(): samples = generate_lhs_samples(DEFAULT_PARAMETER_BOUNDS, n=4, seed=20260521) dataset = build_dataset(samples) assert len(dataset) == len(samples) pd.testing.assert_frame_equal(dataset[list(samples.columns)], samples) for column in ["A_m2", "I_m4", *TARGET_COLUMNS]: assert column in dataset.columns