123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- """
- Tests of neo.io.neuroshareio
- """
- import sys
- import os
- import tarfile
- import zipfile
- import tempfile
- import platform
- import unittest
- try:
- from urllib import urlretrieve # Py2
- except ImportError:
- from urllib.request import urlretrieve # Py3
- from neo.io import NeuroshareIO
- from neo.test.iotest.common_io_test import BaseTestIO
- @unittest.skipUnless(sys.platform.startswith("win"), "Only works on Windows")
- class TestNeuroshareIO(unittest.TestCase, BaseTestIO):
- ioclass = NeuroshareIO
- files_to_test = []
- files_to_download = ['Multichannel_fil_1.mcd', ]
- def setUp(self):
- BaseTestIO.setUp(self)
- if sys.platform.startswith('win'):
- distantfile = 'http://download.multichannelsystems.com/download_data/software/neuroshare/nsMCDLibrary_3.7b.zip'
- localfile = os.path.join(tempfile.gettempdir(), 'nsMCDLibrary_3.7b.zip')
- if not os.path.exists(localfile):
- urlretrieve(distantfile, localfile)
- if platform.architecture()[0].startswith('64'):
- self.dllname = os.path.join(
- tempfile.gettempdir(),
- 'Matlab/Matlab-Import-Filter/Matlab_Interface/nsMCDLibrary64.dll')
- if not os.path.exists(self.dllname):
- zip = zipfile.ZipFile(localfile)
- zip.extract(
- 'Matlab/Matlab-Import-Filter/Matlab_Interface/nsMCDLibrary64.dll',
- path=tempfile.gettempdir())
- else:
- self.dllname = os.path.join(
- tempfile.gettempdir(),
- 'Matlab/Matlab-Import-Filter/Matlab_Interface/nsMCDLibrary.dll')
- if not os.path.exists(self.dllname):
- zip = zipfile.ZipFile(localfile)
- zip.extract(
- 'Matlab/Matlab-Import-Filter/Matlab_Interface/nsMCDLibrary.dll',
- path=tempfile.gettempdir())
- elif sys.platform.startswith('linux'):
- if platform.architecture()[0].startswith('64'):
- distantfile = 'http://download.multichannelsystems.com/download_data/software/neuroshare/nsMCDLibrary_Linux64_3.7b.tar.gz'
- localfile = os.path.join(tempfile.gettempdir(), 'nsMCDLibrary_Linux64_3.7b.tar.gz')
- else:
- distantfile = 'http://download.multichannelsystems.com/download_data/software/neuroshare/nsMCDLibrary_Linux32_3.7b.tar.gz'
- localfile = os.path.join(tempfile.gettempdir(), 'nsMCDLibrary_Linux32_3.7b.tar.gz')
- if not os.path.exists(localfile):
- urlretrieve(distantfile, localfile)
- self.dllname = os.path.join(tempfile.gettempdir(), 'nsMCDLibrary/nsMCDLibrary.so')
- if not os.path.exists(self.dllname):
- tar = tarfile.open(localfile)
- tar.extract('nsMCDLibrary/nsMCDLibrary.so', path=tempfile.gettempdir())
- else:
- raise unittest.SkipTest("Not currently supported on OS X")
- def test_with_multichannel(self):
- filename0 = self.get_filename_path(self.files_to_download[0])
- reader = NeuroshareIO(filename0, self.dllname)
- blocks = reader.read()
- n = len(blocks[0].segments[0].analogsignals)
- assert n == 2, \
- 'For {} , nb AnalogSignal: {} (should be 2)'.format(self.files_to_download[0], n)
- if __name__ == "__main__":
- unittest.main()
|