def test_create_lambda_ast(self): func_, params_, vars_ = _create_lambda(ast.parse("a + b", mode="eval"), [], []) self.assertTrue(callable(func_)) self.assertEqual(params_, ["a", "b"]) self.assertEqual(vars_, []) self.assertEqual(func_(np.array([[1, 11], [2, 22]]), 1, 2), 3)
def test_create_lambda_fun(self): func_, params_, vars_ = _create_lambda("power(a, 2)", [], ["power"]) self.assertTrue(callable(func_)) self.assertEqual(params_, ["a"]) self.assertEqual(vars_, []) np.testing.assert_array_equal(func_(np.array([[1, 11], [2, 22]]), 3), np.array([9, 9]))
def test_create_lambda_var(self): func_, params_, vars_ = _create_lambda("var + a + b", ["var"], []) self.assertTrue(callable(func_)) self.assertEqual(params_, ["a", "b"]) self.assertEqual(vars_, ["var"]) np.testing.assert_array_equal( func_(np.array([[1, 11], [2, 22]]), 1, 2), np.array([4, 5]))
def test_create_lambda_x(self): func_, params_, vars_ = _create_lambda("var1 + x", ["var1", "var2"], []) self.assertTrue(callable(func_)) self.assertEqual(params_, ["x"]) self.assertEqual(vars_, ["var1"]) np.testing.assert_array_equal(func_(np.array([[1, 11], [2, 22]]), 3), np.array([4, 5]))
def test_create_lambda(self): func_, params_, vars_ = _create_lambda( "a * var1 + b * exp(var2 * power(pi, 0))", ["var1", "var2", "var3"], ["exp", "power", "pi"]) self.assertTrue(callable(func_)) self.assertEqual(params_, ["a", "b"]) self.assertEqual(vars_, ["var1", "var2"]) np.testing.assert_allclose(func_(np.array([[1, 2], [3, 4]]), 3, 2), np.array([17.778112, 118.1963]))
def test_create_lambda_simple(self): func_, params_, vars_ = _create_lambda("a + b", [], []) self.assertTrue(callable(func_)) self.assertEqual(params_, ["a", "b"]) self.assertEqual(vars_, []) self.assertEqual(func_(np.array([[1, 11], [2, 22]]), 1, 2), 3)