Exemplo n.º 1
0
def test_init_result(results_equal):
    def error(x):  # pylint: disable=unused-argument
        raise ValueError

    res1 = pm.run(phase1, limits=[(-1, 1)] * 2, num_steps=2)
    res2 = pm.run(error, limits=[(-1, 1)] * 2, num_steps=2, init_result=res1)
    results_equal(res1, res2)
Exemplo n.º 2
0
def test_restart(results_equal, mesh, num_steps_1, num_steps_2, save):
    num_steps_total = num_steps_1 + num_steps_2
    res = pm.run(
        phase1,
        [(-1, 1), (-1, 1)],
        num_steps=num_steps_total,
        mesh=mesh,
    )

    res2 = pm.run(
        phase1,
        [(-1, 1), (-1, 1)],
        num_steps=num_steps_1,
        mesh=mesh,
    )
    if save:
        with tempfile.NamedTemporaryFile() as tmpf:
            pm.io.save(res2, tmpf.name, serializer=json)
            res2 = pm.io.load(tmpf.name, serializer=json)
    res3 = pm.run(
        phase1,
        [(-1, 1), (-1, 1)],
        num_steps=num_steps_total,
        init_result=res2,
        mesh=mesh,
    )
    results_equal(res, res3)
Exemplo n.º 3
0
def test_load_invalid():
    with pytest.raises(IOError):
        pm.run(phase1,
               limits=[(-1, 1)] * 2,
               num_steps=2,
               save_file='inexistent_file',
               load=True,
               load_quiet=False,
               serializer=json)
Exemplo n.º 4
0
def test_load_init_result_conflict():
    res1 = pm.run(phase1, limits=[(-1, 1)] * 2, num_steps=2)
    with tempfile.NamedTemporaryFile() as tmpf:
        with pytest.raises(ValueError):
            pm.run(phase1,
                   limits=[(-1, 1)] * 2,
                   num_steps=2,
                   save_file=tmpf.name,
                   load=True,
                   init_result=res1)
Exemplo n.º 5
0
def test_save_file(results_equal):
    with tempfile.NamedTemporaryFile() as tmpf:
        res = pm.run(phase1,
                     limits=[(-1, 1)] * 2,
                     num_steps=2,
                     save_file=tmpf.name)
        assert results_equal(res, pm.io.load(tmpf.name, serializer=json))
Exemplo n.º 6
0
def run_calc(dim, num_steps, all_corners=False):
    res = pm.run(phase,
                 limits=[(-1.1, 1.1)] * dim,
                 num_steps=num_steps,
                 mesh=3,
                 all_corners=all_corners)
    return res
Exemplo n.º 7
0
def test_load(results_equal):
    def error(x):  # pylint: disable=unused-argument
        raise ValueError

    with tempfile.NamedTemporaryFile() as tmpf:
        res1 = pm.run(phase1,
                      limits=[(-1, 1)] * 2,
                      num_steps=2,
                      save_file=tmpf.name)
        res2 = pm.run(error,
                      limits=[(-1, 1)] * 2,
                      num_steps=2,
                      save_file=tmpf.name,
                      load=True,
                      serializer=json)
        results_equal(res1, res2)
Exemplo n.º 8
0
def test_plots(assert_image_equal, plot_fct, scale_val):
    res = pm.run(
        phase3,
        limits=[(0, 1)] * 2,
        num_steps=2,
    )
    plot_fct(res, scale_val=scale_val)
    assert_image_equal()
Exemplo n.º 9
0
def run(num_steps):
    os.makedirs("results", exist_ok=True)
    return pm.run(phase_fct, [(0, 12), (0, 3.5)],
                  num_steps=num_steps,
                  mesh=init_mesh,
                  save_file="results/res_{}.json",
                  save_interval=0.0,
                  load=True)
Exemplo n.º 10
0
def run(num_steps, mesh=2):
    return pm.run(
        phase_fct,
        [(0, 1), (0, 1)],
        num_steps=num_steps,
        mesh=mesh,
        save_interval=0.,
    )
Exemplo n.º 11
0
def test_3d(compare_result_equal, phase, limits):
    res = pm.run(
        phase,
        limits=limits,
        num_steps=1,
        mesh=3,
    )
    compare_result_equal(res)
Exemplo n.º 12
0
def test_complex_phase(compare_result_equal):
    res = pm.run(
        phase3,
        [(0, 1), (0, 1)],
        num_steps=8,
        mesh=2,
    )

    compare_result_equal(res)
Exemplo n.º 13
0
def test_phase(compare_result_equal, num_steps, phase, limits):
    res = pm.run(
        phase,
        limits,
        num_steps=num_steps,
        mesh=3,
    )

    compare_result_equal(res)
Exemplo n.º 14
0
def run(num_steps):
    os.makedirs('results', exist_ok=True)
    return pm.run(
        phase_fct,
        [(0, 1), (0, 1)],
        num_steps=num_steps,
        mesh=2,
        save_file='results/res_{}.json',
        save_interval=0.,
    )
Exemplo n.º 15
0
def test_caching():
    def _call_count(func):
        count = Counter()

        async def inner(inp):
            count.update([inp])
            await asyncio.sleep(0.)
            return func(inp)

        return inner, count

    func, count = _call_count(phase3)
    pm.run(
        func,
        [(0, 1), (0, 1)],
        num_steps=5,
        mesh=2,
    )
    assert all(val <= 1 for val in count.values())
Exemplo n.º 16
0
def test_restart_nocalc(results_equal, num_steps):
    def error(x):
        raise ValueError(x)

    res = pm.run(
        phase1,
        [(-1, 1), (-1, 1)],
        num_steps=num_steps,
        mesh=3,
    )

    res_restart = pm.run(
        error,
        [(-1, 1), (-1, 1)],
        num_steps=num_steps,
        mesh=3,
        init_result=res,
    )
    results_equal(res, res_restart)
Exemplo n.º 17
0
def test_consistency(results_equal, num_steps, serializer):
    res = pm.run(
        phase1,
        [(-1, 1), (-1, 1)],
        num_steps=num_steps,
        mesh=3,
    )
    with tempfile.NamedTemporaryFile('w+') as f:
        pm.io.save(res, f.name, serializer=serializer)
        res2 = pm.io.load(f.name, serializer=serializer)
    results_equal(res, res2)
Exemplo n.º 18
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# © 2015-2018, ETH Zurich, Institut für Theoretische Physik
# Author: Dominik Gresch <*****@*****.**>

import numpy as np

from phasemap import run

run(lambda x: np.sum(x), limits=[(-1, 1)])
Exemplo n.º 19
0
                weyl_count += 1
        except AttributeError:
            pass
    return weyl_count


def get_chern(splitting, k):
    H = partial(Hamilton_split, splitting=splitting)
    res = z2pack.surface.run(system=z2pack.hm.System(H),
                             surface=z2pack.shape.Sphere(k, FEATURE_SIZE),
                             pos_tol=1e-3,
                             min_neighbour_dist=1e-8,
                             iterator=range(50, 401, 8))
    return z2pack.invariant.chern(res)


if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    executor = ProcessPoolExecutor(max_workers=4)
    res = pm.run(
        lambda pos: phase_func(
            [pos[0], 0, pos[1]], loop=loop, executor=executor),
        limits=[(-0.3, 0.3)] * 2,
        mesh=3,
        num_steps=5,
        save_file='res.json',
        load=True,
    )
    pm.plot.boxes(res)
    plt.savefig('result.pdf', bbox_inches='tight')
Exemplo n.º 20
0
def test_load(results_equal, sample):
    res_loaded = pm.io.load(sample('res.json'))
    res_new = pm.run(phase3, [(0, 1), (0, 1)], num_steps=5, mesh=2)
    results_equal(res_loaded, res_new)
Exemplo n.º 21
0
def test_raises():
    def func(val):  # pylint: disable=unused-argument
        raise ValueError('test succeeded.')

    with pytest.raises(ValueError):
        pm.run(func, limits=[(0, 1)])
Exemplo n.º 22
0
def test_invalid_mesh(mesh):
    with pytest.raises(ValueError):
        pm.run(phase1, limits=[(0, 1), (0, 1), (0, 1)], mesh=mesh)