コード例 #1
0
 def test__dimension_equal(self):
     time_dim = Dimension(1, 2, -3, 0, -1, 0, 1)
     dim1 = Dimension(1, 0, 3, 0, 2, 1, 0)
     dim2 = Dimension(1, 0, 3, 0, 2, 1, 0)
     self.assertEqual(dim2, dim1)
     self.assertNotEqual(dim1, time_dim)
     self.assertNotEqual(dim2, time_dim)
コード例 #2
0
 def test__unit_exponentiation(self):
     m_dim = Dimension(0, 1, 0, 0, 0, 0, 0)
     m = SingularUnit('metre',
                      'm',
                      m_dim,
                      identifier=OM.NAMESPACE + 'metre')
     m3 = UnitExponentiation(m, 3)
     m3_dim = Dimension(0, 3, 0, 0, 0, 0, 0)
     self.assertTrue(m3.label() is None)
     self.assertEqual('m3', m3.symbol().value)
     self.assertEqual(m3_dim, m3.dimensions)
コード例 #3
0
 def test__unit_division(self):
     m_dim = Dimension(0, 1, 0, 0, 0, 0, 0)
     m = SingularUnit('metre',
                      'm',
                      m_dim,
                      identifier=OM.NAMESPACE + 'metre')
     km = PrefixedUnit(SI.KILO, m, OM.NAMESPACE + 'kilometre')
     m_per_km = UnitDivision(m, km)
     m_per_km_dim = Dimension(0, 0, 0, 0, 0, 0, 0)
     self.assertTrue(m_per_km.label() is None)
     self.assertEqual('m/km', m_per_km.symbol().value)
     self.assertEqual(m_per_km_dim, m_per_km.dimensions)
コード例 #4
0
 def test__dimension_subtraction(self):
     dim1 = Dimension(1, 0, 3, 0, 2, 1, 0)
     dim2 = Dimension(1, 0, 3, 0, 2, 1, 0)
     dim_sub = Dimension(1, 0, 3, 0, 2, 1, 0)
     dim3 = Dimension(1, 2, -3, 0, -1, 0, 1)
     self.assertEqual(dim_sub, dim1)
     self.assertEqual(dim_sub, dim2)
     try:
         dim4 = dim3 - dim2
         self.fail("Dimensions should not be allowed to be subtracted.")
     except DimensionalException as error:
         self.assertTrue(True)
コード例 #5
0
 def test__unit_multiplication(self):
     m_dim = Dimension(0, 1, 0, 0, 0, 0, 0)
     t_dim = Dimension(1, 0, 0, 0, 0, 0, 0)
     m = SingularUnit('metre',
                      'm',
                      m_dim,
                      identifier=OM.NAMESPACE + 'metre')
     s = SingularUnit('second',
                      's',
                      t_dim,
                      identifier=OM.NAMESPACE + 'second')
     ms = UnitMultiplication(m, s)
     ms_dim = Dimension(1, 1, 0, 0, 0, 0, 0)
     self.assertTrue(ms.label() is None)
     self.assertEqual('m.s', ms.symbol().value)
     self.assertEqual(ms_dim, ms.dimensions)
コード例 #6
0
 def test__unit_compound_1(self):
     m_dim = Dimension(0, 1, 0, 0, 0, 0, 0)
     t_dim = Dimension(1, 0, 0, 0, 0, 0, 0)
     m = SingularUnit('metre',
                      'm',
                      m_dim,
                      identifier=OM.NAMESPACE + 'metre')
     s = SingularUnit('second',
                      's',
                      t_dim,
                      identifier=OM.NAMESPACE + 'second')
     ss = UnitMultiplication(s, s)
     ms2 = UnitDivision(m, ss)
     ms2_dim = Dimension(-2, 1, 0, 0, 0, 0, 0)
     self.assertTrue(ms2.label() is None)
     self.assertEqual('m/(s.s)', ms2.symbol().value)
     self.assertEqual(ms2_dim, ms2.dimensions)
コード例 #7
0
 def __init__(self,
              label=None,
              symbol=None,
              dimensions=Dimension(),
              identifier=None):
     super().__init__(label, symbol, identifier)
     self.dimensions = dimensions
     Unit.__add_unit(self)
コード例 #8
0
 def __init__(self, base, exponent, symbol=None, identifier=None):
     dimensions = Dimension.pow(base.dimensions, exponent)
     if symbol is None:
         base_str = str(base.symbol())
         if isinstance(base, CompoundUnit):
             base_str = f'({base_str})'
         symbol = f'{base_str}{exponent}'
     super().__init__(symbol, dimensions, identifier)
     self.base = base
     self.exponent = exponent
コード例 #9
0
 def test_unit_get(self):
     m_dim = Dimension(0, 1, 0, 0, 0, 0, 0)
     t_dim = Dimension(1, 0, 0, 0, 0, 0, 0)
     m = SingularUnit('metre',
                      'm',
                      m_dim,
                      identifier=OM.NAMESPACE + 'metre')
     s = SingularUnit('second',
                      's',
                      t_dim,
                      identifier=OM.NAMESPACE + 'second')
     units = Unit.with_label("metre")
     self.assertEqual(1, len(units))
     self.assertEqual('metre', units[0].label().value)
     self.assertEqual('m', units[0].symbol().value)
     self.assertEqual(
         'http://www.ontology-of-units-of-measure.org/resource/om-2/metre',
         str(units[0].identifier))
     self.assertEqual(m_dim, units[0].dimensions)
コード例 #10
0
 def test__unit_multiple(self):
     m_dim = Dimension(0, 1, 0, 0, 0, 0, 0)
     m = SingularUnit('metre',
                      'm',
                      m_dim,
                      identifier=OM.NAMESPACE + 'metre')
     km = PrefixedUnit(SI.KILO, m, OM.NAMESPACE + 'kilometre')
     km100 = UnitMultiple(km, 100.0, symbol='100km')
     self.assertEqual('100.0 kilometre', km100.label().value)
     self.assertEqual('100km', km100.symbol().value)
     self.assertEqual(m_dim, km100.dimensions)
コード例 #11
0
 def test__singular_unit(self):
     m_dim = Dimension(0, 1, 0, 0, 0, 0, 0)
     m = SingularUnit('metre',
                      'm',
                      m_dim,
                      identifier=OM.NAMESPACE + 'metre')
     self.assertEqual('metre', m.label().value)
     self.assertEqual('m', m.symbol().value)
     self.assertEqual(
         'http://www.ontology-of-units-of-measure.org/resource/om-2/metre',
         str(m.identifier))
     self.assertEqual(m_dim, m.dimensions)
コード例 #12
0
 def __init__(self,
              label,
              symbol,
              dimensions=Dimension(),
              base_unit=None,
              factor=1.0,
              identifier=None):
     if base_unit is not None:
         dimensions = base_unit.dimensions
     super().__init__(label, symbol, dimensions, identifier)
     self.factor = factor
     self.baseUnit = base_unit
コード例 #13
0
 def test__prefixed_unit(self):
     m_dim = Dimension(0, 1, 0, 0, 0, 0, 0)
     m = SingularUnit('metre',
                      'm',
                      m_dim,
                      identifier=OM.NAMESPACE + 'metre')
     km = PrefixedUnit(SI.KILO, m, OM.NAMESPACE + 'kilometre')
     self.assertEqual('kilometre', km.label().value)
     self.assertEqual('km', km.symbol().value)
     self.assertEqual(
         'http://www.ontology-of-units-of-measure.org/resource/om-2/kilometre',
         str(km.identifier))
     self.assertEqual(m_dim, km.dimensions)
コード例 #14
0
 def test_singular_unit_conversion(self):
     m_dim = Dimension(0, 1, 0, 0, 0, 0, 0)
     m = SingularUnit('metre',
                      'm',
                      m_dim,
                      identifier=OM.NAMESPACE + 'metre')
     inch = SingularUnit('inch',
                         '\'',
                         base_unit=m,
                         factor=2.54e-2,
                         identifier=OM.NAMESPACE + 'inch')
     m_to_inch_factor = Unit.conversion_factor(m, inch)
     self.assertEqual(2.54e-2, m_to_inch_factor)
     inch_to_m_factor = Unit.conversion_factor(inch, m)
     self.assertEqual(39.3700787, inch_to_m_factor)
コード例 #15
0
 def test__dimension_print(self):
     time_dim = Dimension(1, 2, -3, 0, -1, 0, 1)
     result_str = time_dim.__str__()
     self.assertEqual("(T=1, L=2, M=-3, I=0, θ=-1, N=0, J=1)", result_str)
コード例 #16
0
 def test__dimension_division(self):
     dim1 = Dimension(1, 2, 3, 0, 2, 1, -3)
     dim2 = Dimension(1, 0, 3, 0, 2, 1, 1)
     dim_div = Dimension(0, 2, 0, 0, 0, 0, -4)
     dim4 = dim1 / dim2
     self.assertEqual(dim_div, dim4)
コード例 #17
0
 def test__dimension_multiplication(self):
     dim1 = Dimension(1, 2, 3, 0, 2, 1, -3)
     dim2 = Dimension(1, 0, 3, 0, 2, 1, 0)
     dim_mul = Dimension(2, 2, 6, 0, 4, 2, -3)
     dim4 = dim1 * dim2
     self.assertEqual(dim_mul, dim4)
コード例 #18
0
from exceptions.dimensionexception import DimensionalException
from omlib.constants import OM, SI
from omlib.dimension import Dimension
from omlib.unit import Unit, PrefixedUnit, SingularUnit, UnitMultiple, UnitDivision

if __name__ == '__main__':
    print(
        'This is the Python library for applying the Ontology of Units of Measure (OM).'
    )
    unit = Unit('metre', 'm')
    unit.add_preferred_label('meter', 'nl')
    print('Created unit {} with symbol {}'.format(unit.prefLabels,
                                                  unit.symbols))
    print('\tDutch name: {}'.format(unit.preferred_label('nl')))

    time_dim = Dimension(1, 0, 0, 0, 0, 0, 0)
    print('Created time dimension: {}'.format(time_dim))

    dim1 = Dimension(1, 0, 3, 0, 2, 1, 0)
    dim2 = Dimension(1, 0, 3, 0, 2, 1, 0)
    print('Compare dimensions: {} =?= {} {}'.format(time_dim, dim2,
                                                    time_dim == dim2))
    print('Compare dimensions: {} =?= {} {}'.format(dim1, dim2, dim1 == dim2))

    dim3 = dim1 + dim2
    print('Added dimensions: {}'.format(dim3))
    try:
        dim4 = time_dim + dim2
        print('Added dimensions: {}'.format(dim4))
    except DimensionalException as error:
        print(error)