def test_input_transform(): k = Linear().transform(lambda x: x - 5) # Verify that the kernel has the right properties. assert not k.stationary def f1(x): return x def f2(x): return x**2 # Test equality. assert EQ().transform(f1) == EQ().transform(f1) assert EQ().transform(f1) != EQ().transform(f2) assert EQ().transform(f1) != Matern12().transform(f1) # Standard tests: standard_kernel_tests(k) # Test computation of the kernel. k = Linear() x1, x2 = B.randn(10, 2), B.randn(10, 2) k2 = k.transform(lambda x: x**2) k3 = k.transform(lambda x: x**2, lambda x: x - 5) approx(k(x1**2, x2**2), k2(x1, x2)) approx(k(x1**2, x2 - 5), k3(x1, x2))
def test_input_transform(): k = Linear().transform(lambda x: x - 5) assert not k.stationary with pytest.raises(RuntimeError): k.length_scale with pytest.raises(RuntimeError): k.var with pytest.raises(RuntimeError): k.period def f1(x): return x def f2(x): return x ** 2 # Test equality. assert EQ().transform(f1) == EQ().transform(f1) assert EQ().transform(f1) != EQ().transform(f2) assert EQ().transform(f1) != Matern12().transform(f1) # Standard tests: standard_kernel_tests(k) # Test computation of the kernel. k = Linear() x1, x2 = np.random.randn(10, 2), np.random.randn(10, 2) k2 = k.transform(lambda x: x ** 2) k3 = k.transform(lambda x: x ** 2, lambda x: x - 5) allclose(k(x1 ** 2, x2 ** 2), k2(x1, x2)) allclose(k(x1 ** 2, x2 - 5), k3(x1, x2))
def test_input_transform(): k = Linear().transform(lambda x, c: x - 5) yield eq, k.stationary, False yield raises, RuntimeError, lambda: k.length_scale yield raises, RuntimeError, lambda: k.var yield raises, RuntimeError, lambda: k.period def f1(x): return x def f2(x): return x**2 # Test equality. yield eq, EQ().transform(f1), EQ().transform(f1) yield neq, EQ().transform(f1), EQ().transform(f2) yield neq, EQ().transform(f1), Matern12().transform(f1) # Standard tests: for x in kernel_generator(k): yield x # Test computation of the kernel. k = Linear() x1, x2 = np.random.randn(10, 2), np.random.randn(10, 2) k2 = k.transform(lambda x, c: x**2) k3 = k.transform(lambda x, c: x**2, lambda x, c: x - 5) yield assert_allclose, k(x1**2, x2**2), k2(x1, x2) yield assert_allclose, k(x1**2, x2 - 5), k3(x1, x2)