28 lines
999 B
Python
28 lines
999 B
Python
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
|