def testArrayOperations(unit_database_len_time) -> None: unit_database = unit_database_len_time m = Quantity.CreateDerived(OrderedDict([("Table size", ["m", 1])])) km_city = Quantity.CreateDerived(OrderedDict([("City size", ["km", 1])])) s1: Array[List[float]] = Array.CreateWithQuantity(m, [1]) s2: Array[List[float]] = Array.CreateWithQuantity(km_city, [0.01]) initial1 = s1.GetQuantity().GetComposingUnits() initial2 = s2.GetQuantity().GetComposingUnits() # Check that they doesn't raise ComposedUnitError s1.GetValues() s2.GetValues() quantity, value = unit_database.Multiply(m, km_city, 1, 0.01) assert initial1 == s1.GetQuantity().GetComposingUnits() assert initial2 == s2.GetQuantity().GetComposingUnits() calculated1: Array[List[float]] = Array.CreateWithQuantity(quantity, [value]) array = s1 * s2 str(array) # just to see if it works... assert calculated1 == s1 * s2 quantity, value = unit_database.Sum(m, km_city, 1, 0.01) assert Array.CreateWithQuantity(quantity, [value]) == s1 + s2 quantity, value = unit_database.Subtract(m, km_city, 1, 0.01) assert Array.CreateWithQuantity(quantity, [value]) == s1 - s2
def testDivision(unit_database_len_time) -> None: unit_database = unit_database_len_time m = Quantity.CreateDerived(OrderedDict([("Table size", ["m", 1])])) km_city = Quantity.CreateDerived(OrderedDict([("City size", ["km", 1])])) quantity, value = unit_database.Divide(m, km_city, 1, 0.01) calculated1: Array[List[float]] = Array.CreateWithQuantity(quantity, [value]) s1: Array[List[float]] = Array.CreateWithQuantity(m, [1]) s2: Array[List[float]] = Array.CreateWithQuantity(km_city, [0.01]) assert calculated1 == s1 / s2
def testDivision(unit_database_len_time): unit_database = unit_database_len_time m = Quantity.CreateDerived(odict([("Table size", ["m", 1])])) km_city = Quantity.CreateDerived(odict([("City size", ["km", 1])])) quantity, value = unit_database.Divide(m, km_city, 1, 0.01) calculated1 = Array.CreateWithQuantity(quantity, [value]) s1 = Array.CreateWithQuantity(m, [1]) s2 = Array.CreateWithQuantity(km_city, [0.01]) assert calculated1 == s1 / s2
def testNumberInteractions(unit_database_len_time): import numpy m = Quantity.CreateDerived(odict([("Table size", ["m", 1])])) s1 = Array.CreateWithQuantity(m, list(range(10))) s2 = Array.CreateWithQuantity(m, [x + x for x in range(10)]) assert s1 == 0 + s1 assert s1 == s1 + 0 assert s2 == s1 + s1 num_arr = Array.CreateWithQuantity(m, numpy.array([x for x in range(10)])) sum_array = num_arr + s1 assert isinstance(sum_array.values, numpy.ndarray) sum_array2 = num_arr + numpy.array([x for x in range(10)]) assert isinstance(sum_array2.values, numpy.ndarray) tup_arr = Array.CreateWithQuantity(m, tuple([x for x in range(10)])) tup_arr = tup_arr + 1 assert isinstance(tup_arr.values, tuple)
def testNumberInteractions(unit_database_len_time) -> None: import numpy m = Quantity.CreateDerived(OrderedDict([("Table size", ["m", 1])])) s1: Array[List[int]] = Array.CreateWithQuantity(m, list(range(10))) s2: Array[List[int]] = Array.CreateWithQuantity(m, [x + x for x in range(10)]) assert s1 == 0 + s1 assert s1 == s1 + 0 assert s2 == s1 + s1 num_arr: Array[numpy.ndarray[numpy.int64]] = Array.CreateWithQuantity( m, numpy.array([x for x in range(10)]) ) sum_array = num_arr + s1 assert isinstance(sum_array.values, numpy.ndarray) sum_array2: Array[numpy.ndarray[numpy.int64]] = num_arr + numpy.array([x for x in range(10)]) assert isinstance(sum_array2.values, numpy.ndarray) tup_arr: Array[Tuple[int]] = Array.CreateWithQuantity(m, tuple([x for x in range(10)])) tup_arr = tup_arr + 1 assert isinstance(tup_arr.values, tuple) assert tup_arr.values == (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)