def PictureChecker(self, pysi, filename): if not self.checkPictures: return currentDirectory = os.getcwd() os.chdir(self.path) testFilename = self.FileNameForTest(filename) + '.TpX' try: from SignalIntegrity.App.TpX import TpX from SignalIntegrity.App.TikZ import TikZ tpx = pysi.Drawing.DrawSchematic(TpX()).Finish() tikz = pysi.Drawing.DrawSchematic(TikZ()).Finish() tpx.lineList = tpx.lineList + tikz.lineList except: self.assertTrue(False, filename + ' couldnt be drawn') if not os.path.exists(testFilename) or self.forceWritePictures: tpx.WriteToFile(testFilename) if not self.relearn: self.assertTrue(False, testFilename + ' not found') with open(testFilename) as f: regression = f.readlines() if tpx.lineList == regression: os.chdir(currentDirectory) return # if we get here, we need a more complicated test because ordering may have changed self.assertTrue( len(tpx.lineList) == len(regression), testFilename + ' incorrect') itemsToCheck = [True for _ in range(len(regression))] for tpxline in tpx.lineList: foundOne = False for k in range(len(regression)): if itemsToCheck[k] and not foundOne: if tpxline == regression[k]: itemsToCheck[k] = False foundOne = True if foundOne: continue self.assertTrue(foundOne, testFilename + ' incorrect') print(testFilename + ' okay, but in different order') os.chdir(currentDirectory)
def __init__(self, parent): self.parent = parent self.canvas = TikZ() self.schematic = Schematic()