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)
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)
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)
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)
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))
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
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)
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()
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)
def run(num_steps, mesh=2): return pm.run( phase_fct, [(0, 1), (0, 1)], num_steps=num_steps, mesh=mesh, save_interval=0., )
def test_3d(compare_result_equal, phase, limits): res = pm.run( phase, limits=limits, num_steps=1, mesh=3, ) compare_result_equal(res)
def test_complex_phase(compare_result_equal): res = pm.run( phase3, [(0, 1), (0, 1)], num_steps=8, mesh=2, ) compare_result_equal(res)
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)
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., )
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())
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)
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)
#!/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)])
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')
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)
def test_raises(): def func(val): # pylint: disable=unused-argument raise ValueError('test succeeded.') with pytest.raises(ValueError): pm.run(func, limits=[(0, 1)])
def test_invalid_mesh(mesh): with pytest.raises(ValueError): pm.run(phase1, limits=[(0, 1), (0, 1), (0, 1)], mesh=mesh)