Ejemplo n.º 1
0
    def test_optimizer_params_passed_through(self):
        """Test that the optimizer parameters get passed through to the endpoint."""
        test_case = self.gp_test_environments[0]

        python_domain, python_gp = test_case
        python_cov, historical_data = python_gp.get_core_data_copy()

        # Test default test parameters get passed through
        json_payload = json.loads(self._build_json_payload(python_domain, python_cov, historical_data))

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()
        _, optimizer_parameters, num_random_samples = _make_optimizer_parameters_from_params(params)

        assert optimizer_parameters.num_multistarts == TEST_OPTIMIZER_MULTISTARTS
        assert optimizer_parameters._python_max_num_steps == TEST_GRADIENT_DESCENT_PARAMETERS.max_num_steps

        # Test arbitrary parameters get passed through
        json_payload['optimizer_info']['num_multistarts'] = TEST_OPTIMIZER_MULTISTARTS + 5
        json_payload['optimizer_info']['optimizer_parameters']['max_num_steps'] = TEST_GRADIENT_DESCENT_PARAMETERS.max_num_steps + 10

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()
        _, optimizer_parameters, num_random_samples = _make_optimizer_parameters_from_params(params)

        assert optimizer_parameters.num_multistarts == TEST_OPTIMIZER_MULTISTARTS + 5

        assert optimizer_parameters._python_max_num_steps == TEST_GRADIENT_DESCENT_PARAMETERS.max_num_steps + 10
Ejemplo n.º 2
0
    def test_hyperparameters_passed_through(self):
        """Test that the hyperparameters get passed through to the endpoint."""
        test_case = self.gp_test_environments[0]

        python_domain, python_gp = test_case
        python_cov, historical_data = python_gp.get_core_data_copy()

        # Test default test parameters get passed through
        json_payload = json.loads(self._build_json_payload(python_domain, python_cov, historical_data))

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()

        assert params['hyperparameter_domain_info'] == json_payload['hyperparameter_domain_info']

        # Test arbitrary parameters get passed through
        json_payload['hyperparameter_domain_info']['domain_bounds'] = []
        for i in range(json_payload['hyperparameter_domain_info']['dim']):
            json_payload['hyperparameter_domain_info']['domain_bounds'].append({
                'min': 0.2 * i,
                'max': 0.5 * i,
                })

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()

        assert params['hyperparameter_domain_info'] == json_payload['hyperparameter_domain_info']
Ejemplo n.º 3
0
    def test_hyperparameters_passed_through(self):
        """Test that the hyperparameters get passed through to the endpoint."""
        test_case = self.gp_test_environments[0]

        python_domain, python_gp = test_case
        python_cov, historical_data = python_gp.get_core_data_copy()

        # Test default test parameters get passed through
        json_payload = json.loads(self._build_json_payload(python_domain, python_cov, historical_data))

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()

        T.assert_dicts_equal(params["hyperparameter_domain_info"], json_payload["hyperparameter_domain_info"])

        # Test arbitrary parameters get passed through
        json_payload["hyperparameter_domain_info"]["domain_bounds"] = []
        for i in range(json_payload["hyperparameter_domain_info"]["dim"]):
            json_payload["hyperparameter_domain_info"]["domain_bounds"].append({"min": 0.2 * i, "max": 0.5 * i})

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()

        T.assert_dicts_equal(params["hyperparameter_domain_info"], json_payload["hyperparameter_domain_info"])
Ejemplo n.º 4
0
    def test_hyperparameters_passed_through(self):
        """Test that the hyperparameters get passed through to the endpoint."""
        test_case = self.gp_test_environments[0]

        python_domain, python_gp = test_case
        python_cov, historical_data = python_gp.get_core_data_copy()

        # Test default test parameters get passed through
        json_payload = json.loads(self._build_json_payload(python_domain, python_cov, historical_data))

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()

        assert params['hyperparameter_domain_info'] == json_payload['hyperparameter_domain_info']

        # Test arbitrary parameters get passed through
        json_payload['hyperparameter_domain_info']['domain_bounds'] = []
        for i in range(json_payload['hyperparameter_domain_info']['dim']):
            json_payload['hyperparameter_domain_info']['domain_bounds'].append({
                'min': 0.2 * i,
                'max': 0.5 * i,
                })

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()

        assert params['hyperparameter_domain_info'] == json_payload['hyperparameter_domain_info']
Ejemplo n.º 5
0
    def test_optimizer_params_passed_through(self):
        """Test that the optimizer parameters get passed through to the endpoint."""
        test_case = self.gp_test_environments[0]

        python_domain, python_gp = test_case
        python_cov, historical_data = python_gp.get_core_data_copy()

        # Test default test parameters get passed through
        json_payload = json.loads(self._build_json_payload(python_domain, python_cov, historical_data))

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()
        _, optimizer_parameters, num_random_samples = _make_optimizer_parameters_from_params(params)

        test_param_dict = TEST_GRADIENT_DESCENT_PARAMETERS._asdict()
        test_param_dict['num_multistarts'] = TEST_OPTIMIZER_MULTISTARTS
        assert optimizer_parameters._get_member_dict() == test_param_dict

        # Test arbitrary parameters get passed through
        for i, key in enumerate(test_param_dict.iterkeys()):
            test_param_dict[key] /= 2
        test_num_multistarts = test_param_dict.pop('num_multistarts')

        json_payload['optimizer_info']['num_multistarts'] = test_num_multistarts
        json_payload['optimizer_info']['optimizer_parameters'] = test_param_dict

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()
        _, optimizer_parameters, num_random_samples = _make_optimizer_parameters_from_params(params)

        test_param_dict['num_multistarts'] = test_num_multistarts
        assert optimizer_parameters._get_member_dict() == test_param_dict
Ejemplo n.º 6
0
    def test_optimizer_params_passed_through(self):
        """Test that the optimizer parameters get passed through to the endpoint."""
        test_case = self.gp_test_environments[0]

        python_domain, python_gp = test_case
        python_cov, historical_data = python_gp.get_core_data_copy()

        # Test default test parameters get passed through
        json_payload = json.loads(
            self._build_json_payload(python_domain, python_cov,
                                     historical_data))

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()
        _, optimizer_parameters, num_random_samples = _make_optimizer_parameters_from_params(
            params)

        T.assert_equal(
            optimizer_parameters.num_multistarts,
            TEST_OPTIMIZER_MULTISTARTS,
        )

        T.assert_equal(
            optimizer_parameters._python_max_num_steps,
            TEST_GRADIENT_DESCENT_PARAMETERS.max_num_steps,
        )

        # Test arbitrary parameters get passed through
        json_payload['optimizer_info'][
            'num_multistarts'] = TEST_OPTIMIZER_MULTISTARTS + 5
        json_payload['optimizer_info']['optimizer_parameters'][
            'max_num_steps'] = TEST_GRADIENT_DESCENT_PARAMETERS.max_num_steps + 10

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()
        _, optimizer_parameters, num_random_samples = _make_optimizer_parameters_from_params(
            params)

        T.assert_equal(
            optimizer_parameters.num_multistarts,
            TEST_OPTIMIZER_MULTISTARTS + 5,
        )

        T.assert_equal(
            optimizer_parameters._python_max_num_steps,
            TEST_GRADIENT_DESCENT_PARAMETERS.max_num_steps + 10,
        )
Ejemplo n.º 7
0
    def test_optimizer_params_passed_through(self):
        """Test that the optimizer parameters get passed through to the endpoint."""
        test_case = self.gp_test_environments[0]

        python_domain, python_gp = test_case
        python_cov, historical_data = python_gp.get_core_data_copy()

        # Test default test parameters get passed through
        json_payload = json.loads(
            self._build_json_payload(python_domain, python_cov,
                                     historical_data))

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()
        _, optimizer_parameters, num_random_samples = _make_optimizer_parameters_from_params(
            params)

        test_param_dict = TEST_GRADIENT_DESCENT_PARAMETERS._asdict()
        test_param_dict['num_multistarts'] = TEST_OPTIMIZER_MULTISTARTS
        assert optimizer_parameters._get_member_dict() == test_param_dict

        # Test arbitrary parameters get passed through
        for i, key in enumerate(iter(test_param_dict.keys())):
            test_param_dict[key] /= 2
        test_num_multistarts = test_param_dict.pop('num_multistarts')

        json_payload['optimizer_info'][
            'num_multistarts'] = test_num_multistarts
        json_payload['optimizer_info'][
            'optimizer_parameters'] = test_param_dict

        request = pyramid.testing.DummyRequest(post=json_payload)
        request.json_body = json_payload
        view = GpHyperOptView(request)
        params = view.get_params_from_request()
        _, optimizer_parameters, num_random_samples = _make_optimizer_parameters_from_params(
            params)

        test_param_dict['num_multistarts'] = test_num_multistarts
        assert optimizer_parameters._get_member_dict() == test_param_dict