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']
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, )
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