def test_Kamodo_ambiguous_expr(): a, b, c, x, y, z = symbols('a b c x y z') with pytest.raises(NameError): kamodo = Kamodo() kamodo['a(b,c)'] = x ** 2 + y ** 2 kamodo = Kamodo() kamodo['a(x, y)'] = x ** 2 + y ** 2 assert kamodo.a(3, 4) == 3 ** 2 + 4 ** 2
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_Kamodo_expr(): a, b, c, x, y, z = symbols('a b c x y z') kamodo = Kamodo(a=x ** 2, verbose=True) try: assert kamodo.a(3) == 3 ** 2 except: print(kamodo.symbol_registry) raise