76 lines
1.8 KiB
Python
76 lines
1.8 KiB
Python
import pytest
|
|
|
|
import scgenerator as sc
|
|
|
|
PARAMS1 = sc.Parameters(
|
|
name="Dudley2006",
|
|
wavelength=835e-9,
|
|
width=50e-15,
|
|
peak_power=10e3,
|
|
repetition_rate=20e6,
|
|
shape="sech",
|
|
# fiber
|
|
length=15e-2,
|
|
raman_type="measured",
|
|
beta2_coefficients=[
|
|
-11.830e-27,
|
|
8.1038e-42,
|
|
-9.5205e-57,
|
|
2.0737e-71,
|
|
-5.3943e-86,
|
|
1.3486e-100,
|
|
-2.5495e-115,
|
|
3.0524e-130,
|
|
-1.7140e-145,
|
|
],
|
|
gamma=0.11,
|
|
# simulation
|
|
tolerated_error=1e-6,
|
|
wavelength_window=[400e-9, 1500e-9],
|
|
t_num=8192,
|
|
quantum_noise=False,
|
|
z_num=128,
|
|
)
|
|
PARAMS2 = sc.Parameters(
|
|
name="dual comb",
|
|
wavelength=1056e-9,
|
|
width=78e-15,
|
|
peak_power=13e3,
|
|
repetition_rate=20e6,
|
|
shape="gaussian",
|
|
# fiber
|
|
length=20e-2,
|
|
n2=2.2e-20,
|
|
raman_type="measured",
|
|
dispersion_file="tests/data/PM1050NEG_dispersion.npz",
|
|
loss_file="tests/data/PM1050NEG_loss.npz",
|
|
effective_area_file="tests/data/PM1050NEG_aeff_slow.npz",
|
|
# simulation
|
|
interpolation_degree=12,
|
|
tolerated_error=1e-8,
|
|
wavelength_window=[500e-9, 1500e-9],
|
|
t_num=8192,
|
|
quantum_noise=True,
|
|
z_num=128,
|
|
)
|
|
|
|
|
|
def test_poly_dispersion_grid_size():
|
|
|
|
params = PARAMS1.compile()
|
|
disp_ind = params.compute("dispersion_ind")
|
|
|
|
assert disp_ind is not None
|
|
assert all((params.l[disp_ind] < 1500e-9) & (params.l[disp_ind] > 400e-9))
|
|
assert len(params.compute("beta2_arr")) == params.t_num
|
|
|
|
|
|
def test_custom_dispersion_grid_size():
|
|
params = PARAMS2.compile()
|
|
params.compute("t")
|
|
disp_ind = params.compute("dispersion_ind")
|
|
|
|
assert disp_ind is not None
|
|
assert all((params.l[disp_ind] < 1500e-9) & (params.l[disp_ind] > 400e-9))
|
|
assert len(params.compute("beta2_arr")) == params.t_num
|