Ejemplo n.º 1
0
        public void TestMBFTextReaderCoreFunctionality()
        {
            using (MBFTextReader mbfReader = new MBFTextReader(testFileFullName))
            {
                // Test line access members.
                Assert.IsTrue(mbfReader.HasLines);
                Assert.AreEqual("LOCUS       SCU49845     5028 bp    DNA             PLN       21-JUN-1999",
                                mbfReader.Line);
                Assert.IsTrue(mbfReader.LineHasHeader);
                Assert.AreEqual("LOCUS", mbfReader.LineHeader);
                Assert.IsTrue(mbfReader.LineHasData);
                Assert.AreEqual("SCU49845     5028 bp    DNA             PLN       21-JUN-1999",
                                mbfReader.LineData);
                Assert.AreEqual("NA  ", mbfReader.GetLineField(38, 41));

                // Test reading lines and line number tracking.
                for (int i = 1; i < 6; i++)
                {
                    mbfReader.GoToNextLine();
                }
                Assert.AreEqual(7, mbfReader.LineNumber);
                Assert.AreEqual("KEYWORDS", mbfReader.LineHeader);

                // Test switching line indent.
                mbfReader.DataIndent = 2;
                Assert.AreEqual("KE", mbfReader.LineHeader);
                Assert.AreEqual("YWORDS    .", mbfReader.LineData);

                // Test recognition of blank header and data.
                for (int i = 6; i < 8; i++)
                {
                    mbfReader.GoToNextLine();
                }
                Assert.IsFalse(mbfReader.LineHasHeader); // line starts with 2 spaces
                Assert.IsTrue(mbfReader.LineHasData);
                mbfReader.DataIndent = 37;               // the line length
                Assert.IsTrue(mbfReader.LineHasHeader);
                Assert.IsFalse(mbfReader.LineHasData);
                mbfReader.DataIndent = 12; // back to standard line length

                // Test skipping sections and EOF recognition.
                mbfReader.SkipToNextSection(); // ref 1
                mbfReader.SkipToNextSection(); // ref 2
                mbfReader.SkipToNextSection(); // features
                mbfReader.SkipToNextSection(); // origin
                mbfReader.SkipToNextSection(); // "//"
                Assert.IsTrue(mbfReader.HasLines);
                mbfReader.GoToNextLine();      // EOF
                Assert.IsTrue(mbfReader.HasLines);
            }
        }
Ejemplo n.º 2
0
        public void ValidateMBFTextReaderConstructor()
        {
            string FilePath = _utilityObj._xmlUtil.GetTextValue(
                Constants.MBFTextReaderValidationNode, Constants.FilePathNode);
            string expectedLine = _utilityObj._xmlUtil.GetTextValue(
                Constants.MBFTextReaderValidationNode, Constants.ExpectedLineNode);
            string expectedHeader = _utilityObj._xmlUtil.GetTextValue(
                Constants.MBFTextReaderValidationNode, Constants.ExpectedHeaderNode);

            // MBFTextReader(string).
            using (MBFTextReader mbfReader = new MBFTextReader(FilePath))
            {
                Assert.AreEqual(expectedHeader, mbfReader.ReadBlock(0, 0, 32, 5));
                Assert.AreEqual(FilePath, mbfReader.FileName);
                Assert.AreEqual(expectedLine, mbfReader.Line);
            }

            // MBFTextReader(Stream).
            using (FileStream stream = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
            {
                MBFTextReader mbfReader = new MBFTextReader(stream);
                Assert.AreEqual(expectedHeader, mbfReader.LineHeader);
                Assert.IsNull(mbfReader.FileName);
            }

            // MBFTextReader(TextReader).
            using (StreamReader reader = new StreamReader(FilePath))
            {
                MBFTextReader mbfReader = new MBFTextReader(reader);

                // Start reading from begining
                Assert.AreEqual(expectedHeader, mbfReader.LineHeader);
                Assert.IsNull(mbfReader.FileName);

                // skip line.
                mbfReader.SkipToNextSection();
                Assert.IsNotNull(mbfReader.Line);
            }

            // Data indent specifies the number of chars that are considered the line header.
            int dataIndent = 2;

            expectedHeader = expectedHeader.Substring(0, 2);

            // MBFTextReader(string,DataIndent).
            using (MBFTextReader mbfReader = new MBFTextReader(FilePath, dataIndent))
            {
                Assert.AreEqual(expectedHeader, mbfReader.LineHeader);
                Assert.AreEqual(FilePath, mbfReader.FileName);
            }

            // MBFTextReader(string,DataIndent,bool skipLines).
            using (MBFTextReader mbfReader = new MBFTextReader(FilePath, dataIndent, false))
            {
                Assert.AreEqual(expectedHeader, mbfReader.LineHeader);
                Assert.AreEqual(FilePath, mbfReader.FileName);
            }


            // MBFTextReader(Stream, int) .
            using (FileStream stream = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
            {
                MBFTextReader mbfReader = new MBFTextReader(stream, dataIndent);
                Assert.AreEqual(expectedHeader, mbfReader.LineHeader);
                Assert.IsNull(mbfReader.FileName);
            }

            // MBFTextReader(Stream, int, bool) .
            using (FileStream stream = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
            {
                MBFTextReader mbfReader = new MBFTextReader(stream, dataIndent, true);
                Assert.AreEqual(expectedHeader, mbfReader.LineHeader);
                Assert.IsNull(mbfReader.FileName);
            }

            // MBFTextReader(TextReader).
            using (StreamReader reader = new StreamReader(FilePath))
            {
                MBFTextReader mbfReader = new MBFTextReader(reader, dataIndent);
                Assert.AreEqual(expectedHeader, mbfReader.LineHeader);
                Assert.IsNull(mbfReader.FileName);
            }

            // MBFTextReader(TextReader,skipLines).
            using (StreamReader reader = new StreamReader(FilePath))
            {
                MBFTextReader mbfReader = new MBFTextReader(reader, dataIndent, true);
                Assert.AreEqual(expectedHeader, mbfReader.LineHeader);
                Assert.IsNull(mbfReader.FileName);
            }
        }