Esempio n. 1
0
 def test_dynamic_collate_layout_raise_ambiguous_remapping_error(self):
     def callback(x, y):
         return Image(np.array([[0, 1], [2, 3]])) + Image(np.array([[0, 1], [2, 3]]))
     stream = PointerXY()
     cb_callable = Callable(callback, stream_mapping={'Image': [stream]})
     dmap = DynamicMap(cb_callable, kdims=[], streams=[stream])
     with self.assertRaisesRegexp(ValueError, 'The stream_mapping supplied on the Callable is ambiguous'):
         dmap.collate()
Esempio n. 2
0
 def test_dynamic_collate_layout_raise_no_remapping_error(self):
     def callback(x, y):
         return Image(np.array([[0, 1], [2, 3]])) + Text(0, 0, 'Test')
     stream = PointerXY()
     cb_callable = Callable(callback)
     dmap = DynamicMap(cb_callable, kdims=[], streams=[stream])
     with self.assertRaisesRegexp(ValueError, 'The following streams are set to be automatically linked'):
         dmap.collate()
Esempio n. 3
0
 def test_dynamic_collate_layout(self):
     def callback():
         return Image(np.array([[0, 1], [2, 3]])) + Text(0, 0, 'Test')
     dmap = DynamicMap(callback, kdims=[])
     layout = dmap.collate()
     self.assertEqual(list(layout.keys()), [('Image', 'I'), ('Text', 'I')])
     self.assertEqual(layout.Image.I[()], Image(np.array([[0, 1], [2, 3]])))
Esempio n. 4
0
 def test_dynamic_collate_ndlayout(self):
     def callback():
         return NdLayout({i: Image(np.array([[i, 1], [2, 3]])) for i in range(1, 3)})
     dmap = DynamicMap(callback, kdims=[])
     layout = dmap.collate()
     self.assertEqual(list(layout.keys()), [1, 2])
     self.assertEqual(layout[1][()], Image(np.array([[1, 1], [2, 3]])))
Esempio n. 5
0
 def test_dynamic_collate_layout_with_spec_stream_mapping(self):
     def callback(x, y):
         return Image(np.array([[0, 1], [2, 3]])) + Text(0, 0, 'Test')
     stream = PointerXY()
     cb_callable = Callable(callback, stream_mapping={'Image': [stream]})
     dmap = DynamicMap(cb_callable, kdims=[], streams=[stream])
     layout = dmap.collate()
     self.assertEqual(list(layout.keys()), [('Image', 'I'), ('Text', 'I')])
     self.assertIs(stream.source, layout.Image.I)
Esempio n. 6
0
 def test_dynamic_collate_gridspace_with_changing_items_raises(self):
     def callback(i):
         return GridSpace({j: Curve([], label=str(j)) for j in range(i)}, 'X')
     dmap = DynamicMap(callback, kdims=['i']).redim.range(i=(2, 10))
     layout = dmap.collate()
     dmap1, dmap2 = layout.values()
     err = 'Collated DynamicMaps must return GridSpace with consistent number of items.'
     with self.assertRaisesRegexp(ValueError, err):
         dmap1[4]
Esempio n. 7
0
 def test_dynamic_collate_ndlayout_with_key_stream_mapping(self):
     def callback(x, y):
         return NdLayout({i: Image(np.array([[i, 1], [2, 3]])) for i in range(1, 3)})
     stream = PointerXY()
     cb_callable = Callable(callback, stream_mapping={(1,): [stream]})
     dmap = DynamicMap(cb_callable, kdims=[], streams=[stream])
     layout = dmap.collate()
     self.assertEqual(list(layout.keys()), [1, 2])
     self.assertIs(stream.source, layout[1])
Esempio n. 8
0
 def test_dynamic_collate_grid(self):
     def callback():
         return GridSpace({(i, j): Image(np.array([[i, j], [2, 3]]))
                           for i in range(1, 3) for j in range(1, 3)})
     dmap = DynamicMap(callback, kdims=[])
     grid = dmap.collate()
     self.assertEqual(list(grid.keys()), [(i, j) for i in range(1, 3)
                                          for j in range(1, 3)])
     self.assertEqual(grid[(0, 1)][()], Image(np.array([[1, 1], [2, 3]])))
Esempio n. 9
0
 def test_dynamic_collate_layout_with_changing_label(self):
     def callback(i):
         return Layout([Curve([], label=str(j)) for j in range(i, i+2)])
     dmap = DynamicMap(callback, kdims=['i']).redim.range(i=(0, 10))
     layout = dmap.collate()
     dmap1, dmap2 = layout.values()
     el1, el2 = dmap1[2], dmap2[2]
     self.assertEqual(el1.label, '2')
     self.assertEqual(el2.label, '3')
Esempio n. 10
0
    def test_dynamic_collate_grid(self):
        def callback():
            return GridSpace({(i, j): Image(np.array([[i, j], [2, 3]]))
                              for i in range(1, 3) for j in range(1, 3)})

        dmap = DynamicMap(callback, kdims=[])
        grid = dmap.collate()
        self.assertEqual(list(grid.keys()),
                         [(i, j) for i in range(1, 3) for j in range(1, 3)])
        self.assertEqual(grid[(0, 1)][()], Image(np.array([[1, 1], [2, 3]])))
Esempio n. 11
0
    def test_dynamic_collate_layout_with_changing_label(self):
        def callback(i):
            return Layout([Curve([], label=str(j)) for j in range(i, i + 2)])

        dmap = DynamicMap(callback, kdims=['i']).redim.range(i=(0, 10))
        layout = dmap.collate()
        dmap1, dmap2 = layout.values()
        el1, el2 = dmap1[2], dmap2[2]
        self.assertEqual(el1.label, '2')
        self.assertEqual(el2.label, '3')
Esempio n. 12
0
 def test_dynamic_collate_gridspace_with_changing_items_raises(self):
     def callback(i):
         return GridSpace({j: Curve([], label=str(j)) for j in range(i)}, 'X')
     dmap = DynamicMap(callback, kdims=['i']).redim.range(i=(2, 10))
     layout = dmap.collate()
     dmap1, dmap2 = layout.values()
     err = 'Collated DynamicMaps must return GridSpace with consistent number of items.'
     with self.assertRaisesRegex(ValueError, err):
         dmap1[4]
     self.log_handler.assertContains('WARNING', err)
Esempio n. 13
0
    def test_dynamic_collate_ndlayout(self):
        def callback():
            return NdLayout(
                {i: Image(np.array([[i, 1], [2, 3]]))
                 for i in range(1, 3)})

        dmap = DynamicMap(callback, kdims=[])
        layout = dmap.collate()
        self.assertEqual(list(layout.keys()), [1, 2])
        self.assertEqual(layout[1][()], Image(np.array([[1, 1], [2, 3]])))
Esempio n. 14
0
    def test_dynamic_collate_layout_with_spec_stream_mapping(self):
        def callback(x, y):
            return Image(np.array([[0, 1], [2, 3]])) + Text(0, 0, 'Test')

        stream = PointerXY()
        cb_callable = Callable(callback, stream_mapping={'Image': [stream]})
        dmap = DynamicMap(cb_callable, kdims=[], streams=[stream])
        layout = dmap.collate()
        self.assertEqual(list(layout.keys()), [('Image', 'I'), ('Text', 'I')])
        self.assertIs(stream.source, layout.Image.I)
Esempio n. 15
0
 def test_dynamic_collate_grid_with_key_stream_mapping(self):
     def callback():
         return GridSpace({(i, j): Image(np.array([[i, j], [2, 3]]))
                           for i in range(1, 3) for j in range(1, 3)})
     stream = PointerXY()
     cb_callable = Callable(callback, stream_mapping={(1, 2): [stream]})
     dmap = DynamicMap(cb_callable, kdims=[])
     grid = dmap.collate()
     self.assertEqual(list(grid.keys()), [(i, j) for i in range(1, 3)
                                          for j in range(1, 3)])
     self.assertEqual(stream.source, grid[(1, 2)])
Esempio n. 16
0
 def test_dynamic_collate_gridspace_with_changing_item_types_raises(self):
     def callback(i):
         eltype = Image if i%2 else Curve
         return GridSpace({j: eltype([], label=str(j)) for j in range(i, i+2)}, 'X')
     dmap = DynamicMap(callback, kdims=['i']).redim.range(i=(2, 10))
     layout = dmap.collate()
     dmap1, dmap2 = layout.values()
     err = ('The objects in a GridSpace returned by a DynamicMap must '
            'consistently return the same number of items of the same type.')
     with self.assertRaisesRegexp(ValueError, err):
         dmap1[3]
Esempio n. 17
0
 def test_dynamic_collate_grid_with_key_stream_mapping(self):
     def callback():
         return GridSpace({(i, j): Image(np.array([[i, j], [2, 3]]))
                           for i in range(1, 3) for j in range(1, 3)})
     stream = PointerXY()
     cb_callable = Callable(callback, stream_mapping={(1, 2): [stream]})
     dmap = DynamicMap(cb_callable, kdims=[])
     grid = dmap.collate()
     self.assertEqual(list(grid.keys()), [(i, j) for i in range(1, 3)
                                          for j in range(1, 3)])
     self.assertEqual(stream.source, grid[(1, 2)])
Esempio n. 18
0
 def test_dynamic_collate_gridspace_with_changing_item_types_raises(self):
     def callback(i):
         eltype = Image if i%2 else Curve
         return GridSpace({j: eltype([], label=str(j)) for j in range(i, i+2)}, 'X')
     dmap = DynamicMap(callback, kdims=['i']).redim.range(i=(2, 10))
     layout = dmap.collate()
     dmap1, dmap2 = layout.values()
     err = ('The objects in a GridSpace returned by a DynamicMap must '
            'consistently return the same number of items of the same type.')
     with self.assertRaisesRegexp(ValueError, err):
         dmap1[3]
Esempio n. 19
0
    def test_dynamic_collate_layout_raise_no_remapping_error(self):
        def callback(x, y):
            return Image(np.array([[0, 1], [2, 3]])) + Text(0, 0, 'Test')

        stream = PositionXY()
        cb_callable = Callable(callback)
        dmap = DynamicMap(cb_callable, kdims=[], streams=[stream])
        with self.assertRaisesRegexp(
                ValueError,
                'The following streams are set to be automatically linked'):
            layout = dmap.collate()
Esempio n. 20
0
    def test_dynamic_collate_ndlayout_with_key_stream_mapping(self):
        def callback(x, y):
            return NdLayout(
                {i: Image(np.array([[i, 1], [2, 3]]))
                 for i in range(1, 3)})

        stream = PointerXY()
        cb_callable = Callable(callback, stream_mapping={(1, ): [stream]})
        dmap = DynamicMap(cb_callable, kdims=[], streams=[stream])
        layout = dmap.collate()
        self.assertEqual(list(layout.keys()), [1, 2])
        self.assertIs(stream.source, layout[1])
Esempio n. 21
0
    def test_dynamic_collate_layout_raise_ambiguous_remapping_error(self):
        def callback(x, y):
            return Image(np.array([[0, 1], [2, 3]])) + Image(
                np.array([[0, 1], [2, 3]]))

        stream = PositionXY()
        cb_callable = Callable(callback, stream_mapping={'Image': [stream]})
        dmap = DynamicMap(cb_callable, kdims=[], streams=[stream])
        with self.assertRaisesRegexp(
                ValueError,
                'The stream_mapping supplied on the Callable is ambiguous'):
            layout = dmap.collate()