def test_mesh_to_plotly(): fsaverage = fetch_surf_fsaverage() coord, triangles = surface.load_surf_mesh(fsaverage['pial_left']) plotly = js_plotting_utils.mesh_to_plotly(fsaverage['pial_left']) for i, key in enumerate(['_x', '_y', '_z']): assert np.allclose( js_plotting_utils.decode(plotly[key], '<f4'), coord[:, i]) for i, key in enumerate(['_i', '_j', '_k']): assert np.allclose( js_plotting_utils.decode(plotly[key], '<i4'), triangles[:, i])
def test_encode(): for dtype in ['<f4', '<i4', '>f4', '>i4']: a = np.arange(10, dtype=dtype) encoded = js_plotting_utils.encode(a) decoded = base64.b64decode(encoded.encode('utf-8')) b = np.frombuffer(decoded, dtype=dtype) assert np.allclose(js_plotting_utils.decode(encoded, dtype=dtype), b) assert np.allclose(a, b)
def test_get_markers(): coords = np.arange(12).reshape((4, 3)) colors = ['r', 'g', 'black', 'white'] markers = html_connectome._get_markers(coords, colors) assert markers["marker_color"] == [ '#ff0000', '#007f00', '#000000', '#ffffff'] assert markers['markers_only'] con_x = decode(markers['_con_x'], '<f4') assert np.allclose(con_x, coords[:, 0])
def test_full_brain_info(): fsaverage = fetch_surf_fsaverage() img = _get_img() info = html_surface.full_brain_info(img) check_colors(info['colorscale']) assert {'pial_left', 'pial_right', 'inflated_left', 'inflated_right', 'vertexcolor_left', 'vertexcolor_right'}.issubset(info.keys()) assert info['cmin'] == - info['cmax'] assert info['full_brain_mesh'] assert not info['black_bg'] assert type(info['cmax']) == float json.dumps(info) for hemi in ['left', 'right']: mesh = surface.load_surf_mesh(fsaverage['pial_{}'.format(hemi)]) assert len(info['vertexcolor_{}'.format(hemi)]) == len(mesh[0]) assert len(decode( info['inflated_{}'.format(hemi)]['_z'], '<f4')) == len(mesh[0]) assert len(decode( info['pial_{}'.format(hemi)]['_j'], '<i4')) == len(mesh[1])
def test_get_connectome(): adj, coord = _make_connectome() connectome = html_connectome._get_connectome(adj, coord) con_x = decode(connectome['_con_x'], '<f4') expected_x = np.asarray([ 0, 0, 0, 0, 20, 0, 10, 10, 0, 10, 30, 0, 20, 0, 0, 20, 20, 0, 20, 40, 0, 30, 10, 0, 30, 30, 0, 40, 20, 0, 40, 40, 0 ], dtype='<f4') assert (con_x == expected_x).all() assert {'_con_x', '_con_y', '_con_z', '_con_w', 'colorscale'}.issubset(connectome.keys()) assert (connectome['cmin'], connectome['cmax']) == (-2.5, 2.5)
def test_one_mesh_info(): fsaverage = fetch_surf_fsaverage() mesh = surface.load_surf_mesh(fsaverage['pial_right']) surf_map = mesh[0][:, 0] info = html_surface.one_mesh_info( surf_map, fsaverage['pial_right'], '90%', black_bg=True, bg_map=fsaverage['sulc_right']) assert {'_x', '_y', '_z', '_i', '_j', '_k'}.issubset( info['inflated_left'].keys()) assert len(decode( info['inflated_left']['_x'], '<f4')) == len(surf_map) assert len(info['vertexcolor_left']) == len(surf_map) cmax = np.max(np.abs(surf_map)) assert (info['cmin'], info['cmax']) == (-cmax, cmax) assert type(info['cmax']) == float json.dumps(info) assert info['black_bg'] assert not info['full_brain_mesh'] check_colors(info['colorscale'])
def test_get_connectome(): adj, coord = _make_connectome() connectome = html_connectome._get_connectome(adj, coord) con_x = decode(connectome['_con_x'], '<f4') expected_x = np.asarray( [0, 0, 0, 0, 20, 0, 10, 10, 0, 10, 30, 0, 20, 0, 0, 20, 20, 0, 20, 40, 0, 30, 10, 0, 30, 30, 0, 40, 20, 0, 40, 40, 0], dtype='<f4') assert (con_x == expected_x).all() assert {'_con_x', '_con_y', '_con_z', '_con_w', 'colorscale' }.issubset(connectome.keys()) assert (connectome['cmin'], connectome['cmax']) == (-2.5, 2.5)