예제 #1
0
    def test_interactive_function_return_None(self):
        e = Event()

        def function_return_None():
            print('function called')

        hs.interactive(function_return_None, e)
        e.trigger()
예제 #2
0
 def test_interactive_sum(self):
     s = self.s
     e = Event()
     ss = hs.interactive(s.sum, e, axis=0)
     np.testing.assert_array_equal(ss.data, np.sum(s.data, axis=0))
     s.data += 3.2
     assert not np.allclose(ss.data, np.sum(s.data, axis=0))
     e.trigger()
     np.testing.assert_array_equal(ss.data, np.sum(s.data, axis=0))
예제 #3
0
 def test_interactive_sum(self):
     s = self.s
     e = Event()
     ss = hs.interactive(s.sum, e, axis=0)
     np.testing.assert_array_equal(ss.data, np.sum(s.data, axis=0))
     s.data += 3.2
     nt.assert_false(np.allclose(ss.data, np.sum(s.data, axis=0)))
     e.trigger()
     np.testing.assert_array_equal(ss.data, np.sum(s.data, axis=0))
예제 #4
0
    def test_interactive_sum_no_out(self):
        s = self.s

        def sumf(axis):
            return s.sum(axis=axis)
        e = Event()
        ss = hs.interactive(sumf, e, axis=0)
        np.testing.assert_array_equal(ss.data, np.sum(s.data, axis=0))
        s.data += 3.2
        nt.assert_false(np.allclose(ss.data, np.sum(s.data, axis=0)))
        e.trigger()
        np.testing.assert_array_equal(ss.data, np.sum(s.data, axis=0))
예제 #5
0
    def test_interactive_sum_no_out(self):
        s = self.s

        def sumf(axis):
            return s.sum(axis=axis)
        e = Event()
        ss = hs.interactive(sumf, e, axis=0)
        np.testing.assert_array_equal(ss.data, np.sum(s.data, axis=0))
        s.data += 3.2
        assert not np.allclose(ss.data, np.sum(s.data, axis=0))
        e.trigger()
        np.testing.assert_array_equal(ss.data, np.sum(s.data, axis=0))
예제 #6
0
 def test_chained_interactive(self):
     s = self.s
     e1, e2 = Event(), Event()
     ss = hs.interactive(s.sum, e1, axis=0)
     sss = hs.interactive(ss.sum, e2, axis=0)
     np.testing.assert_allclose(sss.data, np.sum(s.data, axis=(0, 1)))
     s.data += 3.2
     assert not np.allclose(ss.data, np.sum(s.data, axis=(1)))
     e1.trigger()
     np.testing.assert_allclose(ss.data, np.sum(s.data, axis=(1)))
     assert not np.allclose(sss.data, np.sum(s.data, axis=(0, 1)))
     e2.trigger()
     np.testing.assert_allclose(sss.data, np.sum(s.data, axis=(0, 1)))
예제 #7
0
 def test_chained_interactive(self):
     s = self.s
     e1, e2 = Event(), Event()
     ss = hs.interactive(s.sum, e1, axis=0)
     sss = hs.interactive(ss.sum, e2, axis=0)
     np.testing.assert_allclose(sss.data, np.sum(s.data, axis=(0, 1)))
     s.data += 3.2
     nt.assert_false(np.allclose(ss.data, np.sum(s.data, axis=(1))))
     e1.trigger()
     np.testing.assert_allclose(ss.data, np.sum(s.data, axis=(1)))
     nt.assert_false(np.allclose(sss.data, np.sum(s.data, axis=(0, 1))))
     e2.trigger()
     np.testing.assert_allclose(sss.data, np.sum(s.data, axis=(0, 1)))
예제 #8
0
 def test_two_recompute_events(self):
     s = self.s
     e1 = Event()
     e2 = Event()
     ss = hs.interactive(s.sum,
                         event=None,
                         recompute_out_event=(e1, e2),
                         axis=0)
     s.data[:] = 0
     e1.trigger()
     np.testing.assert_equal(ss.data, np.sum(s.data, axis=1))
     s.data[:] = 1
     e2.trigger()
     np.testing.assert_equal(ss.data, np.sum(s.data, axis=1))
예제 #9
0
 def test_two_update_events(self):
     s = self.s
     e1 = Event()
     e2 = Event()
     ss = hs.interactive(
         s.sum,
         event=(
             e1,
             e2),
         recompute_out_event=None,
         axis=0)
     s.data[:] = 0
     e1.trigger()
     np.testing.assert_equal(ss.data, np.sum(s.data, axis=1))
     s.data[:] = 1
     e2.trigger()
     np.testing.assert_equal(ss.data, np.sum(s.data, axis=1))
예제 #10
0
 def test_recompute(self):
     s = self.s
     e1 = Event()
     e2 = Event()
     ss = hs.interactive(s.sum, e1, recompute_out_event=e2, axis=0)
     # Check eveything as normal first
     np.testing.assert_equal(ss.data, np.sum(s.data, axis=1))
     # Modify axes and data in-place
     s.crop(1, 1)  # data shape (2, 3, 50)
     # Check that data is no longer comparable
     nt.assert_not_equal(ss.data.shape, np.sum(s.data, axis=1).shape)
     # Check that normal event raises an exception due to the invalid shape
     nt.assert_raises(ValueError, e1.trigger)
     # Check that recompute event fixes issue
     e2.trigger()
     np.testing.assert_equal(ss.data, np.sum(s.data, axis=1))
     # Finally, check that axes are updated as they should
     nt.assert_equal(ss.axes_manager.navigation_axes[0].offset, 1)
예제 #11
0
 def test_recompute(self):
     s = self.s
     e1 = Event()
     e2 = Event()
     ss = hs.interactive(s.sum, e1, recompute_out_event=e2, axis=0)
     # Check eveything as normal first
     np.testing.assert_equal(ss.data, np.sum(s.data, axis=1))
     # Modify axes and data in-place
     s.crop(1, 1)  # data shape (2, 3, 50)
     # Check that data is no longer comparable
     nt.assert_not_equal(ss.data.shape, np.sum(s.data, axis=1).shape)
     # Check that normal event raises an exception due to the invalid shape
     nt.assert_raises(ValueError, e1.trigger)
     # Check that recompute event fixes issue
     e2.trigger()
     np.testing.assert_equal(ss.data, np.sum(s.data, axis=1))
     # Finally, check that axes are updated as they should
     nt.assert_equal(ss.axes_manager.navigation_axes[0].offset, 1)