class TestLimitConstaints(unittest.TestCase): """Tests setLimitConstaints class""" def setUp(self): self.plot = PlotWidget() def tearDown(self): self.plot = None def testApi(self): """Test availability of the API""" self.plot.getXAxis().setLimitsConstraints(minPos=1, maxPos=10) self.plot.getXAxis().setRangeConstraints(minRange=1, maxRange=1) self.plot.getYAxis().setLimitsConstraints(minPos=1, maxPos=10) self.plot.getYAxis().setRangeConstraints(minRange=1, maxRange=1) def testXMinMax(self): """Test limit constains on x-axis""" self.plot.getXAxis().setLimitsConstraints(minPos=0, maxPos=100) self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) self.assertEqual(self.plot.getXAxis().getLimits(), (0, 100)) self.assertEqual(self.plot.getYAxis().getLimits(), (-1, 101)) def testYMinMax(self): """Test limit constains on y-axis""" self.plot.getYAxis().setLimitsConstraints(minPos=0, maxPos=100) self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) self.assertEqual(self.plot.getXAxis().getLimits(), (-1, 101)) self.assertEqual(self.plot.getYAxis().getLimits(), (0, 100)) def testMinXRange(self): """Test min range constains on x-axis""" self.plot.getXAxis().setRangeConstraints(minRange=100) self.plot.setLimits(xmin=1, xmax=99, ymin=1, ymax=99) limits = self.plot.getXAxis().getLimits() self.assertEqual(limits[1] - limits[0], 100) limits = self.plot.getYAxis().getLimits() self.assertNotEqual(limits[1] - limits[0], 100) def testMaxXRange(self): """Test max range constains on x-axis""" self.plot.getXAxis().setRangeConstraints(maxRange=100) self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) limits = self.plot.getXAxis().getLimits() self.assertEqual(limits[1] - limits[0], 100) limits = self.plot.getYAxis().getLimits() self.assertNotEqual(limits[1] - limits[0], 100) def testMinYRange(self): """Test min range constains on y-axis""" self.plot.getYAxis().setRangeConstraints(minRange=100) self.plot.setLimits(xmin=1, xmax=99, ymin=1, ymax=99) limits = self.plot.getXAxis().getLimits() self.assertNotEqual(limits[1] - limits[0], 100) limits = self.plot.getYAxis().getLimits() self.assertEqual(limits[1] - limits[0], 100) def testMaxYRange(self): """Test max range constains on y-axis""" self.plot.getYAxis().setRangeConstraints(maxRange=100) self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) limits = self.plot.getXAxis().getLimits() self.assertNotEqual(limits[1] - limits[0], 100) limits = self.plot.getYAxis().getLimits() self.assertEqual(limits[1] - limits[0], 100) def testChangeOfConstraints(self): """Test changing of the constraints""" self.plot.getXAxis().setRangeConstraints(minRange=10, maxRange=10) # There is no more constraints on the range self.plot.getXAxis().setRangeConstraints(minRange=None, maxRange=None) self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) self.assertEqual(self.plot.getXAxis().getLimits(), (-1, 101)) def testSettingConstraints(self): """Test setting a constaint (setLimits first then the constaint)""" self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) self.plot.getXAxis().setLimitsConstraints(minPos=0, maxPos=100) self.assertEqual(self.plot.getXAxis().getLimits(), (0, 100))
class TestAxisSync(TestCaseQt): """Tests AxisSync class""" def setUp(self): TestCaseQt.setUp(self) self.plot1 = PlotWidget() self.plot2 = PlotWidget() self.plot3 = PlotWidget() def tearDown(self): self.plot1 = None self.plot2 = None self.plot3 = None TestCaseQt.tearDown(self) def testMoveFirstAxis(self): """Test synchronization after construction""" _sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) self.plot1.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testMoveSecondAxis(self): """Test synchronization after construction""" _sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) self.plot2.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testMoveTwoAxes(self): """Test synchronization after construction""" _sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) self.plot1.getXAxis().setLimits(1, 50) self.plot2.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testDestruction(self): """Test synchronization when sync object is destroyed""" sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) del sync self.plot1.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testAxisDestruction(self): """Test synchronization when an axis disappear""" _sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) # Destroy the plot is possible import weakref plot = weakref.ref(self.plot2) self.plot2 = None result = self.qWaitForDestroy(plot) if not result: # We can't test self.skipTest("Object not destroyed") self.plot1.getXAxis().setLimits(10, 500) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testStop(self): """Test synchronization after calling stop""" sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) sync.stop() self.plot1.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testStopMovingStart(self): """Test synchronization after calling stop, moving an axis, then start again""" sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) sync.stop() self.plot1.getXAxis().setLimits(10, 500) self.plot2.getXAxis().setLimits(1, 50) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) sync.start() # The first axis is the reference self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testDoubleStop(self): """Test double stop""" sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) sync.stop() self.assertRaises(RuntimeError, sync.stop) def testDoubleStart(self): """Test double stop""" sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) self.assertRaises(RuntimeError, sync.start) def testScale(self): """Test scale change""" _sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) self.plot1.getXAxis().setScale(self.plot1.getXAxis().LOGARITHMIC) self.assertEqual(self.plot1.getXAxis().getScale(), self.plot1.getXAxis().LOGARITHMIC) self.assertEqual(self.plot2.getXAxis().getScale(), self.plot1.getXAxis().LOGARITHMIC) self.assertEqual(self.plot3.getXAxis().getScale(), self.plot1.getXAxis().LOGARITHMIC) def testDirection(self): """Test direction change""" _sync = SyncAxes([ self.plot1.getYAxis(), self.plot2.getYAxis(), self.plot3.getYAxis() ]) self.plot1.getYAxis().setInverted(True) self.assertEqual(self.plot1.getYAxis().isInverted(), True) self.assertEqual(self.plot2.getYAxis().isInverted(), True) self.assertEqual(self.plot3.getYAxis().isInverted(), True)
class TestAxisSync(TestCaseQt): """Tests AxisSync class""" def setUp(self): TestCaseQt.setUp(self) self.plot1 = PlotWidget() self.plot2 = PlotWidget() self.plot3 = PlotWidget() def tearDown(self): self.plot1 = None self.plot2 = None self.plot3 = None TestCaseQt.tearDown(self) def testMoveFirstAxis(self): """Test synchronization after construction""" _sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()]) self.plot1.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testMoveSecondAxis(self): """Test synchronization after construction""" _sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()]) self.plot2.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testMoveTwoAxes(self): """Test synchronization after construction""" _sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()]) self.plot1.getXAxis().setLimits(1, 50) self.plot2.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testDestruction(self): """Test synchronization when sync object is destroyed""" sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()]) del sync self.plot1.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testAxisDestruction(self): """Test synchronization when an axis disappear""" _sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()]) # Destroy the plot is possible import weakref plot = weakref.ref(self.plot2) self.plot2 = None result = self.qWaitForDestroy(plot) if not result: # We can't test self.skipTest("Object not destroyed") self.plot1.getXAxis().setLimits(10, 500) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testStop(self): """Test synchronization after calling stop""" sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()]) sync.stop() self.plot1.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testStopMovingStart(self): """Test synchronization after calling stop, moving an axis, then start again""" sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()]) sync.stop() self.plot1.getXAxis().setLimits(10, 500) self.plot2.getXAxis().setLimits(1, 50) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) sync.start() # The first axis is the reference self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testDoubleStop(self): """Test double stop""" sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()]) sync.stop() self.assertRaises(RuntimeError, sync.stop) def testDoubleStart(self): """Test double stop""" sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()]) self.assertRaises(RuntimeError, sync.start) def testScale(self): """Test scale change""" _sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()]) self.plot1.getXAxis().setScale(self.plot1.getXAxis().LOGARITHMIC) self.assertEqual(self.plot1.getXAxis().getScale(), self.plot1.getXAxis().LOGARITHMIC) self.assertEqual(self.plot2.getXAxis().getScale(), self.plot1.getXAxis().LOGARITHMIC) self.assertEqual(self.plot3.getXAxis().getScale(), self.plot1.getXAxis().LOGARITHMIC) def testDirection(self): """Test direction change""" _sync = SyncAxes([self.plot1.getYAxis(), self.plot2.getYAxis(), self.plot3.getYAxis()]) self.plot1.getYAxis().setInverted(True) self.assertEqual(self.plot1.getYAxis().isInverted(), True) self.assertEqual(self.plot2.getYAxis().isInverted(), True) self.assertEqual(self.plot3.getYAxis().isInverted(), True)
class TestLimitConstaints(unittest.TestCase): """Tests setLimitConstaints class""" def setUp(self): self.plot = PlotWidget() def tearDown(self): self.plot = None def testApi(self): """Test availability of the API""" self.plot.getXAxis().setLimitsConstraints(minPos=1, maxPos=10) self.plot.getXAxis().setRangeConstraints(minRange=1, maxRange=1) self.plot.getYAxis().setLimitsConstraints(minPos=1, maxPos=10) self.plot.getYAxis().setRangeConstraints(minRange=1, maxRange=1) def testXMinMax(self): """Test limit constains on x-axis""" self.plot.getXAxis().setLimitsConstraints(minPos=0, maxPos=100) self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) self.assertEqual(self.plot.getXAxis().getLimits(), (0, 100)) self.assertEqual(self.plot.getYAxis().getLimits(), (-1, 101)) def testYMinMax(self): """Test limit constains on y-axis""" self.plot.getYAxis().setLimitsConstraints(minPos=0, maxPos=100) self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) self.assertEqual(self.plot.getXAxis().getLimits(), (-1, 101)) self.assertEqual(self.plot.getYAxis().getLimits(), (0, 100)) def testMinXRange(self): """Test min range constains on x-axis""" self.plot.getXAxis().setRangeConstraints(minRange=100) self.plot.setLimits(xmin=1, xmax=99, ymin=1, ymax=99) limits = self.plot.getXAxis().getLimits() self.assertEqual(limits[1] - limits[0], 100) limits = self.plot.getYAxis().getLimits() self.assertNotEqual(limits[1] - limits[0], 100) def testMaxXRange(self): """Test max range constains on x-axis""" self.plot.getXAxis().setRangeConstraints(maxRange=100) self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) limits = self.plot.getXAxis().getLimits() self.assertEqual(limits[1] - limits[0], 100) limits = self.plot.getYAxis().getLimits() self.assertNotEqual(limits[1] - limits[0], 100) def testMinYRange(self): """Test min range constains on y-axis""" self.plot.getYAxis().setRangeConstraints(minRange=100) self.plot.setLimits(xmin=1, xmax=99, ymin=1, ymax=99) limits = self.plot.getXAxis().getLimits() self.assertNotEqual(limits[1] - limits[0], 100) limits = self.plot.getYAxis().getLimits() self.assertEqual(limits[1] - limits[0], 100) def testMaxYRange(self): """Test max range constains on y-axis""" self.plot.getYAxis().setRangeConstraints(maxRange=100) self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) limits = self.plot.getXAxis().getLimits() self.assertNotEqual(limits[1] - limits[0], 100) limits = self.plot.getYAxis().getLimits() self.assertEqual(limits[1] - limits[0], 100) def testChangeOfConstraints(self): """Test changing of the constraints""" self.plot.getXAxis().setRangeConstraints(minRange=10, maxRange=10) # There is no more constraints on the range self.plot.getXAxis().setRangeConstraints(minRange=None, maxRange=None) self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) self.assertEqual(self.plot.getXAxis().getLimits(), (-1, 101)) def testSettingConstraints(self): """Test setting a constaint (setLimits first then the constaint)""" self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101) self.plot.getXAxis().setLimitsConstraints(minPos=0, maxPos=100) self.assertEqual(self.plot.getXAxis().getLimits(), (0, 100))
class TestAxisSync(unittest.TestCase): """Tests AxisSync class""" def setUp(self): self.plot1 = PlotWidget() self.plot2 = PlotWidget() self.plot3 = PlotWidget() def tearDown(self): self.plot1 = None self.plot2 = None self.plot3 = None def testMoveFirstAxis(self): """Test synchronization after construction""" _sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) self.plot1.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testMoveSecondAxis(self): """Test synchronization after construction""" _sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) self.plot2.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testMoveTwoAxes(self): """Test synchronization after construction""" _sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) self.plot1.getXAxis().setLimits(1, 50) self.plot2.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testDestruction(self): """Test synchronization when sync object is destroyed""" sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) del sync self.plot1.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testStop(self): """Test synchronization after calling stop""" sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) sync.stop() self.plot1.getXAxis().setLimits(10, 500) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertNotEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testStopMovingStart(self): """Test synchronization after calling stop, moving an axis, then start again""" sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) sync.stop() self.plot1.getXAxis().setLimits(10, 500) self.plot2.getXAxis().setLimits(1, 50) self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) sync.start() # The first axis is the reference self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500)) self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500)) def testDoubleStop(self): """Test double stop""" sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) sync.stop() self.assertRaises(RuntimeError, sync.stop) def testDoubleStart(self): """Test double stop""" sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) self.assertRaises(RuntimeError, sync.start) def testScale(self): """Test scale change""" _sync = SyncAxes([ self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis() ]) self.plot1.getXAxis().setScale(self.plot1.getXAxis().LOGARITHMIC) self.assertEqual(self.plot1.getXAxis().getScale(), self.plot1.getXAxis().LOGARITHMIC) self.assertEqual(self.plot2.getXAxis().getScale(), self.plot1.getXAxis().LOGARITHMIC) self.assertEqual(self.plot3.getXAxis().getScale(), self.plot1.getXAxis().LOGARITHMIC) def testDirection(self): """Test direction change""" _sync = SyncAxes([ self.plot1.getYAxis(), self.plot2.getYAxis(), self.plot3.getYAxis() ]) self.plot1.getYAxis().setInverted(True) self.assertEqual(self.plot1.getYAxis().isInverted(), True) self.assertEqual(self.plot2.getYAxis().isInverted(), True) self.assertEqual(self.plot3.getYAxis().isInverted(), True)