def test_kriging_f_order(n, m): g = lk.RandomGenerator(123) X = np.asarray(g.uniform(n, m), dtype=np.float64, order='F') y = f(X) rl = lk.WrappedPyKriging(y, X, "gauss") y_pred, _stderr, _cov = rl.predict(X, True, True)
def test_kriging_c_order(n, m): g = lk.RandomGenerator(123) # X = np.asarray(g.uniform(n, m), dtype=np.float64, order='C') X = g.uniform(n, m) # this is the default y = f(X) rl = lk.PyKriging(y, X, "gauss") y_pred, _stderr, _cov = rl.predict(X, True, True)
def test_random(): g = lk.RandomGenerator(123) expected_result = np.array([[0.71295532, 0.78002776], [0.42847093, 0.41092437], [0.69088485, 0.5796943], [0.71915031, 0.13995076], [0.49111893, 0.40101755]]) generated_result = g.uniform(5, 2) # print(generated_result) assert np.isclose(generated_result, expected_result).all()
def test_linear_regression_exact(n, m): g = lk.RandomGenerator(123) sol = np.asarray(g.uniform(m, 1), dtype=np.float64, order='F') X = np.asarray(g.uniform(n, m), dtype=np.float64, order='F') X[:, 0] = 1 y = X.dot(sol) # or X @ sol rl = lk.LinearRegression() rl.fit(y, X) y2, _stderr = rl.predict(X) eps = 1e-5 assert np.linalg.norm(y - y2, ord=np.inf) <= eps
def test_basic(): """Test of manual binding""" n = 40 m = 3 g = lk.RandomGenerator(123) sol = np.asarray(g.uniform(m, 1), dtype=np.float64, order='F') X = np.asarray(g.uniform(n, m), dtype=np.float64, order='F') X[:, 0] = 1 y = X.dot(sol) # or X @ sol rl = lk.PyLinearRegression() rl.fit(y, X) y2, _stderr = rl.predict(X) eps = 1e-5 assert np.linalg.norm(y - y2, ord=2) <= eps
def test_linear_regression_noisy(n, m): g = lk.RandomGenerator(123) sol = np.asarray(g.uniform(m, 1), dtype=np.float64, order='F') X = np.asarray(g.uniform(n, m), dtype=np.float64, order='F') X[:, 0] = 1 y = X.dot(sol) # or X @ sol e = 1e-8 noiser = lambda x: x * np.random.normal(1, e) y = np.vectorize(noiser)(y) # y = np.array([noiser(v) for v in y]) # y = np.array(list(map(noiser, y))) rl = lk.LinearRegression() rl.fit(y, X) y2, _stderr = rl.predict(X) eps = 1e-5 assert np.linalg.norm(y - y2, ord=np.inf) <= eps