Esempio n. 1
0
    def setUp(self):
        GenericArraySourceTest.setUp(self)
        a = np.zeros((5, 1, 1, 1, 1), dtype=np.uint32)
        #the data contained in a ranges from [1,5]
        a[:, 0, 0, 0, 0] = np.arange(0, 5)
        self.source = RelabelingArraySource(a)

        #we apply the relabeling i -> i+1
        relabeling = np.arange(1, a.max() + 2, dtype=np.uint32)
        self.source.setRelabeling(relabeling)

        self.samesource = RelabelingArraySource(a)
        self.othersource = RelabelingArraySource(np.array(a))
Esempio n. 2
0
    def setUp( self ):
        a = np.zeros((5,1,1,1,1), dtype=np.uint32)
        #the data contained in a ranges from [1,5]
        a[:,0,0,0,0] = np.arange(0,5)
        self.source = RelabelingArraySource(a)

        #we apply the relabeling i -> i+1
        relabeling = np.arange(1,a.max()+2, dtype=np.uint32)
        self.source.setRelabeling(relabeling)
Esempio n. 3
0
class RelabelingArraySourceTest(ut.TestCase, GenericArraySourceTest):
    def setUp(self):
        GenericArraySourceTest.setUp(self)
        a = np.zeros((5, 1, 1, 1, 1), dtype=np.uint32)
        #the data contained in a ranges from [1,5]
        a[:, 0, 0, 0, 0] = np.arange(0, 5)
        self.source = RelabelingArraySource(a)

        #we apply the relabeling i -> i+1
        relabeling = np.arange(1, a.max() + 2, dtype=np.uint32)
        self.source.setRelabeling(relabeling)

        self.samesource = RelabelingArraySource(a)
        self.othersource = RelabelingArraySource(np.array(a))

    def testRequestWait(self):
        slicing = (slice(0, 5), slice(None), slice(None), slice(None),
                   slice(None))
        requested = self.source.request(slicing).wait()
        assert requested.ndim == 5
        self.assertTrue(
            np.all(requested.flatten() == np.arange(1, 6, dtype=np.uint32)))

    def testSetDirty(self):
        self.signal_emitted = False
        self.slicing = (slice(0, 5), slice(None), slice(None), slice(None),
                        slice(None))

        def slot(sl):
            self.signal_emitted = True
            self.assertTrue(sl == self.slicing)

        self.source.isDirty.connect(slot)
        self.source.setDirty(self.slicing)
        self.source.isDirty.disconnect(slot)

        self.assertTrue(self.signal_emitted)

        del self.signal_emitted
        del self.slicing
Esempio n. 4
0
class RelabelingArraySourceTest( ut.TestCase, GenericArraySourceTest ):
    def setUp( self ):
        GenericArraySourceTest.setUp(self)
        a = np.zeros((5,1,1,1,1), dtype=np.uint32)
        #the data contained in a ranges from [1,5]
        a[:,0,0,0,0] = np.arange(0,5)
        self.source = RelabelingArraySource(a)

        #we apply the relabeling i -> i+1
        relabeling = np.arange(1,a.max()+2, dtype=np.uint32)
        self.source.setRelabeling(relabeling)

        self.samesource = RelabelingArraySource(a)
        self.othersource = RelabelingArraySource( np.array(a) )

    def testRequestWait( self ):
        slicing = (slice(0,5),slice(None), slice(None), slice(None), slice(None))
        requested = self.source.request(slicing).wait()
        assert requested.ndim == 5
        self.assertTrue(np.all(requested.flatten() == np.arange(1,6, dtype=np.uint32)))

    def testSetDirty( self ):
        self.signal_emitted = False
        self.slicing = (slice(0,5),slice(None), slice(None), slice(None), slice(None))

        def slot( sl ):
            self.signal_emitted = True
            self.assertTrue( sl == self.slicing )

        self.source.isDirty.connect(slot)
        self.source.setDirty( self.slicing )
        self.source.isDirty.disconnect(slot)

        self.assertTrue( self.signal_emitted )

        del self.signal_emitted
        del self.slicing
Esempio n. 5
0
class RelabelingArraySourceTest( ut.TestCase, GenericArraySourceTest ):
    def setUp( self ):
        a = np.zeros((5,1,1,1,1), dtype=np.uint32)
        #the data contained in a ranges from [1,5]
        a[:,0,0,0,0] = np.arange(0,5)
        self.source = RelabelingArraySource(a)

        #we apply the relabeling i -> i+1
        relabeling = np.arange(1,a.max()+2, dtype=np.uint32)
        self.source.setRelabeling(relabeling)

    def testRequestWait( self ):
        slicing = (slice(0,5),slice(None), slice(None), slice(None), slice(None))
        requested = self.source.request(slicing).wait()
        assert requested.ndim == 5
        self.assertTrue(np.all(requested.flatten() == np.arange(1,6, dtype=np.uint32)))

    def testRequestNotify( self ):
        slicing = (slice(0,5),slice(None), slice(None), slice(None), slice(None))
        request = self.source.request(slicing)
        
        def check(result, codon):
            self.assertTrue(np.all(result.flatten() == np.arange(1,6, dtype=np.uint32)))
            self.assertEqual(codon, "unique")
        request.notify(check, codon="unique")

    def testSetDirty( self ):
        self.signal_emitted = False
        self.slicing = (slice(0,5),slice(None), slice(None), slice(None), slice(None))

        def slot( sl ):
            self.signal_emitted = True
            self.assertTrue( sl == self.slicing )

        self.source.isDirty.connect(slot)
        self.source.setDirty( self.slicing )
        self.source.isDirty.disconnect(slot)

        self.assertTrue( self.signal_emitted )

        del self.signal_emitted
        del self.slicing


    if has_lazyflow:
        class LazyflowSourceTest( ut.TestCase, GenericArraySourceTest ):
            def setUp( self ):
                self.lena = np.load(os.path.join(volumina._testing.__path__[0], 'lena.npy'))
                self.raw = np.zeros((1,512,512,1,1), dtype=np.uint8)
                self.raw[0,:,:,0,0] = self.lena

                g = Graph()
                op = OpDataProvider(g, self.raw)
                self.source = LazyflowSource(op.Data, "Data")