Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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
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()
Esempio n. 7
0
def test_integer_units():
    p = IntegerParameter('Test', units='V')
    assert p.units == 'V'