Source code for silq.tests.test_acquisition_parameters

import unittest

from silq import config
from silq.tools.config import DictConfig
from silq.parameters import AcquisitionParameter

# Need this to ensure that no error is raised when creating AcquisitionParameter
AcquisitionParameter.get = lambda self: 42


[docs]class TestAcquisitionParameterConfig(unittest.TestCase):
[docs] def setUp(self): config.clear() config.properties = {'default_environment': 'test_env'}
[docs] def tearDown(self): config.clear() config.properties = {}
[docs] def test_no_env(self): p = AcquisitionParameter(name='test_param', names=[], properties_attrs=['attr1']) self.assertIsNone(p.properties_config) self.assertIsNone(p.parameter_config) config.test_env = {} p = AcquisitionParameter(name='test_param', names=[], properties_attrs=['attr1']) self.assertIsNone(p.properties_config) self.assertIsNone(p.parameter_config) config.test_env.parameters = {} p = AcquisitionParameter(name='test_param', names=[], properties_attrs=['attr1']) self.assertIsNone(p.properties_config) self.assertIsNone(p.parameter_config) config.test_env.parameters.test_param = {} config.test_env.properties = {} p = AcquisitionParameter(name='test_param', names=[], properties_attrs=['attr1']) self.assertIsInstance(p.properties_config, DictConfig) self.assertIsInstance(p.parameter_config, DictConfig)
[docs] def test_properties_config(self): config.test_env = {'properties': {}} p = AcquisitionParameter(name='test_param', names=[], properties_attrs=['attr1']) self.assertIsInstance(p.properties_config, DictConfig) self.assertFalse(hasattr(p, 'attr1')) config.test_env.properties.attr1 = 42 self.assertIn('attr1', p.properties_config) self.assertEqual(p.attr1, 42) p.attr1 = 43 self.assertEqual(p.attr1, 43) config.test_env.properties.attr1 = 42 self.assertIn('attr1', p.properties_config) self.assertEqual(p.attr1, 42)
[docs] def test_parameters_config(self): config.test_env = {'parameters': {}} p = AcquisitionParameter(name='test_param', names=[]) self.assertIsNone(p.parameter_config) config.test_env.parameters.test_param = {} p = AcquisitionParameter(name='test_param', names=[]) self.assertIsInstance(p.parameter_config, DictConfig) config.test_env.parameters.test_param.samples = 100 self.assertEqual(p.samples, 100) p = AcquisitionParameter(name='test_param', names=[]) self.assertEqual(p.samples, 100)
if __name__ == '__main__': unittest.main()