Exemplo n.º 1
0
    def test_goldstein_price(self):
        task = GoldsteinPrice()

        # Check batch computation
        n_points = 10
        X = np.random.rand(n_points, task.n_dims)

        X[:, 0] = X[:, 0].dot(task.X_upper[0] - task.X_lower[0]) + task.X_lower[0]
        X[:, 1] = X[:, 1].dot(task.X_upper[1] - task.X_lower[1]) + task.X_lower[1]
        y = task.evaluate(X)
        assert y.shape[0] == n_points
        assert y.shape[1] == 1

        # Check single computation
        X = np.array([np.random.rand(task.n_dims)])

        X[:, 0] = X[:, 0].dot(task.X_upper[0] - task.X_lower[0]) + task.X_lower[0]
        X[:, 1] = X[:, 1].dot(task.X_upper[1] - task.X_lower[1]) + task.X_lower[1]

        y = task.evaluate(X)
        assert y.shape[0] == 1

        # Check optimas
        X = np.array([[0, -1]])
        y = task.evaluate(X)

        assert np.all(np.round(y) == 3) == True