Example #1
0
 def test_with_static_range_and_units(self):
     f = Float(setter=True,
               range=FloatRangeValidator(-1.0, 1.0, 0.01, unit='V'))
     u = get_unit_registry()
     assert f.pre_set(None, 0.1) == 0.1
     with raises(ValueError):
         f.pre_set(None, -2.0)
     assert f.pre_set(None, u.parse_expression('10 mV')) == 10.
     with raises(ValueError):
         f.pre_set(None, u.parse_expression('0.1 mV'))
Example #2
0
    def test_with_dynamic_range_and_units(self):

        class RangeHolder(Parent):

            n = 0.0

            def _range_test(self):
                self.n += 100
                return FloatRangeValidator(-1000., 1000., step=self.n,
                                           unit='mV')

        o = RangeHolder()
        f = Float(setter=True, range='test', unit='V')
        assert f.pre_set(o, .1) == 0.1
        with raises(ValueError):
            f.pre_set(o, -5)
        o.discard_range('test')
        with raises(ValueError):
            f.pre_set(o, 0.1)

        u = get_unit_registry()
        assert f.pre_set(o, u.parse_expression('200 mV')) == 0.2
        with raises(ValueError):
            f.pre_set(o, u.parse_expression('100 mV'))
Example #3
0
 def test_unit_conversion(self):
     fv = FloatRangeValidator(-1.0, 1.0, unit='V')
     u = get_unit_registry()
     assert fv.validate(0.1)
     assert fv.validate(100*u.parse_expression('mV'))
     assert not fv.validate(0.1*u.parse_expression('kV'))
Example #4
0
 def test_unit_conversion(self):
     fv = FloatRangeValidator(-1.0, 1.0, unit='V')
     u = get_unit_registry()
     assert fv.validate(0.1)
     assert fv.validate(100 * u.parse_expression('mV'))
     assert not fv.validate(0.1 * u.parse_expression('kV'))
Example #5
0
def test_set_unit_registry(teardown):
    ureg = UnitRegistry()
    set_unit_registry(ureg)

    assert get_unit_registry() is ureg
Example #6
0
 def test_set_with_unit(self):
     f = Float(setter=True, unit='mV')
     u = get_unit_registry()
     assert f.pre_set(None, u.parse_expression('10 V')) == 10000.