42 lines
1.8 KiB
Python
42 lines
1.8 KiB
Python
import unittest
|
|
from scgenerator.physics.pulse import conform_pulse_params
|
|
|
|
|
|
class TestPulseMethods(unittest.TestCase):
|
|
def test_conform_pulse_params(self):
|
|
self.assertNotIn(None, conform_pulse_params("gaussian", t0=5, energy=6))
|
|
self.assertNotIn(None, conform_pulse_params("gaussian", width=5, energy=6))
|
|
self.assertNotIn(None, conform_pulse_params("gaussian", t0=5, power=6))
|
|
self.assertNotIn(None, conform_pulse_params("gaussian", width=5, power=6))
|
|
|
|
self.assertEqual(4, len(conform_pulse_params("gaussian", t0=5, energy=6)))
|
|
self.assertEqual(4, len(conform_pulse_params("gaussian", width=5, energy=6)))
|
|
self.assertEqual(4, len(conform_pulse_params("gaussian", t0=5, power=6)))
|
|
self.assertEqual(4, len(conform_pulse_params("gaussian", width=5, power=6)))
|
|
|
|
with self.assertRaisesRegex(
|
|
TypeError, "when soliton number is desired, both gamma and beta2 must be specified"
|
|
):
|
|
conform_pulse_params("gaussian", t0=5, energy=6, gamma=0.01)
|
|
with self.assertRaisesRegex(
|
|
TypeError, "when soliton number is desired, both gamma and beta2 must be specified"
|
|
):
|
|
conform_pulse_params("gaussian", t0=5, energy=6, beta2=0.01)
|
|
|
|
self.assertEqual(
|
|
5, len(conform_pulse_params("gaussian", t0=5, energy=6, gamma=0.01, beta2=2e-6))
|
|
)
|
|
self.assertEqual(
|
|
5, len(conform_pulse_params("gaussian", width=5, energy=6, gamma=0.01, beta2=2e-6))
|
|
)
|
|
self.assertEqual(
|
|
5, len(conform_pulse_params("gaussian", t0=5, power=6, gamma=0.01, beta2=2e-6))
|
|
)
|
|
self.assertEqual(
|
|
5, len(conform_pulse_params("gaussian", width=5, power=6, gamma=0.01, beta2=2e-6))
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|