Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_init(self):
tstamps = np.arange(1.0, 100.0, 0.1, dtype=np.float)
ts = TimeSeries("test_ts", list(range(len(tstamps))), 'unit', timestamps=tstamps)
ept = TimeIntervals('epochs', "TimeIntervals unittest")
self.assertEqual(ept.name, 'epochs')
ept.add_interval(10.0, 20.0, ["test", "unittest", "pynwb"], ts)
row = ept[0]
self.assertEqual(row[1], 10.0)
self.assertEqual(row[2], 20.0)
self.assertEqual(row[3], ["test", "unittest", "pynwb"])
self.assertEqual(row[4], [(90, 100, ts)])
self.assertEqual(cCSS.name, 'test_cCSS')
self.assertEqual(cCSS.unit, 'amperes')
self.assertEqual(cCSS.electrode, electrode_name)
self.assertEqual(cCSS.gain, 1.0)
def test_unit_warning(self):
electrode_name = GetElectrode()
msg = ("Unit 'unit' for CurrentClampStimulusSeries 'test_cCSS' is ignored and will be set "
"to 'amperes' as per NWB 2.1.0.")
with self.assertWarnsWith(UserWarning, msg):
cCSS = CurrentClampStimulusSeries('test_cCSS', list(), electrode_name, 1.0, timestamps=list(), unit='unit')
self.assertEqual(cCSS.unit, 'amperes')
class VoltageClampSeriesConstructor(TestCase):
def test_init(self):
electrode_name = GetElectrode()
vCS = VoltageClampSeries('test_vCS', list(), electrode_name,
1.0, "stimset", 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, timestamps=list())
self.assertEqual(vCS.name, 'test_vCS')
self.assertEqual(vCS.unit, 'amperes')
self.assertEqual(vCS.electrode, electrode_name)
self.assertEqual(vCS.stimulus_description, "stimset")
self.assertEqual(vCS.gain, 1.0)
self.assertEqual(vCS.capacitance_fast, 2.0)
self.assertEqual(vCS.capacitance_slow, 3.0)
self.assertEqual(vCS.resistance_comp_bandwidth, 4.0)
self.assertEqual(vCS.resistance_comp_correction, 5.0)
self.assertEqual(vCS.resistance_comp_prediction, 6.0)
import numpy as np
from hdmf.common import DynamicTable, VectorData
from pynwb import TimeSeries
from pynwb.misc import Units, DecompositionSeries
from pynwb.testing import NWBH5IOMixin, AcquisitionH5IOMixin, TestCase
class TestUnitsIO(AcquisitionH5IOMixin, TestCase):
""" Test adding Units into acquisition and accessing Units after read """
def setUpContainer(self):
""" Return the test Units to read/write """
ut = Units(name='UnitsTest', description='a simple table for testing Units')
ut.add_unit(spike_times=[0, 1, 2], obs_intervals=[[0, 1], [2, 3]])
ut.add_unit(spike_times=[3, 4, 5], obs_intervals=[[2, 5], [6, 7]])
return ut
def test_get_spike_times(self):
""" Test whether the Units spike times read from file are what was written """
ut = self.roundtripContainer()
received = ut.get_unit_spike_times(0)
self.assertTrue(np.array_equal(received, [0, 1, 2]))
received = ut.get_unit_spike_times(1)
self.assertTrue(np.array_equal(received, [3, 4, 5]))
return pS
class OpticalChannelConstructor(TestCase):
def test_init(self):
oc = OpticalChannel(
name='test_optical_channel',
description='description',
emission_lambda=500.
)
self.assertEqual(oc.name, 'test_optical_channel')
self.assertEqual(oc.description, 'description')
self.assertEqual(oc.emission_lambda, 500.)
class ImagingPlaneConstructor(TestCase):
def set_up_dependencies(self):
oc = OpticalChannel(
name='test_optical_channel',
description='description',
emission_lambda=500.
)
device = Device(name='device_name')
return oc, device
def test_init(self):
oc, device = self.set_up_dependencies()
ip = ImagingPlane(
name='test_imaging_plane',
optical_channel=oc,
aS = AnnotationSeries('test_aS', timestamps=list())
self.assertEqual(aS.name, 'test_aS')
aS.add_annotation(2.0, 'comment')
class AbstractFeatureSeriesConstructor(TestCase):
def test_init(self):
aFS = AbstractFeatureSeries('test_aFS', ['feature units'], ['features'], timestamps=list())
self.assertEqual(aFS.name, 'test_aFS')
self.assertEqual(aFS.feature_units, ['feature units'])
self.assertEqual(aFS.features, ['features'])
aFS.add_features(2.0, [1.])
class DecompositionSeriesConstructor(TestCase):
def test_init(self):
timeseries = TimeSeries(name='dummy timeseries', description='desc',
data=np.ones((3, 3)), unit='Volts',
timestamps=np.ones((3,)))
bands = DynamicTable(name='bands', description='band info for LFPSpectralAnalysis', columns=[
VectorData(name='band_name', description='name of bands', data=['alpha', 'beta', 'gamma']),
VectorData(name='band_limits', description='low and high cutoffs in Hz', data=np.ones((3, 2)))
])
spec_anal = DecompositionSeries(name='LFPSpectralAnalysis',
description='my description',
data=np.ones((3, 3, 3)),
timestamps=np.ones((3,)),
source_timeseries=timeseries,
metric='amplitude',
bands=bands)
timestamps=list()
)
self.assertIsNone(iS.starting_frame)
class IndexSeriesConstructor(TestCase):
def test_init(self):
ts = TimeSeries('test_ts', list(), 'unit', timestamps=list())
iS = IndexSeries('test_iS', list(), ts, unit='unit', timestamps=list())
self.assertEqual(iS.name, 'test_iS')
self.assertEqual(iS.unit, 'unit')
self.assertEqual(iS.indexed_timeseries, ts)
class ImageMaskSeriesConstructor(TestCase):
def test_init(self):
iS = ImageSeries(name='test_iS', data=np.ones((2, 2, 2)), unit='unit',
external_file=['external_file'], starting_frame=[1, 2, 3], format='tiff',
timestamps=[1., .2])
ims = ImageMaskSeries(name='test_ims', data=np.ones((2, 2, 2)), unit='unit',
masked_imageseries=iS, external_file=['external_file'], starting_frame=[1, 2, 3],
format='tiff', timestamps=[1., 2.])
self.assertEqual(ims.name, 'test_ims')
self.assertEqual(ims.unit, 'unit')
self.assertEqual(ims.masked_imageseries, iS)
self.assertEqual(ims.external_file, ['external_file'])
self.assertEqual(ims.starting_frame, [1, 2, 3])
self.assertEqual(ims.format, 'tiff')
ps = create_plane_segmentation()
rt_region = ps.create_roi_table_region(description='the second ROI', region=[1])
ts = RoiResponseSeries(
name='test_ts',
data=list(),
rois=rt_region,
unit='unit',
timestamps=list()
)
ff = Fluorescence(ts)
self.assertEqual(ff.roi_response_series['test_ts'], ts)
class ImageSegmentationConstructor(TestCase):
def test_init(self):
ps = create_plane_segmentation()
iS = ImageSegmentation(ps, name='test_iS')
self.assertEqual(iS.name, 'test_iS')
self.assertEqual(iS.plane_segmentations[ps.name], ps)
self.assertEqual(iS[ps.name], iS.plane_segmentations[ps.name])
class PlaneSegmentationConstructor(TestCase):
def set_up_dependencies(self):
iSS = ImageSeries(
name='test_iS',
data=np.ones((2, 2, 2)),
def test_copy(self):
self.nwbfile.add_unit(spike_times=[1., 2., 3.])
device = self.nwbfile.create_device('a')
elecgrp = self.nwbfile.create_electrode_group('a', 'b', device=device, location='a')
self.nwbfile.add_electrode(np.nan, np.nan, np.nan, np.nan, 'a', 'a', elecgrp, id=0)
self.nwbfile.add_electrode(np.nan, np.nan, np.nan, np.nan, 'b', 'b', elecgrp)
elec_region = self.nwbfile.create_electrode_table_region([1], 'name')
ts1 = TimeSeries('test_ts1', [0, 1, 2, 3, 4, 5], 'grams', timestamps=[0.0, 0.1, 0.2, 0.3, 0.4, 0.5])
ts2 = ElectricalSeries('test_ts2', [0, 1, 2, 3, 4, 5],
electrodes=elec_region, timestamps=[0.0, 0.1, 0.2, 0.3, 0.4, 0.5])
self.nwbfile.add_acquisition(ts1)
self.nwbfile.add_acquisition(ts2)
self.nwbfile.add_trial(start_time=50.0, stop_time=70.0)
self.nwbfile.add_invalid_times_column('comments', 'description of reason for omitting time')
self.nwbfile.create_processing_module('test_mod', 'test_description')
self.nwbfile.create_time_intervals('custom_interval', 'a custom time interval')
self.nwbfile.intervals['custom_interval'].add_interval(start_time=10., stop_time=20.)
newfile = self.nwbfile.copy()
# test dictionaries
self.assertIs(self.nwbfile.devices['a'], newfile.devices['a'])
self.assertIs(self.nwbfile.acquisition['test_ts1'], newfile.acquisition['test_ts1'])
self.assertIs(self.nwbfile.acquisition['test_ts2'], newfile.acquisition['test_ts2'])
self.assertIs(self.nwbfile.processing['test_mod'], newfile.processing['test_mod'])
def test_init(self):
data = list(range(10))
ts = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
table = make_electrode_table()
region = DynamicTableRegion('electrodes', [0, 2], 'the first and third electrodes', table)
eS = ElectricalSeries('test_eS', data, region, timestamps=ts) # noqa: F405
self.assertEqual(eS.name, 'test_eS')
self.assertEqual(eS.data, data)
self.assertEqual(eS.timestamps, ts)
def test_init(self):
event_times = [1.9, 3.5]
table = make_electrode_table()
region = DynamicTableRegion('electrodes', [0, 2], 'the first and third electrodes', table)
description = ['desc1', 'desc2', 'desc3']
features = [[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]]
fe = FeatureExtraction(region, description, event_times, features) # noqa: F405
self.assertEqual(fe.description, description)
self.assertEqual(fe.times, event_times)
self.assertEqual(fe.features, features)