def test_unit_composition_conversion(): kamodo = Kamodo('a(x[kg])[m] = x', verbose=True) kamodo['b(x[cm])[g]'] = 'x' kamodo['c'] = 'b(a)' assert kamodo.c.meta['units'] == 'g' assert kamodo.c.meta['arg_units']['x'] == 'kg' assert kamodo.c(3) == kamodo.b(100*kamodo.a(3))
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_unit_conversion(): kamodo = Kamodo('$a(x[m])[km/s] = x$', '$b(y[cm])[m/s] = y$', verbose=True) kamodo['c(x[m],y[m])[m/s]'] = '$a + b$' assert kamodo.c(1, 2) == 1000 + 200