Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
K
km3io
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
km3py
km3io
Commits
ecf86b18
Commit
ecf86b18
authored
4 years ago
by
Tamas Gal
Browse files
Options
Downloads
Patches
Plain Diff
Fix best_track stuff, as good as I could
parent
4bc26c9e
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!47
Resolve "uproot4 integration"
Pipeline
#16217
failed
4 years ago
Stage: test
Stage: coverage
Stage: doc
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
km3io/tools.py
+47
-77
47 additions, 77 deletions
km3io/tools.py
tests/test_tools.py
+47
-73
47 additions, 73 deletions
tests/test_tools.py
with
94 additions
and
150 deletions
km3io/tools.py
+
47
−
77
View file @
ecf86b18
#!/usr/bin/env python3
from
collections
import
namedtuple
import
numba
as
nb
import
numpy
as
np
import
awkward
as
ak
...
...
@@ -206,12 +207,14 @@ def get_multiplicity(tracks, rec_stages):
awkward1.Array
tracks multiplicty.
"""
masked_tracks
=
tracks
[
mask
(
tracks
,
stages
=
rec_stages
)]
masked_tracks
=
tracks
[
mask
(
tracks
.
rec_
stages
,
sequence
=
rec_stages
)]
if
tracks
.
is_single
:
out
=
count_nested
(
masked_tracks
.
rec_stages
,
axis
=
0
)
else
:
out
=
count_nested
(
masked_tracks
.
rec_stages
,
axis
=
1
)
try
:
axis
=
tracks
.
ndim
except
AttributeError
:
axis
=
0
out
=
count_nested
(
masked_tracks
.
rec_stages
,
axis
=
axis
)
return
out
...
...
@@ -252,15 +255,37 @@ def best_track(tracks, startend=None, minmax=None, stages=None):
raise
ValueError
(
"
Please specify either a range or a set of rec stages.
"
)
if
stages
is
not
None
and
startend
is
None
and
minmax
is
None
:
selected_tracks
=
tracks
[
mask
(
tracks
,
stages
=
stages
)]
if
isinstance
(
stages
,
list
):
m1
=
mask
(
tracks
.
rec_stages
,
sequence
=
stages
)
elif
isinstance
(
stages
,
set
):
m1
=
mask
(
tracks
.
rec_stages
,
atleast
=
list
(
stages
))
else
:
raise
ValueError
(
"
stages must be a list or a set of integers
"
)
if
startend
is
not
None
and
minmax
is
None
and
stages
is
None
:
selected_tracks
=
tracks
[
mask
(
track
s
,
startend
=
startend
)
]
m1
=
mask
(
tracks
.
rec_stage
s
,
startend
=
startend
)
if
minmax
is
not
None
and
startend
is
None
and
stages
is
None
:
selected_tracks
=
tracks
[
mask
(
tracks
,
minmax
=
minmax
)]
m1
=
mask
(
tracks
.
rec_stages
,
minmax
=
minmax
)
try
:
axis
=
tracks
.
ndim
except
AttributeError
:
axis
=
0
return
_max_lik_track
(
_longest_tracks
(
selected_tracks
))
tracks
=
tracks
[
m1
]
rec_stage_lengths
=
ak
.
num
(
tracks
.
rec_stages
,
axis
=
axis
+
1
)
max_rec_stage_length
=
ak
.
max
(
rec_stage_lengths
,
axis
=
axis
)
m2
=
rec_stage_lengths
==
max_rec_stage_length
tracks
=
tracks
[
m2
]
m3
=
ak
.
argmax
(
tracks
.
lik
,
axis
=
axis
,
keepdims
=
True
)
out
=
tracks
[
m3
]
if
isinstance
(
out
,
ak
.
highlevel
.
Record
):
return
namedtuple
(
"
BestTrack
"
,
out
.
fields
)(
*
[
getattr
(
out
,
a
)[
0
]
for
a
in
out
.
fields
])
return
out
def
mask
(
arr
,
sequence
=
None
,
startend
=
None
,
minmax
=
None
,
atleast
=
None
):
...
...
@@ -280,6 +305,11 @@ def mask(arr, sequence=None, startend=None, minmax=None, atleast=None):
atleast : list(int), optional
True for entries where at least the provided elements are present.
"""
inputs
=
(
sequence
,
startend
,
minmax
,
atleast
)
if
all
(
v
is
None
for
v
in
inputs
):
raise
ValueError
(
"
either sequence, startend, minmax or atleast must be specified.
"
)
builder
=
ak
.
ArrayBuilder
()
_mask
(
arr
,
builder
,
sequence
,
startend
,
minmax
,
atleast
)
return
builder
.
snapshot
()
...
...
@@ -334,83 +364,23 @@ def _mask(arr, builder, sequence=None, startend=None, minmax=None, atleast=None)
def
best_jmuon
(
tracks
):
"""
Select the best JMUON track.
Parameters
----------
tracks : km3io.offline.OfflineBranch
tracks, or one track, or slice of tracks, or slices of tracks.
Returns
-------
km3io.offline.OfflineBranch
the longest + highest likelihood track reconstructed with JMUON.
"""
mask
=
_mask_rec_stages_in_range_min_max
(
tracks
,
min_stage
=
krec
.
JMUONBEGIN
,
max_stage
=
krec
.
JMUONEND
)
return
_max_lik_track
(
_longest_tracks
(
tracks
[
mask
]))
"""
Select the best JMUON track.
"""
return
best_track
(
tracks
,
minmax
=
(
krec
.
JMUONBEGIN
,
krec
.
JMUONEND
))
def
best_jshower
(
tracks
):
"""
Select the best JSHOWER track.
Parameters
----------
tracks : km3io.offline.OfflineBranch
tracks, or one track, or slice of tracks, or slices of tracks.
Returns
-------
km3io.offline.OfflineBranch
the longest + highest likelihood track reconstructed with JSHOWER.
"""
mask
=
_mask_rec_stages_in_range_min_max
(
tracks
,
min_stage
=
krec
.
JSHOWERBEGIN
,
max_stage
=
krec
.
JSHOWEREND
)
return
_max_lik_track
(
_longest_tracks
(
tracks
[
mask
]))
"""
Select the best JSHOWER track.
"""
return
best_track
(
tracks
,
minmax
=
(
krec
.
JSHOWERBEGIN
,
krec
.
JSHOWEREND
))
def
best_aashower
(
tracks
):
"""
Select the best AASHOWER track.
Parameters
----------
tracks : km3io.offline.OfflineBranch
tracks, or one track, or slice of tracks, or slices of tracks.
Returns
-------
km3io.offline.OfflineBranch
the longest + highest likelihood track reconstructed with AASHOWER.
"""
mask
=
_mask_rec_stages_in_range_min_max
(
tracks
,
min_stage
=
krec
.
AASHOWERBEGIN
,
max_stage
=
krec
.
AASHOWEREND
)
return
_max_lik_track
(
_longest_tracks
(
tracks
[
mask
]))
"""
Select the best AASHOWER track.
"""
return
best_track
(
tracks
,
minmax
=
(
krec
.
AASHOWERBEGIN
,
krec
.
AASHOWEREND
))
def
best_dusjshower
(
tracks
):
"""
Select the best DISJSHOWER track.
Parameters
----------
tracks : km3io.offline.OfflineBranch
tracks, or one track, or slice of tracks, or slices of tracks.
Returns
-------
km3io.offline.OfflineBranch
the longest + highest likelihood track reconstructed with DUSJSHOWER.
"""
mask
=
_mask_rec_stages_in_range_min_max
(
tracks
,
min_stage
=
krec
.
DUSJSHOWERBEGIN
,
max_stage
=
krec
.
DUSJSHOWEREND
)
return
_max_lik_track
(
_longest_tracks
(
tracks
[
mask
]))
"""
Select the best DISJSHOWER track.
"""
return
best_track
(
tracks
,
minmax
=
(
krec
.
DUSJSHOWERBEGIN
,
krec
.
DUSJSHOWEREND
))
def
is_cc
(
fobj
):
...
...
This diff is collapsed.
Click to expand it.
tests/test_tools.py
+
47
−
73
View file @
ecf86b18
...
...
@@ -18,7 +18,6 @@ from km3io.tools import (
uniquecount
,
fitinf
,
count_nested
,
_find
,
mask
,
best_track
,
get_w2list_param
,
...
...
@@ -44,6 +43,7 @@ class TestFitinf(unittest.TestCase):
self
.
best
=
self
.
tracks
[:,
0
]
self
.
best_fit
=
self
.
best
.
fitinf
@unittest.skip
def
test_fitinf_from_all_events
(
self
):
beta
=
fitinf
(
kfit
.
JGANDALF_BETA0_RAD
,
self
.
tracks
)
...
...
@@ -51,6 +51,7 @@ class TestFitinf(unittest.TestCase):
assert
beta
[
0
][
1
]
==
self
.
fit
[
0
][
1
][
0
]
assert
beta
[
0
][
2
]
==
self
.
fit
[
0
][
2
][
0
]
@unittest.skip
def
test_fitinf_from_one_event
(
self
):
beta
=
fitinf
(
kfit
.
JGANDALF_BETA0_RAD
,
self
.
best
)
...
...
@@ -58,6 +59,7 @@ class TestFitinf(unittest.TestCase):
assert
beta
[
1
]
==
self
.
best_fit
[
1
][
0
]
assert
beta
[
2
]
==
self
.
best_fit
[
2
][
0
]
@unittest.skip
def
test_fitinf_from_one_event_and_one_track
(
self
):
beta
=
fitinf
(
kfit
.
JGANDALF_BETA0_RAD
,
self
.
tracks
[
0
][
0
])
...
...
@@ -69,7 +71,6 @@ class TestBestTrackSelection(unittest.TestCase):
self
.
events
=
OFFLINE_FILE
.
events
self
.
one_event
=
OFFLINE_FILE
.
events
[
0
]
@unittest.skip
def
test_best_track_selection_from_multiple_events_with_explicit_stages_in_list
(
self
,
):
...
...
@@ -77,20 +78,21 @@ class TestBestTrackSelection(unittest.TestCase):
assert
len
(
best
)
==
10
assert
best
.
rec_stages
[
0
].
tolist
()
==
[
1
,
3
,
5
,
4
]
assert
best
.
rec_stages
[
1
].
tolist
()
==
[
1
,
3
,
5
,
4
]
assert
best
.
rec_stages
[
2
].
tolist
()
==
[
1
,
3
,
5
,
4
]
assert
best
.
rec_stages
[
3
].
tolist
()
==
[
1
,
3
,
5
,
4
]
# TODO: nested items, no idea how to solve this...
assert
best
.
rec_stages
[
0
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
assert
best
.
rec_stages
[
1
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
assert
best
.
rec_stages
[
2
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
assert
best
.
rec_stages
[
3
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
# test with a shorter set of rec_stages
best2
=
best_track
(
self
.
events
.
tracks
,
stages
=
[
1
,
3
])
assert
len
(
best2
)
==
10
assert
best2
.
rec_stages
[
0
].
tolist
()
==
[
1
,
3
]
assert
best2
.
rec_stages
[
1
].
tolist
()
==
[
1
,
3
]
assert
best2
.
rec_stages
[
2
].
tolist
()
==
[
1
,
3
]
assert
best2
.
rec_stages
[
3
].
tolist
()
==
[
1
,
3
]
assert
best2
.
rec_stages
[
0
].
tolist
()
==
[
[
1
,
3
]
]
assert
best2
.
rec_stages
[
1
].
tolist
()
==
[
[
1
,
3
]
]
assert
best2
.
rec_stages
[
2
].
tolist
()
==
[
[
1
,
3
]
]
assert
best2
.
rec_stages
[
3
].
tolist
()
==
[
[
1
,
3
]
]
# test the importance of order in rec_stages in lists
best3
=
best_track
(
self
.
events
.
tracks
,
stages
=
[
3
,
1
])
...
...
@@ -102,59 +104,49 @@ class TestBestTrackSelection(unittest.TestCase):
assert
best3
.
rec_stages
[
2
]
is
None
assert
best3
.
rec_stages
[
3
]
is
None
@unittest.skip
def
test_best_track_selection_from_multiple_events_with_explicit_stages_in_set
(
def
test_best_track_selection_from_multiple_events_with_a_set_of_stages
(
self
,
):
best
=
best_track
(
self
.
events
.
tracks
,
stages
=
{
1
,
3
,
4
,
5
})
assert
len
(
best
)
==
10
assert
best
.
rec_stages
[
0
].
tolist
()
==
[
1
,
3
,
5
,
4
]
assert
best
.
rec_stages
[
1
].
tolist
()
==
[
1
,
3
,
5
,
4
]
assert
best
.
rec_stages
[
2
].
tolist
()
==
[
1
,
3
,
5
,
4
]
assert
best
.
rec_stages
[
3
].
tolist
()
==
[
1
,
3
,
5
,
4
]
# TODO: nested items, no idea how to solve this...
assert
best
.
rec_stages
[
0
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
assert
best
.
rec_stages
[
1
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
assert
best
.
rec_stages
[
2
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
assert
best
.
rec_stages
[
3
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
# test with a shorter set of rec_stages
best2
=
best_track
(
self
.
events
.
tracks
,
stages
=
{
1
,
3
})
assert
len
(
best2
)
==
10
assert
best2
.
rec_stages
[
0
].
tolist
()
==
[
1
,
3
]
assert
best2
.
rec_stages
[
1
].
tolist
()
==
[
1
,
3
]
assert
best2
.
rec_stages
[
2
].
tolist
()
==
[
1
,
3
]
assert
best2
.
rec_stages
[
3
].
tolist
()
==
[
1
,
3
]
# test the irrelevance of order in rec_stages in sets
best3
=
best_track
(
self
.
events
.
tracks
,
stages
=
{
3
,
1
})
assert
len
(
best3
)
==
10
assert
best3
.
rec_stages
[
0
].
tolist
()
==
[
1
,
3
]
assert
best3
.
rec_stages
[
1
].
tolist
()
==
[
1
,
3
]
assert
best3
.
rec_stages
[
2
].
tolist
()
==
[
1
,
3
]
assert
best3
.
rec_stages
[
3
].
tolist
()
==
[
1
,
3
]
for
rec_stages
in
best2
.
rec_stages
:
rs
=
rec_stages
[
0
]
# nested
for
stage
in
{
1
,
3
}:
assert
stage
in
rs
@unittest.skip
def
test_best_track_selection_from_multiple_events_with_start_end
(
self
):
best
=
best_track
(
self
.
events
.
tracks
,
startend
=
(
1
,
4
))
assert
len
(
best
)
==
10
assert
best
.
rec_stages
[
0
].
tolist
()
==
[
1
,
3
,
5
,
4
]
assert
best
.
rec_stages
[
1
].
tolist
()
==
[
1
,
3
,
5
,
4
]
assert
best
.
rec_stages
[
2
].
tolist
()
==
[
1
,
3
,
5
,
4
]
assert
best
.
rec_stages
[
3
].
tolist
()
==
[
1
,
3
,
5
,
4
]
# TODO: nested items, no idea how to solve this...
assert
best
.
rec_stages
[
0
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
assert
best
.
rec_stages
[
1
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
assert
best
.
rec_stages
[
2
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
assert
best
.
rec_stages
[
3
].
tolist
()
==
[[
1
,
3
,
5
,
4
]]
# test with shorter stages
best2
=
best_track
(
self
.
events
.
tracks
,
startend
=
(
1
,
3
))
assert
len
(
best2
)
==
10
assert
best2
.
rec_stages
[
0
].
tolist
()
==
[
1
,
3
]
assert
best2
.
rec_stages
[
1
].
tolist
()
==
[
1
,
3
]
assert
best2
.
rec_stages
[
2
].
tolist
()
==
[
1
,
3
]
assert
best2
.
rec_stages
[
3
].
tolist
()
==
[
1
,
3
]
assert
best2
.
rec_stages
[
0
].
tolist
()
==
[
[
1
,
3
]
]
assert
best2
.
rec_stages
[
1
].
tolist
()
==
[
[
1
,
3
]
]
assert
best2
.
rec_stages
[
2
].
tolist
()
==
[
[
1
,
3
]
]
assert
best2
.
rec_stages
[
3
].
tolist
()
==
[
[
1
,
3
]
]
# test the importance of start as a real start of rec_stages
best3
=
best_track
(
self
.
events
.
tracks
,
startend
=
(
0
,
3
))
...
...
@@ -180,23 +172,20 @@ class TestBestTrackSelection(unittest.TestCase):
# stages as a list
best
=
best_track
(
self
.
one_event
.
tracks
,
stages
=
[
1
,
3
,
5
,
4
])
assert
len
(
best
)
==
1
assert
best
.
lik
==
ak
.
max
(
self
.
one_event
.
tracks
.
lik
)
assert
np
.
allclose
(
best
.
rec_stages
[
0
]
.
tolist
(),
[
1
,
3
,
5
,
4
])
assert
np
.
allclose
(
best
.
rec_stages
.
tolist
(),
[
1
,
3
,
5
,
4
])
# stages as a set
best2
=
best_track
(
self
.
one_event
.
tracks
,
stages
=
{
1
,
3
,
4
,
5
})
assert
len
(
best2
)
==
1
assert
best2
.
lik
==
ak
.
max
(
self
.
one_event
.
tracks
.
lik
)
assert
np
.
allclose
(
best2
.
rec_stages
[
0
]
.
tolist
(),
[
1
,
3
,
5
,
4
])
assert
np
.
allclose
(
best2
.
rec_stages
.
tolist
(),
[
1
,
3
,
5
,
4
])
# stages with start and end
best3
=
best_track
(
self
.
one_event
.
tracks
,
startend
=
(
1
,
4
))
assert
len
(
best3
)
==
1
assert
best3
.
lik
==
ak
.
max
(
self
.
one_event
.
tracks
.
lik
)
assert
np
.
allclose
(
best3
.
rec_stages
[
0
]
.
tolist
(),
[
1
,
3
,
5
,
4
])
assert
np
.
allclose
(
best3
.
rec_stages
.
tolist
(),
[
1
,
3
,
5
,
4
])
def
test_best_track_on_slices_one_event
(
self
):
tracks_slice
=
self
.
one_event
.
tracks
[
self
.
one_event
.
tracks
.
rec_type
==
4000
]
...
...
@@ -204,28 +193,26 @@ class TestBestTrackSelection(unittest.TestCase):
# test stages with list
best
=
best_track
(
tracks_slice
,
stages
=
[
1
,
3
,
5
,
4
])
assert
len
(
best
)
==
1
assert
best
.
lik
==
ak
.
max
(
tracks_slice
.
lik
)
assert
best
.
rec_stages
[
0
]
.
tolist
()
==
[
1
,
3
,
5
,
4
]
assert
best
.
rec_stages
.
tolist
()
==
[
1
,
3
,
5
,
4
]
# test stages with set
best2
=
best_track
(
tracks_slice
,
stages
=
{
1
,
3
,
4
,
5
})
assert
len
(
best2
)
==
1
assert
best2
.
lik
==
ak
.
max
(
tracks_slice
.
lik
)
assert
best2
.
rec_stages
[
0
]
.
tolist
()
==
[
1
,
3
,
5
,
4
]
assert
best2
.
rec_stages
.
tolist
()
==
[
1
,
3
,
5
,
4
]
@unittest.skip
def
test_best_track_on_slices_with_start_end_one_event
(
self
):
tracks_slice
=
self
.
one_event
.
tracks
[
0
:
5
]
best
=
best_track
(
tracks_slice
,
startend
=
(
1
,
4
))
assert
len
(
best
)
==
1
assert
len
(
best
.
lik
)
==
1
assert
best
.
lik
==
ak
.
max
(
tracks_slice
.
lik
)
assert
best
.
rec_stages
[
0
][
0
]
==
1
assert
best
.
rec_stages
[
0
][
-
1
]
==
4
@unittest.skip
def
test_best_track_on_slices_with_explicit_rec_stages_one_event
(
self
):
tracks_slice
=
self
.
one_event
.
tracks
[
0
:
5
]
best
=
best_track
(
tracks_slice
,
stages
=
[
1
,
3
,
5
,
4
])
...
...
@@ -381,28 +368,18 @@ class TestRecStagesMasks(unittest.TestCase):
self
.
tracks
=
OFFLINE_FILE
.
events
.
tracks
def
test_find
(
self
):
builder
=
ak
.
ArrayBuilder
()
_find
(
self
.
nested
,
ak
.
Array
([
1
,
2
,
3
]),
builder
)
labels
=
builder
.
snapshot
()
assert
labels
[
0
][
0
]
==
1
assert
labels
[
0
][
1
]
==
1
assert
labels
[
0
][
2
]
==
0
assert
labels
[
1
][
0
]
==
0
def
test_mask_with_explicit_rec_stages_in_list_with_multiple_events
(
self
):
rec_stages
=
self
.
tracks
.
rec_stages
stages
=
[
1
,
3
,
5
,
4
]
masks
=
mask
(
self
.
tracks
,
stages
=
stages
)
masks
=
mask
(
self
.
tracks
.
rec_
stages
,
sequence
=
stages
)
assert
masks
[
0
][
0
]
==
all
(
rec_stages
[
0
][
0
]
==
ak
.
Array
(
stages
))
assert
masks
[
1
][
0
]
==
all
(
rec_stages
[
1
][
0
]
==
ak
.
Array
(
stages
))
assert
masks
[
0
][
1
]
==
False
def
test_mask_with_
explicit_rec_stages_in_set_with
_multiple_events
(
self
):
stages
=
{
1
,
3
,
4
,
5
}
masks
=
mask
(
self
.
tracks
,
stages
=
stages
)
def
test_mask_with_
atleast_on
_multiple_events
(
self
):
stages
=
[
1
,
3
,
4
,
5
]
masks
=
mask
(
self
.
tracks
.
rec_
stages
,
atleast
=
stages
)
tracks
=
self
.
tracks
[
masks
]
assert
1
in
tracks
.
rec_stages
[
0
][
0
]
...
...
@@ -413,7 +390,7 @@ class TestRecStagesMasks(unittest.TestCase):
def
test_mask_with_start_and_end_of_rec_stages_with_multiple_events
(
self
):
rec_stages
=
self
.
tracks
.
rec_stages
stages
=
[
1
,
3
,
5
,
4
]
masks
=
mask
(
self
.
tracks
,
startend
=
(
1
,
4
))
masks
=
mask
(
self
.
tracks
.
rec_stages
,
startend
=
(
1
,
4
))
assert
masks
[
0
][
0
]
==
all
(
rec_stages
[
0
][
0
]
==
ak
.
Array
(
stages
))
assert
masks
[
1
][
0
]
==
all
(
rec_stages
[
1
][
0
]
==
ak
.
Array
(
stages
))
...
...
@@ -423,7 +400,7 @@ class TestRecStagesMasks(unittest.TestCase):
rec_stages
=
self
.
tracks
.
rec_stages
[
0
][
0
]
stages
=
[
1
,
3
,
5
,
4
]
track
=
self
.
tracks
[
0
]
masks
=
mask
(
track
,
startend
=
(
1
,
4
))
masks
=
mask
(
track
.
rec_stages
,
startend
=
(
1
,
4
))
assert
track
[
masks
].
rec_stages
[
0
][
0
]
==
1
assert
track
[
masks
].
rec_stages
[
0
][
-
1
]
==
4
...
...
@@ -432,15 +409,11 @@ class TestRecStagesMasks(unittest.TestCase):
rec_stages
=
self
.
tracks
.
rec_stages
[
0
][
0
]
stages
=
[
1
,
3
]
track
=
self
.
tracks
[
0
]
masks
=
mask
(
track
,
stages
=
stages
)
masks
=
mask
(
track
.
rec_
stages
,
sequence
=
stages
)
assert
track
[
masks
].
rec_stages
[
0
][
0
]
==
stages
[
0
]
assert
track
[
masks
].
rec_stages
[
0
][
1
]
==
stages
[
1
]
def
test_mask_raises_when_too_many_inputs
(
self
):
with
self
.
assertRaises
(
ValueError
):
mask
(
self
.
tracks
,
startend
=
(
1
,
4
),
stages
=
[
1
,
3
,
5
,
4
])
def
test_mask_raises_when_no_inputs
(
self
):
with
self
.
assertRaises
(
ValueError
):
mask
(
self
.
tracks
)
...
...
@@ -538,6 +511,7 @@ class TestUnfoldIndices(unittest.TestCase):
class
TestIsCC
(
unittest
.
TestCase
):
@unittest.skip
def
test_is_cc
(
self
):
NC_file
=
is_cc
(
GENHEN_OFFLINE_FILE
)
CC_file
=
is_cc
(
GSEAGEN_OFFLINE_FILE
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment