Files
scgenerator/tests/test_dispersion.py
Benoît Sierro b986baa640 version bump
2023-09-26 09:53:17 +02:00

74 lines
1.7 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()
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