コード例 #1
0
def test_generate():
    names = ['foo', 'bar', 'baz', 'qux', 'meep', 'moop']
    domains = [1.0, 1, True, False, None, 'foo']

    for name, domain in zip(names, domains):
        d = ConstantDomain(name, domain)
        assert d.generate() == domain
コード例 #2
0
def test_complexity():
    d = ConstantDomain('foo', 1.0)
    assert d.complexity == 1
    assert d._complexity == 1
    assert d.complexity == 1

    d = ConstantDomain('bar', 1.0)
    assert d.complexity == 1
    assert d._complexity == 1
    assert d.complexity == 1
コード例 #3
0
def test_to_json():
    names = ['foo', 'bar', 'baz', 'qux', 'meep', 'moop']
    domains = [1.0, 1, True, False, None, 'foo']

    for name, domain in zip(names, domains):
        d = ConstantDomain(name, domain)
        assert d.to_json() == {
            'name': name,
            'type': 'pyrameter.domains.constant.ConstantDomain',
            'domain': domain
        }
コード例 #4
0
def test_init():
    names = ['foo', 'bar', 'baz', 'qux', 'meep', 'moop']
    domains = [1.0, 1, True, False, None, 'foo']

    for i, name, domain in zip(range(len(domains)), names, domains):
        d = ConstantDomain(name, domain)
        assert d.name == name
        assert d.domain == domain
        assert isinstance(d.domain, type(domain))
        assert d._current is None
        assert d._complexity is None
コード例 #5
0
    def __init__(self, *args, **kwargs):
        if len(args) < 2:
            raise ValueError('No domain or number of repetitions provided')
        if len(args) == 2:
            super(RepeatedDomain, self).__init__()
            domain = args[0]
            repetitions = args[1]
        else:
            super(RepeatedDomain, self).__init__(args[0])
            domain = args[1]
            repetitions = args[2]

        if isinstance(domain, dict):
            domain = JointDomain(**domain)
        elif isinstance(domain, list):
            domain = DiscreteDomain(domain)
        elif isinstance(domain, tuple):
            domain = SequenceDomain(domain)
        elif isinstance(domain, Domain):
            domain = domain
        elif hasattr(domain, '__class__') and 'Specification' in str(
                domain.__class__):
            domain = domain
        else:
            domain = ConstantDomain(domain)

        self.domain = [copy.deepcopy(domain) for _ in range(repetitions)]
        for i, d in enumerate(self.domain):
            d.name = f'{self.name}___{i}'
        self.repetitions = repetitions

        split = kwargs.pop('split', True)
        callback = kwargs.pop('callback', None)

        self.should_split = split
        self.callback = callback if callback is not None else lambda x: x
コード例 #6
0
def test_to_index():
    inputs = [None, 'foo', 1, 1.0, True, False]
    d = ConstantDomain('foo', 1.0)

    for i in inputs:
        assert d.to_index(i) == i
コード例 #7
0
def test_map_to_domain():
    inputs = [None, 'foo', 1, 1.0, True, False]
    d = ConstantDomain('foo', 1.0)

    for i in inputs:
        assert d.map_to_domain(i) == i