''' Created on May 15, 2017 @author: Bart ''' import unittest from MatPlotLibWrapper import MatPlotLibWrapper from plot import Plot, DataSet, DataPoint, Color, LineStyle, XAxis, YAxis class Test(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self) self.dps1 = [] self.dps1.append(DataPoint(0, 1)) self.dps1.append(DataPoint(0.1, 1.0)) self.dps1.append(DataPoint(0.2, 1.2)) self.dps1.append(DataPoint(0.3, 1.5)) self.dps1.append(DataPoint(0.4, 1.6)) self.dps1.append(DataPoint(0.5, 1.65)) self.dps1.append(DataPoint(0.6, 1.67)) self.dps2 = [] self.dps2.append(DataPoint(0, 2)) self.dps2.append(DataPoint(0.1, 2.1)) self.dps2.append(DataPoint(0.2, 2.2)) self.dps2.append(DataPoint(0.3, 2.0)) self.dps2.append(DataPoint(0.4, 1.6)) self.dps2.append(DataPoint(0.5, 1)) self.dps2.append(DataPoint(0.6, 0)) self.dps2.append(DataPoint(0.7, 0)) self.dps3 = [] self.dps3.append(DataPoint(0, 1.2)) self.dps3.append(DataPoint(0.2, 1.1)) self.dps3.append(DataPoint(0.4, 1)) self.mw = MatPlotLibWrapper() def test_oneplot(self): ds1 = DataSet(self.dps1, color=Color.BLUE, linestyle=LineStyle.X, legend="t1") p1 = Plot([ds1], "test 1", x=XAxis("time", "s", 0, 1), y=YAxis("val", "kg/s**2", 0, 2), legend=True).to_json() self.mw.visualize([p1]) def test_threeplots(self): ds1 = DataSet(self.dps1, color=Color.RED, linestyle=LineStyle.X, legend="t1") p1 = Plot([ds1], "test 1", x=XAxis("time", "s", 0, 1), y=YAxis("val1", "kg/s**2", 0, 2), legend=True).to_json() ds2 = DataSet(self.dps2, color=Color.CYAN, linestyle=LineStyle.DASHED, legend="t2") p2 = Plot([ds2], "test 2", x=XAxis("time", "seconds", 0, 1), y=YAxis("val2", "kg/s**2", 0, 3), legend=True).to_json() ds3 = DataSet(self.dps3, color=Color.BLUE, linestyle=LineStyle.POINT, legend="t3") p3 = Plot([ds3], "test 3", x=XAxis("time", "s", 0, 1), y=YAxis("val3", "kg/s**2", 0, 2), legend=True).to_json() self.mw.visualize([p1, p2, p3]) def test_onemultiplot(self): ds1 = DataSet(self.dps1, color=Color.RED, linestyle=LineStyle.X, legend="t1") ds2 = DataSet(self.dps2, color=Color.CYAN, linestyle=LineStyle.DASHED, legend="t2") ds3 = DataSet(self.dps3, color=Color.BLUE, linestyle=LineStyle.POINT, legend="t3") p1 = Plot([ds1, ds2, ds3], "test 1+2+3", x=XAxis("time", "s", 0, 1), y=YAxis("val1", "kg/s**2", 0, 2), legend=True).to_json() self.mw.visualize([p1]) def test_twomultiplot(self): ds1 = DataSet(self.dps1, color=Color.RED, linestyle=LineStyle.X, legend="t1") ds2 = DataSet(self.dps2, color=Color.CYAN, linestyle=LineStyle.DASHED, legend="t2") ds3 = DataSet(self.dps3, color=Color.BLUE, linestyle=LineStyle.POINT, legend="t3") p1 = Plot([ds1, ds2, ds3], "test 1+2+3", x=XAxis("time", "s", 0, 1), y=YAxis("val1", "kg/s**2", 0, 2), legend=True).to_json() ds1 = DataSet(self.dps1, color=Color.GREEN, linestyle=LineStyle.CIRCLE, legend="t1'") ds2 = DataSet(self.dps2, color=Color.BLACK, linestyle=LineStyle.DASHDOT, legend="t2'") ds3 = DataSet(self.dps3, color=Color.MAGENTA, linestyle=LineStyle.STAR, legend="t3'") p2 = Plot([ds1, ds2, ds3], "test 1+2+3'", x=XAxis("time", "s", 0, 0.8), y=YAxis("val1", "kg/s**2", 0, 2), legend=True).to_json() self.mw.visualize([p1, p2]) def test_incomplete(self): ds1 = DataSet(self.dps1) p1 = Plot([ds1]).to_json() self.mw.visualize([p1]) def test_multiplotincomplete(self): ds1 = DataSet(self.dps1) ds2 = DataSet(self.dps2) ds3 = DataSet(self.dps3) p1 = Plot([ds1, ds2, ds3]).to_json() self.mw.visualize([p1]) if __name__ == "__main__": #import sys;sys.argv = ['', 'Test.testName'] unittest.main()