def testFindStringNotFound(self): # fold>> "Findstring functionality/not found case" f = FileReader.FileReader(os.path.join(moduleDir(), "testfile.txt")) self.assertEqual(f.findString('notfound'), '') self.assertEqual(f.isAtEOF(), True) self.assertEqual(f.findString('notfound', backward=True), '') self.assertEqual(f.isAtBOF(), True)
def parseFile(self, infile): # fold>> self.__infile = FileReader.FileReader(infile) self.__parameters = _parseParametersSection(self.__infile) self.__zmatrix, self.__distance_units, self.__angle_units = _parseZMatrixSection( self.__infile, self.__parameters) self.__basis = _parseBasisSection(self.__infile, self.__zmatrix) self.__symmetries = _parseSymmetrySection(self.__infile)
def testOptimizationNextGeometryToken(self): # fold>> data = FileSnippets.optimizationNextGeometry() writeToTestFile(data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.OptimizationNextGeometryToken.match(reader) self.assertEqual(token.__class__, Tokens.OptimizationNextGeometryToken) self.assertEqual(reader.currentPos(), start_pos + 8) atom_list = token.atomList() self.assertEqual(len(atom_list), 4) self.assertEqual(atom_list[0][0], "O1") self.assertEqual(atom_list[0][1], "") self.assertEqual(atom_list[0][2], ("0.0000000000", "0.0000000000", "0.0680928675")) self.assertEqual(atom_list[1][0], "H1") self.assertEqual(atom_list[1][1], "1") self.assertEqual(atom_list[1][2], ("0.0000000000", "-1.7554324515", "3.4700805319")) self.assertEqual(atom_list[2][0], "H1") self.assertEqual(atom_list[2][1], "2") self.assertEqual(atom_list[2][2], ("0.0000000000", "1.7554324515", "3.4700805319")) self.assertEqual(atom_list[3][0], "C1") self.assertEqual(atom_list[3][1], "") self.assertEqual(atom_list[3][2], ("0.0000000000", "0.0000000000", "2.3521294415"))
def testEmptyFileRegexpNotFound(self): # fold>> f = FileReader.FileReader( os.path.join(moduleDir(), "emptytestfile.txt")) self.assertEqual(f.findRegexp('notfound'), None) self.assertEqual(f.isAtEOF(), True) self.assertEqual(f.findRegexp('notfound', backward=True), None) self.assertEqual(f.isAtBOF(), True)
def testCartesianCoordinatesToken(self): # fold>> data = FileSnippets.cartesianCoordinates() writeToTestFile(data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.CartesianCoordinatesToken.match(reader) self.assertEqual(token.__class__, Tokens.CartesianCoordinatesToken) self.assertEqual(reader.currentPos(), start_pos + 22) atom_list = token.atomList() self.assertEqual(len(atom_list), 4) self.assertEqual(atom_list[0][0], "O1") self.assertEqual(atom_list[0][1], "") self.assertEqual(atom_list[0][2], ("0.0000000000", "0.0000000000", "0.3000000000")) self.assertEqual(atom_list[1][0], "H1") self.assertEqual(atom_list[1][1], "1") self.assertEqual(atom_list[1][2], ("0.0000000000", "-1.7597098488", "3.3775957364")) self.assertEqual(atom_list[2][0], "H1") self.assertEqual(atom_list[2][1], "2") self.assertEqual(atom_list[2][2], ("0.0000000000", "1.7597098488", "3.3775957364")) self.assertEqual(atom_list[3][0], "C1") self.assertEqual(atom_list[3][1], "") self.assertEqual(atom_list[3][2], ("0.0000000000", "0.0000000000", "2.3051919000"))
def testEmptyFileSkipLines(self): # fold>> f = FileReader.FileReader( os.path.join(moduleDir(), "emptytestfile.txt")) self.assertEqual(f.currentPos(), -1) f.skipLines(10) self.assertEqual(f.isAtEOF(), True) f.skipLines(-10) self.assertEqual(f.isAtBOF(), True)
def testRegexpCurlineNeverEvaluated(self): # fold>> f = FileReader.FileReader(os.path.join(moduleDir(), "testfile.txt")) f.toPos(0) self.assertEqual(f.findRegexp('line'), ("2nd line\n", )) self.assertEqual(f.currentLine(), "2nd line\n") f.toPos(2) self.assertEqual(f.findRegexp('line', backward=True), ("2nd line\n", )) self.assertEqual(f.currentLine(), "2nd line\n")
def testGetItem(self): # fold>> f = FileReader.FileReader(os.path.join(moduleDir(), "testfile.txt")) self.assertEqual(f[0], "1st line\n") self.assertEqual(f[1], "2nd line\n") self.assertEqual(f[2], "3rd line\n") f.close()
def testRegexpBasic(self): # fold>> "Findregexp functionality/basic search" f = FileReader.FileReader(os.path.join(moduleDir(), "testfile.txt")) self.assertEqual(f.findRegexp("3rd"), ("3rd line\n", )) self.assertEqual(f.currentLine(), "3rd line\n") f.toEOF() self.assertEqual(f.findRegexp("1st", backward=True), ("1st line\n", )) self.assertEqual(f.currentLine(), "1st line\n")
def testFindStringCounted(self): # fold>> "Findstring functionality/counted search" f = FileReader.FileReader(os.path.join(moduleDir(), "testfile.txt")) self.assertEqual(f.findString("line", 2), "2nd line\n") self.assertEqual(f.currentLine(), "2nd line\n") f.toEOF() self.assertEqual(f.findString("line", 2, backward=True), "2nd line\n") self.assertEqual(f.currentLine(), "2nd line\n")
def testFindStringCurlineNeverEvaluated(self): # fold>> "Findstring functionality/curline never evaluated" f = FileReader.FileReader(os.path.join(moduleDir(), "testfile.txt")) f.toPos(0) self.assertEqual(f.findString('line'), "2nd line\n") self.assertEqual(f.currentLine(), "2nd line\n") f.toPos(2) self.assertEqual(f.findString('line', backward=True), "2nd line\n") self.assertEqual(f.currentLine(), "2nd line\n")
def testFileHeaderToken(self): # fold>> data = FileSnippets.fileHeader() writeToTestFile(data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.FileHeaderToken.match(reader) self.assertEqual(token.__class__, Tokens.FileHeaderToken) self.assertEqual(reader.currentPos(), start_pos + 1)
def testEndOfOptimizationHeaderTokenNotMatching(self): # fold>> data = FileSnippets.fileHeader() writeToTestFile(data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.EndOfOptimizationHeaderToken.match(reader) self.assertEqual(token, None) self.assertEqual(reader.currentPos(), start_pos)
def testIsotopicMassesTokenNotMatching(self): # fold>> data = FileSnippets.isotopicMasses() writeToTestFile("\n" + data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.IsotopicMassesToken.match(reader) self.assertEqual(token, None) self.assertEqual(reader.currentPos(), start_pos)
def testMomentsOfInertiaTokenNotMatching(self): # fold>> data = FileSnippets.momentsOfInertia() writeToTestFile("\n" + data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.MomentsOfInertiaToken.match(reader) self.assertEqual(token, None) self.assertEqual(reader.currentPos(), start_pos)
def testHOMOLUMOSeparationTokenNotMatching(self): # fold>> data = FileSnippets.optimizationNextGeometry() writeToTestFile(data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.HOMOLUMOSeparationToken.match(reader) self.assertEqual(token, None) self.assertEqual(reader.currentPos(), start_pos)
def testAtomsAndBasisSetsTokenNotMatching(self): # fold>> data = FileSnippets.fileHeader() writeToTestFile(data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.AtomsAndBasisSetsToken.match(reader) self.assertEqual(token, None) self.assertEqual(reader.currentPos(), start_pos)
def testNormalModesEigenvaluesTokenNotMatching(self): # fold>> data = FileSnippets.fileHeader() writeToTestFile(data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.NormalModesEigenvaluesToken.match(reader) self.assertEqual(token, None) self.assertEqual(reader.currentPos(), start_pos)
def testGeometryConvergenceNumIterationsTokenNotMatching(self): # fold>> data = FileSnippets.fileHeader() writeToTestFile(data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.GeometryConvergenceNumIterationsToken.match(reader) self.assertEqual(token, None) self.assertEqual(reader.currentPos(), start_pos)
def testParseSymmetrySection(self): # fold>> filename = os.path.join(moduleDir(), "HSO2POEtg3.zmat") f = FileReader.FileReader(filename) sym = zmatmodule._parseSymmetrySection(f) valid_data = ['X', 'Z'] self.assertEqual(len(sym), len(valid_data)) for index in xrange(len(sym)): self.assertEqual(sym[index], valid_data[index]) f.close()
def tokenize(self, filename): reader = FileReader.FileReader(filename) token_list = [] while not reader.isAtEOF(): token = self._resolveNextToken(reader) if token is None: reader.readline() else: token_list.append(token) return token_list
def testEmptyFileSeeks(self): # fold>> f = FileReader.FileReader( os.path.join(moduleDir(), "emptytestfile.txt")) self.assertEqual(f.currentPos(), -1) self.assertEqual(f.isAtBOF(), True) f.toEOF() self.assertEqual(f.currentPos(), 0) self.assertEqual(f.isAtEOF(), True) f.toBOF() self.assertEqual(f.currentPos(), -1) self.assertEqual(f.isAtBOF(), True)
def testSkipLines(self): # fold>> "Seeking with relative jumps" f = FileReader.FileReader(os.path.join(moduleDir(), "testfile.txt")) self.assertEqual(f.currentPos(), -1) f.skipLines(3) self.assertEqual(f.currentPos(), 2) f.skipLines(-1) self.assertEqual(f.currentPos(), 1) f.skipLines(10) self.assertEqual(f.isAtEOF(), True) f.skipLines(-10) self.assertEqual(f.isAtBOF(), True)
def testFileReadlineBackward(self): # fold>> f = FileReader.FileReader(os.path.join(moduleDir(), "testfile.txt")) f.toEOF() l = f.readbackline() self.assertEqual(l, "3rd line\n") l = f.readbackline() self.assertEqual(l, "2nd line\n") l = f.readbackline() self.assertEqual(l, "1st line\n") # now the pointer is at begin of file self.assertEqual(f.readbackline(), '')
def testTotalMassToken(self): # fold>> data = FileSnippets.totalMass() writeToTestFile(data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.TotalMassToken.match(reader) self.assertEqual(token.__class__, Tokens.TotalMassToken) self.assertEqual(reader.currentPos(), start_pos + 1) self.assertEqual(type(token.totalMass()), type("")) self.assertEqual(token.totalMass(), "30.010565")
def testFileReadLine(self): # fold>> f = FileReader.FileReader(os.path.join(moduleDir(), "testfile.txt")) l = f.readline() self.assertEqual(l, "1st line\n") l = f.readline() self.assertEqual(l, "2nd line\n") l = f.readline() self.assertEqual(l, "3rd line\n") # now the pointer is at end of file self.assertEqual(f.readline(), '') f.close()
def testOccurrences(self): # fold>> "Seeking with relative jumps" f = FileReader.FileReader(os.path.join(moduleDir(), "testfile.txt")) f.skipLines(1) self.assertEqual(f.isAtPos(0), True) self.assertEqual(f.occurrences('line'), [1, 2]) self.assertEqual(f.isAtPos(0), True) f.skipLines(2) self.assertEqual(f.isAtPos(2), True) self.assertEqual(f.occurrences('line', backward=True), [1, 0]) self.assertEqual(f.isAtPos(2), True) f.toBOF() self.assertEqual(f.occurrences('not found'), [])
def testFinalGeometryEnergyToken(self): # fold>> data = FileSnippets.finalGeometryEnergy() writeToTestFile(data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.FinalGeometryEnergyToken.match(reader) self.assertEqual(token.__class__, Tokens.FinalGeometryEnergyToken) self.assertEqual(reader.currentPos(), start_pos + 1) energy = token.energy() self.assertEqual(type(energy), type("")) self.assertEqual(energy, "-113.984888")
def testDipoleMomentToken(self): # fold>> data = FileSnippets.dipoleMoment() writeToTestFile(data) reader = FileReader.FileReader(testFilePath()) start_pos = reader.currentPos() token = Tokens.DipoleMomentToken.match(reader) self.assertEqual(token.__class__, Tokens.DipoleMomentToken) self.assertEqual(reader.currentPos(), start_pos + 4) dipole = token.dipole() self.assertAlmostEqual(dipole, 3.141592)
def testEmptyFileGetItemOutOfBounds(self): # fold>> f = FileReader.FileReader( os.path.join(moduleDir(), "emptytestfile.txt")) # move at BOF with big negative num self.assertEqual(f[-999999], '') self.assertEqual(f.isAtBOF(), True) # move at EOF with big positive num self.assertEqual(f[9999999], '') self.assertEqual(f.isAtEOF(), True) # move at BOF with -1 self.assertEqual(f[-1], '') self.assertEqual(f.isAtBOF(), True) # move at EOF with len self.assertEqual(f[len(f)], '') self.assertEqual(f.isAtEOF(), True)