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)
Example #2
0
 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)