def test_rs_0(self):
        np.random.seed(42)
        df0 = np.random.normal(size=(10, 2))

        sub = ss.Subspaces()
        sub.compute(df=df0)
        avd = dom.UnboundedActiveVariableDomain(sub)
        avm = dom.UnboundedActiveVariableMap(avd)
        asm.ActiveSubspaceResponseSurface(avm)
    def test_rs_bnd_2d_int(self):
        np.random.seed(42)
        X0 = np.random.uniform(-1.0,1.0,size=(50,3))
        f0 = np.random.normal(size=(50,1))
        df0 = np.random.normal(size=(50,3))

        sub = ss.Subspaces()
        sub.compute(df=df0)
        sub.partition(2)

        avd = dom.BoundedActiveVariableDomain(sub)
        avm = dom.BoundedActiveVariableMap(avd)
        asrs = asm.ActiveSubspaceResponseSurface(avm)
        asrs.train_with_data(X0, f0)

        I = asi.av_integrate(asrs, avm, 10)
    def test_rs_data_train_pr_bnd(self):
        np.random.seed(42)
        X0 = np.random.uniform(-1.0, 1.0, size=(50, 3))
        f0 = np.random.normal(size=(50, 1))
        df0 = np.random.normal(size=(50, 3))

        sub = ss.Subspaces()
        sub.compute(df=df0)

        avd = dom.BoundedActiveVariableDomain(sub)
        avm = dom.BoundedActiveVariableMap(avd)
        pr = rs.PolynomialApproximation()
        asrs = asm.ActiveSubspaceResponseSurface(avm, pr)
        asrs.train_with_data(X0, f0)

        XX = np.random.uniform(-1.0, 1.0, size=(10, 3))
        ff, dff = asrs.predict(XX, compgrad=True)
    def test_rs_data_train_gp_ubnd(self):
        np.random.seed(42)
        X0 = np.random.normal(size=(50, 3))
        f0 = np.random.normal(size=(50, 1))
        df0 = np.random.normal(size=(50, 3))

        sub = ss.Subspaces()
        sub.compute(df=df0)

        avd = dom.UnboundedActiveVariableDomain(sub)
        avm = dom.UnboundedActiveVariableMap(avd)
        asrs = asm.ActiveSubspaceResponseSurface(avm)
        asrs.train_with_data(X0, f0)

        np.random.seed(43)
        XX = np.random.normal(size=(10, 3))
        ff, dff = asrs.predict(XX, compgrad=True)
    def test_rs_fun_train_gp_bnd(self):
        np.random.seed(42)
        X0 = np.random.uniform(-1.0, 1.0, size=(50, 3))
        f0 = np.random.normal(size=(50, 1))
        df0 = np.random.normal(size=(50, 3))

        sub = ss.Subspaces()
        sub.compute(df=df0)

        avd = dom.BoundedActiveVariableDomain(sub)
        avm = dom.BoundedActiveVariableMap(avd)
        asrs = asm.ActiveSubspaceResponseSurface(avm)

        asrs.train_with_interface(self.quad_fun, 10)

        XX = np.random.uniform(-1.0, 1.0, size=(10, 3))
        ff, dff = asrs.predict(XX, compgrad=True)
    def test_rs_fun_train_pr_ubnd_2d(self):
        np.random.seed(42)
        X0 = np.random.normal(size=(50, 3))
        f0 = np.random.normal(size=(50, 1))
        df0 = np.random.normal(size=(50, 3))

        sub = ss.Subspaces()
        sub.compute(df=df0)
        sub.partition(2)

        avd = dom.UnboundedActiveVariableDomain(sub)
        avm = dom.UnboundedActiveVariableMap(avd)
        pr = rs.PolynomialApproximation()
        asrs = asm.ActiveSubspaceResponseSurface(avm, pr)

        asrs.train_with_interface(self.quad_fun, 10)

        XX = np.random.normal(size=(10, 3))
        ff, dff = asrs.predict(XX, compgrad=True)
    def test_rs_bnd_2d_int(self):
        np.random.seed(42)
        X0 = np.random.uniform(-1.,1.,size=(50,3))
        f0 = np.zeros((50,1))
        df0 = np.zeros((50,3))
        for i in range(50):
            x = X0[i,:]
            f0[i,0] = self.quad_fun(x)
            df0[i,:] = self.quad_dfun(x).reshape((3, ))

        sub = ss.Subspaces()
        sub.compute(df=df0)
        sub.partition(2)

        avd = dom.BoundedActiveVariableDomain(sub)
        avm = dom.BoundedActiveVariableMap(avd)
        asrs = asm.ActiveSubspaceResponseSurface(avm)
        asrs.train_with_data(X0, f0)

        xstar, fstar = aso.minimize(asrs, X0, f0)