def test_build_uniform_param_grid_number_of_params_per_layer( self, number_of_params_per_layer, number_of_layers, min_value, max_value, step): # Given expected_parameter_grid_filename = "parameter-grid.json" expected_parameter_grid = _build_uniform_param_grid( number_of_params_per_layer, number_of_layers, min_value=min_value, max_value=max_value, step=step, ) # When build_uniform_param_grid( number_of_params_per_layer=number_of_params_per_layer, number_of_layers=number_of_layers, min_value=min_value, max_value=max_value, step=step, ) # Then try: parameter_grid = load_parameter_grid( expected_parameter_grid_filename) assert [tuple(param) for param in parameter_grid.param_ranges ] == expected_parameter_grid.param_ranges finally: remove_file_if_exists(expected_parameter_grid_filename)
def build_uniform_param_grid( ansatz_specs: Dict, number_of_params_per_layer: Union[str, int] = "None", number_of_layers: int = 1, min_value: float = 0, max_value: float = 2 * np.pi, step: float = np.pi / 5, ): if ansatz_specs != "None": # TODO None issue in workflow v1 ansatz = create_object(json.loads(ansatz_specs)) number_of_params = ansatz.number_of_params elif number_of_params_per_layer != "None": number_of_params = number_of_params_per_layer grid = _build_uniform_param_grid(number_of_params, number_of_layers, min_value, max_value, step) save_parameter_grid(grid, "parameter-grid.json")
def build_uniform_param_grid( ansatz_specs: Optional[Specs] = None, number_of_params_per_layer: Optional[int] = None, number_of_layers: int = 1, min_value: float = 0, max_value: float = 2 * np.pi, step: float = np.pi / 5, ): assert (ansatz_specs is None) != (number_of_params_per_layer is None) if ansatz_specs is not None: ansatz = load_from_specs(ansatz_specs) number_of_params = ansatz.number_of_params else: number_of_params = number_of_params_per_layer grid = _build_uniform_param_grid(number_of_params, number_of_layers, min_value, max_value, step) save_parameter_grid(grid, "parameter-grid.json")
def test_build_uniform_param_grid_ansatz_specs_as_string( self, number_of_ansatz_layers, problem_size, number_of_layers, min_value, max_value, step, ): # Given expected_parameter_grid_filename = "parameter-grid.json" ansatz_specs = { "module_name": "zquantum.core.interfaces.mock_objects", "function_name": "MockAnsatz", "number_of_layers": number_of_ansatz_layers, "problem_size": problem_size, } ansatz = create_object(copy.deepcopy(ansatz_specs)) expected_parameter_grid = _build_uniform_param_grid( ansatz.number_of_params, number_of_layers, min_value=min_value, max_value=max_value, step=step, ) # When build_uniform_param_grid( ansatz_specs=json.dumps(ansatz_specs), number_of_layers=number_of_layers, min_value=min_value, max_value=max_value, step=step, ) # Then try: parameter_grid = load_parameter_grid( expected_parameter_grid_filename) assert [tuple(param) for param in parameter_grid.param_ranges ] == expected_parameter_grid.param_ranges finally: remove_file_if_exists(expected_parameter_grid_filename)