Example #1
0
def test_sweep_from_proto_dict_missing_type():
    s1 = {
        'parameter_key': 'foo',
    }
    ps = {
        'sweep': {
            'factors': [
                {
                    'sweeps': [s1]
                },
            ]
        }
    }
    with pytest.raises(ValueError):
        cg.sweep_from_proto_dict(ps)
Example #2
0
def test_param_sweep_keys():
    s11 = {
        'parameter_key': 'foo',
        'points': {
            'points': range(5)
        },
    }
    s12 = {
        'parameter_key': 'bar',
        'points': {
            'points': range(7)
        },
    }

    s21 = {
        'parameter_key': 'baz',
        'points': {
            'points': range(11)
        },
    }
    s22 = {'parameter_key': 'qux', 'points': {'points': range(13)}}
    ps = {
        'sweep': {
            'factors': [{
                'sweeps': [s11, s12],
            }, {
                'sweeps': [s21, s22]
            }]
        }
    }
    out = cg.sweep_from_proto_dict(ps)
    assert out.keys == ['foo', 'bar', 'baz', 'qux']
Example #3
0
def test_param_sweep_size():
    s11 = {
        'parameter_key': '11',
        'linspace': {
            'first_point': 0,
            'last_point': 10,
            'num_points': 5
        }
    }
    s12 = {'parameter_key': '12', 'points': {'points': range(7)}}
    s21 = {
        'parameter_key': '21',
        'linspace': {
            'first_point': 0,
            'last_point': 10,
            'num_points': 11
        }
    }
    s22 = {'parameter_key': '22', 'points': {'points': range(13)}}
    ps = {
        'sweep': {
            'factors': [{
                'sweeps': [s11, s12],
            }, {
                'sweeps': [s21, s22]
            }]
        }
    }
    # 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(cg.sweep_from_proto_dict(ps)) == 5 * 11
Example #4
0
def test_gen_param_sweep():
    s1 = {'parameter_key': 'foo', 'points': {'points': [1, 2, 3]}}
    s2 = {'parameter_key': 'bar', 'points': {'points': [4, 5]}}
    ps = {'sweep': {'factors': [{'sweeps': [s1]}, {'sweeps': [s2]}]}}
    out = cg.sweep_from_proto_dict(ps)
    assert out == cirq.Product(cirq.Zip(cirq.Points('foo', [1, 2, 3])),
                               cirq.Zip(cirq.Points('bar', [4, 5])))
Example #5
0
def test_empty_param_sweep_keys():
    assert cg.sweep_from_proto_dict({}).keys == []
Example #6
0
def test_gen_empty_param_sweep():
    out = cg.sweep_from_proto_dict({})
    assert out == cirq.UnitSweep
Example #7
0
def test_sweep_to_proto_dict(sweep, expected):
    proto = cg.sweep_to_proto_dict(sweep)
    out = cg.sweep_from_proto_dict(proto)
    assert out == expected
Example #8
0
def test_param_sweep_size_versus_gen(param_sweep):
    sweep = cg.sweep_from_proto_dict(param_sweep)
    print(sweep)
    predicted_size = len(sweep)
    out = list(sweep)
    assert len(out) == predicted_size
Example #9
0
def test_param_sweep_size_no_sweeps():
    ps = {'sweep': {'factors': [{}, {}]}}
    assert len(cg.sweep_from_proto_dict(ps)) == 1
Example #10
0
def test_empty_param_sweep_size():
    assert len(cg.sweep_from_proto_dict({})) == 1