import unittest import numpy as np from damaris.data.Drawable import Drawable class TestDrawable(unittest.TestCase): def test_initial_types(self): """x must start as an empty ndarray, y as a list of arrays.""" d = Drawable() self.assertIsInstance(d.x, np.ndarray) self.assertEqual(d.x.size, 0) self.assertIsInstance(d.y, list) def test_empty_min_max_helpers(self): """min/max helpers must return 0 instead of raising on empty data.""" d = Drawable() self.assertEqual(d.get_xmin(), 0) self.assertEqual(d.get_xmax(), 0) self.assertEqual(d.get_xminpos(), 0) self.assertEqual(d.get_ymin(), 0) self.assertEqual(d.get_ymax(), 0) self.assertEqual(d.get_yminpos(), 0) def test_min_max_helpers_with_data(self): d = Drawable() d.x = np.array([-1.0, 0.0, 2.0, 5.0]) d.y = [np.array([1.0, -2.0, 3.0]), np.array([0.5, 4.0, -0.5])] self.assertEqual(d.get_xmin(), -1.0) self.assertEqual(d.get_xmax(), 5.0) self.assertEqual(d.get_xminpos(), 2.0) self.assertEqual(d.get_ymin(), -2.0) self.assertEqual(d.get_ymax(), 4.0) self.assertEqual(d.get_yminpos(), 0.5) def test_yminpos_without_positive_values(self): d = Drawable() d.x = np.array([1.0]) d.y = [np.array([-1.0, -2.0])] self.assertEqual(d.get_yminpos(), 0) def test_set_xdata_set_ydata(self): d = Drawable() d.x = np.zeros(3) d.y = [np.zeros(3)] d.set_xdata(1, 5.0) d.set_ydata(0, 1, 7.0) self.assertEqual(d.get_xdata()[1], 5.0) self.assertEqual(d.get_ydata(0)[1], 7.0) if __name__ == "__main__": unittest.main()