Example #1
0
    def test_undefined_t_func(self):

        self.field_00 = field.Field()

        with self.assertRaises(AttributeError) as context:
            self.field_00.build_rabi_freq_t_func('f')

        self.assertTrue("module 'maxwellbloch.t_funcs' has no attribute 'f'" in
                        str(context.exception))
Example #2
0
    def test_incorrect_num_factors(self):

        with self.assertRaises(ValueError) as context:
            field_00 = field.Field(coupled_levels=[[0, 1], [0, 2]],
                                   factors=[1.0])

        self.assertTrue('The length of factors must be the same as the length '
                        'of coupled_levels.' in str(context.exception))

        pass
Example #3
0
    def test_to_from_json(self):

        import os

        filepath = "test_field_02.json"

        self.field_02.to_json(filepath)

        field_03 = field.Field().from_json(filepath)
        os.remove(filepath)

        self.assertEqual(self.field_02.to_json_str(), field_03.to_json_str())
Example #4
0
    def test_init_default(self):
        """  Test Default Initialise """

        field_00 = field.Field()

        self.assertEqual(field_00.coupled_levels, [])
        self.assertEqual(field_00.detuning, 0.0)
        self.assertEqual(field_00.detuning_positive, True)
        self.assertEqual(field_00.label, '')
        self.assertEqual(field_00.rabi_freq, 0.0)
        self.assertEqual(field_00.rabi_freq_t_args, {
            'ampl_0': 1.0,
            'on_0': 0.0,
            'off_0': 1.0
        })
        self.assertEqual(field_00.rabi_freq_t_func.__name__, 'square_0')
        t_func = t_funcs.square(0)
        args = field_00.rabi_freq_t_args
        for t in [0.1, 0.3, 0.5, 0.7, 0.9]:
            self.assertEqual(field_00.rabi_freq_t_func(t, args),
                             t_func(t, args))
Example #5
0
    def add_field(self, field_dict):
        """ Add a Field to the list given a dict representing the field. """

        self.fields.append(field.Field(**field_dict))
Example #6
0
    def test_to_from_json_str(self):

        field_00 = field.Field()
        field_01 = field.Field.from_json_str(field_00.to_json_str())

        self.assertEqual(field_00.to_json_str(), field_01.to_json_str())
Example #7
0
    def test_multiple_factors(self):

        field_00 = field.Field(coupled_levels=[[0, 1], [0, 2]], factors=[])
        self.assertEqual(field_00.factors, [1.0, 1.0])
Example #8
0
class TestBuildRabiFreqTFunc(unittest.TestCase):

    field_00 = field.Field()

    def test_null(self):

        self.field_00.build_rabi_freq_t_func(None)
        self.field_00.build_rabi_freq_t_args(None)

        self.assertEqual(self.field_00.rabi_freq_t_func.__name__, 'square_0')
        args = self.field_00.rabi_freq_t_args
        for t in [0.1, 0.3, 0.5, 0.7, 0.9]:
            self.assertEqual(self.field_00.rabi_freq_t_func(t, args),
                             t_funcs.square(0)(t, args))

        self.assertEqual(self.field_00.rabi_freq_t_args, {
            'ampl_0': 1.0,
            'on_0': 0.0,
            'off_0': 1.0
        })

    def test_square(self):

        self.field_00.build_rabi_freq_t_func('square')
        self.field_00.build_rabi_freq_t_args({
            'on': 0.3,
            'off': 0.7,
            'ampl': 1.0
        })

        self.assertEqual(self.field_00.rabi_freq_t_func.__name__, 'square_0')
        args = self.field_00.rabi_freq_t_args
        for t in [0.1, 0.3, 0.5, 0.7, 0.9]:
            self.assertEqual(self.field_00.rabi_freq_t_func(t, args),
                             t_funcs.square(0)(t, args))

    def test_ramp_onoff(self):

        self.field_00.build_rabi_freq_t_func('ramp_onoff', 12)
        self.field_00.build_rabi_freq_t_args(
            {
                'on': 0.3,
                'off': 0.7,
                'ampl': 1.0,
                'fwhm': 0.1
            }, 12)

        self.assertEqual(self.field_00.rabi_freq_t_func.__name__,
                         'ramp_onoff_12')
        args = self.field_00.rabi_freq_t_args
        for t in [0.1, 0.3, 0.5, 0.7, 0.9]:
            self.assertEqual(self.field_00.rabi_freq_t_func(t, args),
                             t_funcs.ramp_onoff(12)(t, args))

    def test_undefined_t_func(self):

        self.field_00 = field.Field()

        with self.assertRaises(AttributeError) as context:
            self.field_00.build_rabi_freq_t_func('f')

        self.assertTrue("module 'maxwellbloch.t_funcs' has no attribute 'f'" in
                        str(context.exception))