コード例 #1
0
ファイル: params_test.py プロジェクト: PWJ1900/Rlearncirq
def example_sweeps():
    empty_sweep = params_pb2.ParameterSweep()
    empty_product = params_pb2.ParameterSweep(sweep=params_pb2.ProductSweep())
    empty_zip = params_pb2.ParameterSweep(sweep=params_pb2.ProductSweep(
        factors=[params_pb2.ZipSweep(),
                 params_pb2.ZipSweep()]))
    full_sweep = params_pb2.ParameterSweep(sweep=params_pb2.ProductSweep(
        factors=[
            params_pb2.ZipSweep(sweeps=[
                params_pb2.SingleSweep(
                    parameter_key='11',
                    linspace=params_pb2.Linspace(
                        first_point=0, last_point=10, num_points=5)),
                params_pb2.SingleSweep(parameter_key='12',
                                       points=params_pb2.Points(
                                           points=range(7)))
            ]),
            params_pb2.ZipSweep(sweeps=[
                params_pb2.SingleSweep(
                    parameter_key='21',
                    linspace=params_pb2.Linspace(
                        first_point=0, last_point=10, num_points=11)),
                params_pb2.SingleSweep(parameter_key='22',
                                       points=params_pb2.Points(
                                           points=range(13)))
            ])
        ]))
    return [empty_sweep, empty_product, empty_zip, full_sweep]
コード例 #2
0
ファイル: params_test.py プロジェクト: PWJ1900/Rlearncirq
def test_sweep_from_proto_missing_type():
    ps = params_pb2.ParameterSweep(sweep=params_pb2.ProductSweep(factors=[
        params_pb2.ZipSweep(
            sweeps=[params_pb2.SingleSweep(parameter_key='foo')])
    ]))
    with pytest.raises(ValueError):
        params.sweep_from_proto(ps)
コード例 #3
0
def test_param_sweep_keys():
    ps = params_pb2.ParameterSweep(
        sweep=params_pb2.ProductSweep(
            factors=[
                params_pb2.ZipSweep(
                    sweeps=[
                        params_pb2.SingleSweep(
                            parameter_key='foo', points=params_pb2.Points(points=range(5))
                        ),
                        params_pb2.SingleSweep(
                            parameter_key='bar', points=params_pb2.Points(points=range(7))
                        ),
                    ]
                ),
                params_pb2.ZipSweep(
                    sweeps=[
                        params_pb2.SingleSweep(
                            parameter_key='baz', points=params_pb2.Points(points=range(11))
                        ),
                        params_pb2.SingleSweep(
                            parameter_key='qux', points=params_pb2.Points(points=range(13))
                        ),
                    ]
                ),
            ]
        )
    )
    out = params.sweep_from_proto(ps)
    assert out.keys == ['foo', 'bar', 'baz', 'qux']
コード例 #4
0
def test_gen_param_sweep():
    ps = params_pb2.ParameterSweep(
        sweep=params_pb2.ProductSweep(
            factors=[
                params_pb2.ZipSweep(
                    sweeps=[
                        params_pb2.SingleSweep(
                            parameter_key='foo', points=params_pb2.Points(points=[1, 2, 3])
                        )
                    ]
                ),
                params_pb2.ZipSweep(
                    sweeps=[
                        params_pb2.SingleSweep(
                            parameter_key='bar', points=params_pb2.Points(points=[4, 5])
                        )
                    ]
                ),
            ]
        )
    )
    out = params.sweep_from_proto(ps)
    assert out == cirq.Product(
        cirq.Zip(cirq.Points('foo', [1, 2, 3])), cirq.Zip(cirq.Points('bar', [4, 5]))
    )
コード例 #5
0
ファイル: params.py プロジェクト: PWJ1900/Rlearncirq
def sweep_to_proto(sweep: sweeps.Sweep,
                   repetitions: int = 1) -> params_pb2.ParameterSweep:
    """Converts sweep into an equivalent protobuf representation."""
    product_sweep = None
    if not sweep == sweeps.UnitSweep:
        sweep = _to_zip_product(sweep)
        product_sweep = params_pb2.ProductSweep(factors=[
            _sweep_zip_to_proto(cast(sweeps.Zip, factor))
            for factor in sweep.factors
        ])
    msg = params_pb2.ParameterSweep(repetitions=repetitions,
                                    sweep=product_sweep)
    return msg
コード例 #6
0
ファイル: params_test.py プロジェクト: PWJ1900/Rlearncirq
def test_param_sweep_size():
    ps = params_pb2.ParameterSweep(sweep=params_pb2.ProductSweep(factors=[
        params_pb2.ZipSweep(sweeps=[
            params_pb2.SingleSweep(parameter_key='11',
                                   linspace=params_pb2.Linspace(first_point=0,
                                                                last_point=10,
                                                                num_points=5)),
            params_pb2.SingleSweep(parameter_key='12',
                                   points=params_pb2.Points(points=range(7)))
        ]),
        params_pb2.ZipSweep(sweeps=[
            params_pb2.SingleSweep(
                parameter_key='21',
                linspace=params_pb2.Linspace(
                    first_point=0, last_point=10, num_points=11)),
            params_pb2.SingleSweep(parameter_key='22',
                                   points=params_pb2.Points(points=range(13)))
        ])
    ]))
    # Sweeps sx1 and sx2 are zipped, so should use num number of points.
    # These are then producted, so this should multiply number of points.
    assert len(params.sweep_from_proto(ps)) == 5 * 11
コード例 #7
0
ファイル: params_test.py プロジェクト: PWJ1900/Rlearncirq
def test_empty_param_sweep_keys():
    assert params.sweep_from_proto(params_pb2.ParameterSweep()).keys == []
コード例 #8
0
ファイル: params_test.py プロジェクト: PWJ1900/Rlearncirq
def test_gen_empty_param_sweep():
    out = params.sweep_from_proto(params_pb2.ParameterSweep())
    assert out == cirq.UnitSweep
コード例 #9
0
ファイル: params_test.py プロジェクト: PWJ1900/Rlearncirq
def test_param_sweep_size_no_sweeps():
    ps = params_pb2.ParameterSweep(sweep=params_pb2.ProductSweep(
        factors=[params_pb2.ZipSweep(),
                 params_pb2.ZipSweep()]))
    assert len(params.sweep_from_proto(ps)) == 1
コード例 #10
0
ファイル: params_test.py プロジェクト: PWJ1900/Rlearncirq
def test_empty_param_sweep_size():
    assert len(params.sweep_from_proto(params_pb2.ParameterSweep())) == 1