Пример #1
0
 def test_gate_parameters(self):
     """Test that gate_parameters outputs the correctly parsed parameters"""
     true_params = {
         "squeezing_amplitude_0":
         Ranges([0], [1], variable_name="squeezing_amplitude_0"),
         "phase_0":
         Ranges([0], [0, 6.3], variable_name="phase_0"),
         "phase_1":
         Ranges([0.5, 1.4], variable_name="phase_1"),
     }
     spec_params = Device(spec=device_spec).gate_parameters
     assert true_params == spec_params
Пример #2
0
    def test_get_device_spec(self, prog, connection, monkeypatch):
        """Tests a successful device spec request."""
        target = "abc"
        layout = ""
        modes = 42
        compiler = []
        gate_parameters = {"param": Ranges([0, 1], variable_name="param")}

        monkeypatch.setattr(
            requests,
            "request",
            mock_return(MockResponse(
                200,
                {"layout": "", "modes": 42, "compiler": [], "gate_parameters": {"param": [[0, 1]]}}
            )),
        )

        device_spec = connection.get_device_spec(target)

        assert device_spec.target == target
        assert device_spec.layout == layout
        assert device_spec.modes == modes
        assert device_spec.compiler == compiler

        spec_params = device_spec.gate_parameters
        assert gate_parameters == spec_params
Пример #3
0
    def gate_parameters(self):
        """dict[str, strawberryfields.compilers.Ranges]: A dictionary of gate parameters
        and allowed ranges.

        The parameter names correspond to those present in the Blackbird circuit layout.

        **Example**

        >>> spec.gate_parameters
        {'squeezing_amplitude_0': x=0, x=1, 'phase_0': x=0, 0≤x≤6.283185307179586}
        """
        gate_parameters = dict()

        for gate_name, param_ranges in self._spec["gate_parameters"].items():
            # convert gate parameter allowed ranges to Range objects
            range_list = [[i] if not isinstance(i, Sequence) else i for i in param_ranges]
            gate_parameters[gate_name] = Ranges(*range_list)

        return gate_parameters