def test_compose_unit_add(): kamodo = Kamodo(verbose=True) @kamodofy(units='m', arg_units={'x': 'kg'}) def a(x): return x kamodo['a'] = a kamodo['b(y[cm])[km]'] = 'y' kamodo['c(x,y)[km]'] = '2*a + 3*b' assert kamodo.c.meta['arg_units']['x'] == str(get_abbrev(get_unit('kg'))) assert kamodo.c.meta['arg_units']['y'] == str(get_abbrev(get_unit('cm'))) result = 2*(3)/1000 + 3*(3) assert kamodo.c(3, 3) == result
def test_multi_unit_composition(): kamodo = Kamodo('a(x[s])[km] = x', verbose=True) kamodo['b(x[cm])[g]'] = 'x' kamodo['c'] = 'b(a)' print(kamodo.c.meta) assert kamodo.c.meta['units'] == 'g' assert kamodo.c.meta['arg_units']['x'] == str(get_abbrev(get_unit('s')))