Skip to content

Commit

Permalink
test track IO
Browse files Browse the repository at this point in the history
  • Loading branch information
adamltyson committed Aug 26, 2020
1 parent 6988012 commit f0c0e33
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 6 deletions.
13 changes: 7 additions & 6 deletions brainreg_segment/tracks/IO.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,19 @@ def save_track_layers(
tracks_directory.mkdir(parents=True, exist_ok=True)

for points_layer in points_layers:
save_single_track_layer(
points_layer,
save_single_track(
points_layer.data,
points_layers.name,
tracks_directory,
track_file_extension=track_file_extension,
)


def save_single_track_layer(
layer, output_directory, track_file_extension=".points",
def save_single_track(
points, name, output_directory, track_file_extension=".points",
):
output_filename = output_directory / (layer.name + track_file_extension)
points = pd.DataFrame(layer.data)
output_filename = output_directory / (name + track_file_extension)
points = pd.DataFrame(points)
points.to_hdf(output_filename, key="df", mode="w")


Expand Down
Binary file added tests/data/tracks/track.h5
Binary file not shown.
48 changes: 48 additions & 0 deletions tests/tests/test_unit/test_tracks/test_IO.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import numpy as np
import pandas as pd

from pathlib import Path

from brainreg_segment.tracks import IO

tracks_dir = Path.cwd() / "tests" / "data" / "tracks"

pts_2d = np.array([[53, 748], [68, 745], [77, 747], [87, 748], [97, 749]])


spline = np.array(
(
[100.0, 49.81249744, 50.08749819],
[100.0, 58.06928727, 58.53487443],
[100.0, 66.38765117, 66.9206766],
[100.0, 74.74999655, 75.26249729],
[100.0, 83.13873081, 83.57792909],
[100.0, 91.53626138, 91.8845646],
[100.0, 99.92499565, 100.1999964],
[100.0, 108.28734103, 108.54181709],
[100.0, 116.60570493, 116.92761926],
[100.0, 124.86249475, 125.3749955],
)
)

ATLAS_RESOLUTION = 50
MAX_ATLAS_AXIS_2 = 228


def test_save_single_track_layer(tmpdir, rtol=1e-10):
points = pd.read_hdf(tracks_dir / "track.points")
IO.save_single_track(points, "track", tmpdir)

points_test = pd.read_hdf((tmpdir / "track.points"))
np.testing.assert_allclose(points, points_test, rtol=rtol)


def test_export_single_spline(tmpdir):
IO.export_single_spline(
spline, "track", tmpdir, ATLAS_RESOLUTION, MAX_ATLAS_AXIS_2
)

spline_test = pd.read_hdf(tmpdir / "track.h5")
spline_validate = pd.read_hdf(tracks_dir / "track.h5")

pd.testing.assert_frame_equal(spline_test, spline_validate)

0 comments on commit f0c0e33

Please sign in to comment.