def test_integer_bounds(): p = IntegerParameter('Test', minimum=0, maximum=10) p.value = 10 assert p.value == 10 with pytest.raises(ValueError): p.value = 100 # above maximum with pytest.raises(ValueError): p.value = -100 # below minimum
def test_integer_value(): p = IntegerParameter('Test') with pytest.raises(ValueError): v = p.value # not set with pytest.raises(ValueError): p.value = 'a' # not an integer p.value = 0.5 # a float assert p.value == 0 p.value = False # a boolean assert p.value == 0 p.value = 10 assert p.value == 10
def test_integer_value(): p = IntegerParameter('Test', units='tests') with pytest.raises(ValueError): _ = p.value # not set with pytest.raises(ValueError): p.value = 'a' # not an integer p.value = 0.5 # a float assert p.value == 0 p.value = False # a boolean assert p.value == 0 p.value = 10 assert p.value == 10 p.value = '5' assert p.value == 5 p.value = '11 tests' assert p.value == 11 assert p.units == 'tests' with pytest.raises(ValueError): p.value = '31 incorrect units' # not the correct units
class XYmove(Procedure, StageAndSpec): num_avg = IntegerParameter('Averages', default=1) initial_x = FloatParameter('Final x', units='micrometers', default=0) final_x = FloatParameter('Final x', units='micrometers', default=10) initial_y = FloatParameter('Final x', units='micrometers', default=0) final_y = FloatParameter('Final x', units='micrometers', default=10) dx = FloatParameter('Paso dx', units='micrometers', default=1) dy = FloatParameter('Paso dy', units='micrometers', default=1) #step = IntegerParameter('Step', default=1) #wavelength = ListParameter('Wavelength [nm]',units='nm') #intensity = ListParameter('Intensity [a.u.]', units='a.u.') DATA_COLUMNS = ['Wavelength [nm]', 'Intensity [a.u.]'] def startup(self): log.info("CONNECTING to stage and spectrometer.") self.connect() def execute(self): x_array_scan = np.arange(self.initial_x, self.final_x, self.dx) y_array_scan = np.arange(self.initial_y, self.final_y, self.dy) x_positions, y_positions = self.generate_positions_list( self.dx, x_array_scan, self.dy, y_array_scan) for i, j in zip(x_positions, y_positions): self.stage.move_to_x_y(i, j) intensity, wavelength = self.ccs.take_data(integration_time=None, num_avg=self.num_avg, use_background=False) self.emit('results', { 'Wavelength [nm]': wavelength, 'Intensity [a.u.]': intensity }) log.info('Spectra measured in {}'.format( self.stage.get_x_y_position())) if i == x_positions[-1] and j == y_positions[-1]: log.info('FINISHED SCANNING.') time.sleep(0.01) if self.should_stop(): log.info("User aborted the procedure") break def shutdown(self): self.disconnect()
def test_integer_units(): p = IntegerParameter('Test', units='V') assert p.units == 'V'