def test_change_notifications(self):
        foo = Foo()
        test_array = numpy.arange(-7, -2)
        different_test_array = numpy.arange(10)

        # Assigning None to something that's already None shouldn't fire.
        with self.assertTraitDoesNotChange(foo, "maybe_array"):
            foo.maybe_array = None

        # Changing from None to an array: expect an event.
        with self.assertTraitChanges(foo, "maybe_array"):
            foo.maybe_array = test_array

        # No event from assigning the same array again.
        with self.assertTraitDoesNotChange(foo, "maybe_array"):
            foo.maybe_array = test_array

        # But assigning a new array fires an event.
        with self.assertTraitChanges(foo, "maybe_array"):
            foo.maybe_array = different_test_array

        # No event even if the array is modified in place.
        different_test_array += 2
        with self.assertTraitDoesNotChange(foo, "maybe_array"):
            foo.maybe_array = different_test_array

        # Set back to None; we should get an event.
        with self.assertTraitChanges(foo, "maybe_array"):
            foo.maybe_array = None
 def _create_item_model(self):
     self.data = np.arange(120.0).reshape(4, 5, 6)
     self.model = ArrayDataModel(data=self.data, value_type=FloatValue())
     return DataViewItemModel(
         model=self.model,
         selection_type='row',
         exporters=[],
     )
Ejemplo n.º 3
0
 def setUp(self):
     super().setUp()
     self.array = np.arange(30.0).reshape(5, 2, 3)
     self.model = ArrayDataModel(data=self.array, value_type=FloatValue())
     self.values_changed_event = None
     self.structure_changed_event = None
     self.model.observe(self.model_values_changed, 'values_changed')
     self.model.observe(self.model_structure_changed, 'structure_changed')
    def test_setting_array_from_none(self):
        foo = Foo()
        test_array = numpy.arange(5)

        self.assertIsNone(foo.maybe_array)
        foo.maybe_array = test_array
        self.assertIsInstance(foo.maybe_array, numpy.ndarray)
        foo.maybe_array = None
        self.assertIsNone(foo.maybe_array)
 def test_setting_array_from_array(self):
     foo = Foo()
     test_array = numpy.arange(5)
     foo.maybe_array = test_array
     output_array = foo.maybe_array
     self.assertIsInstance(output_array, numpy.ndarray)
     self.assertEqual(output_array.dtype, test_array.dtype)
     self.assertEqual(output_array.shape, test_array.shape)
     self.assertTrue((output_array == test_array).all())
    def test_comparison_mode_override(self):
        foo = Foo()
        test_array = numpy.arange(-7, 2)

        with self.assertTraitChanges(foo, "maybe_array_no_compare"):
            foo.maybe_array_no_compare = None

        with self.assertTraitChanges(foo, "maybe_array_no_compare"):
            foo.maybe_array_no_compare = test_array

        with self.assertTraitChanges(foo, "maybe_array_no_compare"):
            foo.maybe_array_no_compare = test_array
    def test_default_value_copied(self):
        # Check that we don't share defaults.
        test_default = numpy.arange(100.0, 110.0)

        class FooBar(HasTraits):
            foo = ArrayOrNone(value=test_default)

            bar = ArrayOrNone(value=test_default)

        foo_bar = FooBar()

        self.assertTrue((foo_bar.foo == test_default).all())
        self.assertTrue((foo_bar.bar == test_default).all())

        test_default += 2.0
        self.assertFalse((foo_bar.foo == test_default).all())
        self.assertFalse((foo_bar.bar == test_default).all())

        foo = foo_bar.foo
        foo += 1729.0
        self.assertFalse((foo_bar.foo == foo_bar.bar).all())
Ejemplo n.º 8
0
 def test_set_data_1d(self):
     with self.assertTraitChanges(self.model, 'structure_changed'):
         self.model.data = np.arange(30.0)
     self.assertEqual(self.model.data.ndim, 2)
     self.assertEqual(self.model.data.shape, (30, 1))
Ejemplo n.º 9
0
 def test_data_1d(self):
     array = np.arange(30.0)
     model = ArrayDataModel(data=array, value_type=FloatValue())
     self.assertEqual(model.data.ndim, 2)
     self.assertEqual(model.data.shape, (30, 1))
Ejemplo n.º 10
0
 def _create_widget(self):
     self.data = np.arange(120.0).reshape(4, 5, 6)
     self.model = ArrayDataModel(data=self.data, value_type=FloatValue())
     return DataViewWidget(parent=self.parent.control,
                           data_model=self.model)