Browse Source

Added functional tests

feature/load_slices
Jim Rybarski 9 years ago
parent
commit
70467b9661
6 changed files with 69 additions and 2 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +4
    -0
      Makefile
  3. +6
    -0
      ftests.py
  4. +56
    -0
      functional_tests/FYLM141111001.py
  5. +0
    -0
      functional_tests/__init__.py
  6. +2
    -2
      nd2reader/model/image.py

+ 1
- 0
CHANGELOG.md View File

@ -2,6 +2,7 @@
### ADDED ### ADDED
- `Image` objects now have a `frame_number` attribute. - `Image` objects now have a `frame_number` attribute.
- `Nd2` can be used as a context manager. - `Nd2` can be used as a context manager.
- More unit tests and functional tests
### CHANGED ### CHANGED
- `Image` objects now directly subclass Numpy arrays. - `Image` objects now directly subclass Numpy arrays.


+ 4
- 0
Makefile View File

@ -26,3 +26,7 @@ test: build
docker run --rm -it jimrybarski/nd2reader python3.4 /opt/nd2reader/tests.py docker run --rm -it jimrybarski/nd2reader python3.4 /opt/nd2reader/tests.py
docker run --rm -it jimrybarski/nd2reader python2.7 /opt/nd2reader/tests.py docker run --rm -it jimrybarski/nd2reader python2.7 /opt/nd2reader/tests.py
functest: build
docker run --rm -v ~/nd2s:/var/nd2s -it jimrybarski/nd2reader python3.4 /opt/nd2reader/ftests.py
docker run --rm -v ~/nd2s:/var/nd2s -it jimrybarski/nd2reader python2.7 /opt/nd2reader/ftests.py

+ 6
- 0
ftests.py View File

@ -0,0 +1,6 @@
import unittest
from functional_tests.FYLM141111001 import FunctionalTests
if __name__ == '__main__':
unittest.main()

+ 56
- 0
functional_tests/FYLM141111001.py View File

@ -0,0 +1,56 @@
"""
These tests require that you have a specific ND2 file created by the developer of nd2reader. You will never need to
run them unless you're Jim Rybarski.
"""
from nd2reader import Nd2
from datetime import datetime
import unittest
class FunctionalTests(unittest.TestCase):
def setUp(self):
self.nd2 = Nd2("/var/nd2s/FYLM-141111-001.nd2")
def tearDown(self):
self.nd2.close()
def test_shape(self):
self.assertEqual(self.nd2.height, 1280)
self.assertEqual(self.nd2.width, 800)
def test_date(self):
self.assertEqual(self.nd2.date, datetime(2014, 11, 11, 15, 59, 19))
def test_length(self):
self.assertEqual(len(self.nd2), 30528)
def test_frames(self):
self.assertEqual(len(self.nd2.frames), 636)
def test_fovs(self):
self.assertEqual(len(self.nd2.fields_of_view), 8)
def test_channels(self):
self.assertTupleEqual(tuple(sorted(self.nd2.channels)), ('', 'GFP'))
def test_z_levels(self):
self.assertTupleEqual(tuple(self.nd2.z_levels), (0, 1, 2))
def test_image(self):
image = self.nd2[14]
self.assertEqual(image.field_of_view, 2)
self.assertEqual(image.frame_number, 0)
self.assertAlmostEqual(image.timestamp, 19.0340758)
self.assertEqual(image.channel, '')
self.assertEqual(image.z_level, 1)
self.assertEqual(image.height, self.nd2.height)
self.assertEqual(image.width, self.nd2.width)
def test_last_image(self):
image = self.nd2[30526]
self.assertEqual(image.frame_number, 635)
def test_bad_image(self):
image = self.nd2[13]
self.assertIsNone(image)

+ 0
- 0
functional_tests/__init__.py View File


+ 2
- 2
nd2reader/model/image.py View File

@ -40,11 +40,11 @@ class Image(np.ndarray):
@property @property
def height(self): def height(self):
return self.shape[1]
return self.shape[0]
@property @property
def width(self): def width(self):
return self.shape[0]
return self.shape[1]
@property @property
def field_of_view(self): def field_of_view(self):


Loading…
Cancel
Save