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)
    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)
    def test_rs_bnd_int(self):
        data = helper.load_test_npz('test_rs_1.npz')
        X, f, df = data['X'], data['f'], data['df']

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

        avd = dom.BoundedActiveVariableDomain(sub)
        avm = dom.BoundedActiveVariableMap(avd)
        asrs = asm.ActiveSubspaceResponseSurface(avm)
        asrs.train_with_data(X, f)

        np.random.seed(43)
        xstar, fstar = aso.minimize(asrs, X, f)
        if self.writeData:
            np.savez('data/test_opt_0_2',xstar=xstar, fstar=fstar)
        data_test = helper.load_test_npz('test_opt_0_2.npz')
        np.testing.assert_almost_equal(xstar, data_test['xstar'])
        np.testing.assert_almost_equal(fstar, data_test['fstar'])

        print '\n'
        print 'bnd min: {:6.4f}'.format(fstar)
        print 'bnd xmin: {:6.4f}, {:6.4f}, {:6.4f}'.format(xstar[0,0],xstar[0,1],xstar[0,2])