import pytest import scgenerator as sc from scgenerator.evaluator import EvaluatorError def test_dispersion_logic(): params = sc.Parameters(wavelength=1550e-9, dispersion_parameter=5e-6) assert params.compute("beta2_coefficients") == pytest.approx([-6.3772409974749684e-27]) params = sc.Parameters(wavelength=1550e-9, dispersion_parameter=5e-6, dispersion_slope=25) assert params.compute("beta2_coefficients") == pytest.approx( [-6.3772409974749684e-27, 5.116448086629504e-41] ) def test_relaxed_compute(): params = sc.Parameters(shape="gaussian", energy=1e-6, width=1e-12) params.compute("peak_power") with pytest.raises(EvaluatorError): params = sc.Parameters(energy=1e-6, width=1e-12) params.compute("peak_power") params = sc.Parameters(energy=1e-6, width=1e-12) assert params.compute("peak_power", strict=False) is None