Exemple #1
0
        public void NexusParserValidateCharBlock()
        {
            string filePath = utilityObj.xmlUtil.GetTextValue(
                Constants.SimpleNexusCharBlockNode,
                Constants.FilePathNode).TestDir();
            NexusParser parser = new NexusParser();

            IEnumerable <ISequenceAlignment> alignment = parser.Parse(filePath);

            Assert.AreEqual(1, alignment.Count());
        }
Exemple #2
0
        public static ir.File ParseFile(ICharStream input)
        {
            var lexer       = new NexusLexer(input, Console.Out, Console.Error);
            var tokenStream = new CommonTokenStream(lexer);
            var parser      = new NexusParser(tokenStream);
            var ast         = parser.file();
            var visitor     = new NexusGrammarVisitor();
            var ir          = (ir.File)visitor.Visit(ast);

            return(ir);
        }
Exemple #3
0
        public void NexusParserValidateCharBlock()
        {
            string filePath = Utility._xmlUtil.GetTextValue(
                Constants.SimpleNexusCharBlockNode,
                Constants.FilePathNode);
            NexusParser parser = new NexusParser();

            IList <ISequenceAlignment> alignment =
                parser.Parse(filePath, true);

            Assert.AreEqual(1, alignment.Count);
        }
Exemple #4
0
        public void ValidateNexusParserProperties()
        {
            NexusParser parser = new NexusParser();

            Assert.AreEqual(
                utilityObj.xmlUtil.GetTextValue(Constants.NexusPropertyNode,
                                                Constants.NexusDescriptionNode),
                parser.Description);
            Assert.AreEqual(
                utilityObj.xmlUtil.GetTextValue(Constants.NexusPropertyNode,
                                                Constants.NexusNameNode),
                parser.Name);
            Assert.AreEqual(null, parser.Alphabet);
        }
Exemple #5
0
        /// <summary>
        /// General method to invalidate Nexus parser
        /// </summary>
        /// <param name="nodeName">xml node name.</param>
        /// <param name="method">Nexus Parse method parameters</param>
        void InvalidateNexusParserTestCases(
            string nodeName,
            AdditionalParameters method)
        {
            try
            {
                string filePath = _utilityObj._xmlUtil.GetTextValue(
                    nodeName,
                    Constants.FilePathNode);
                NexusParser parser = new NexusParser();

                switch (method)
                {
                case AdditionalParameters.Parse:
                    parser.Parse(filePath, true);
                    break;

                case AdditionalParameters.ParseOne:
                    parser.ParseOne(filePath, true);
                    break;

                default:
                    break;
                }

                Assert.Fail();
            }
            catch (InvalidDataException)
            {
                ApplicationLog.WriteLine(
                    "Nexus Parser P2 : All the features validated successfully.");
                Console.WriteLine(
                    "Nexus Parser P2 : All the features validated successfully.");
            }
            catch (FormatException)
            {
                ApplicationLog.WriteLine(
                    "Nexus Parser P2 : All the features validated successfully.");
                Console.WriteLine(
                    "Nexus Parser P2 : All the features validated successfully.");
            }
        }
Exemple #6
0
        public void ValidateNexusParserProperties()
        {
            NexusParser parser = new NexusParser(Encodings.Ncbi4NA);

            Assert.AreEqual(
                Utility._xmlUtil.GetTextValue(Constants.NexusPropertyNode,
                                              Constants.NexusDescriptionNode),
                parser.Description);
            Assert.AreEqual(
                Utility._xmlUtil.GetTextValue(Constants.NexusPropertyNode,
                                              Constants.NexusNameNode),
                parser.Name);
            Assert.AreEqual(
                Utility._xmlUtil.GetTextValue(Constants.NexusPropertyNode,
                                              Constants.NexusFileTypesNode),
                parser.FileTypes);
            Assert.AreEqual(null, parser.Alphabet);
            Assert.AreEqual(
                Utility._xmlUtil.GetTextValue(Constants.NexusPropertyNode,
                                              Constants.NexusEncodingNode),
                parser.Encoding.ToString());
        }
Exemple #7
0
        /// <summary>
        /// Parsers the Nexus file for different test cases based
        /// on Additional parameter
        /// </summary>
        /// <param name="nodeName">Xml Node name</param>
        /// <param name="addParam">Additional parameter</param>
        void ParserGeneralTestCases(string nodeName, AdditionalParameters addParam)
        {
            // Gets the Filename
            string filePath = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FilePathNode).TestDir();

            Assert.IsFalse(string.IsNullOrEmpty(filePath));
            ApplicationLog.WriteLine($"Nexus Parser BVT: Reading the File from location '{filePath}'");

            // Get the rangelist after parsing.
            NexusParser parserObj = new NexusParser();

            IEnumerable <ISequenceAlignment> sequenceAlignmentList = null;
            ISequenceAlignment sequenceAlignment = null;

            // Gets the SequenceAlignment list based on the parameters.
            switch (addParam)
            {
            case AdditionalParameters.Parse:
                sequenceAlignmentList = parserObj.Parse(filePath);
                sequenceAlignment     = sequenceAlignmentList.First();
                break;

            case AdditionalParameters.ParseOne:
                sequenceAlignment = parserObj.ParseOne(filePath);
                break;

            case AdditionalParameters.ParseTextReader:
                using (var strRdrObj = File.OpenRead(filePath))
                {
                    sequenceAlignmentList = parserObj.Parse(strRdrObj);
                    sequenceAlignment     = sequenceAlignmentList.First();
                }
                break;

            case AdditionalParameters.ParseOneTextReader:
                using (var strRdrObj = File.OpenRead(filePath))
                {
                    sequenceAlignment = parserObj.ParseOne(strRdrObj);
                }
                break;

            default:
                break;
            }

            // Gets all the expected values from xml.
            var expectedAlignmentList = new List <Dictionary <string, string> >();
            var expectedAlignmentObj  = new Dictionary <string, string>();

            XElement      expectedAlignmentNodes = utilityObj.xmlUtil.GetNode(nodeName, Constants.ExpectedAlignmentNode);
            IList <XNode> nodes = expectedAlignmentNodes.Nodes().ToList();

            //Get all the values from the elements in the node.
            foreach (XElement node in nodes)
            {
                expectedAlignmentObj[node.Name.ToString()] = node.Value;
            }

            // Create a ISequenceAlignment List
            sequenceAlignmentList = new List <ISequenceAlignment> {
                sequenceAlignment
            };
            expectedAlignmentList.Add(expectedAlignmentObj);

            Assert.IsTrue(CompareOutput(sequenceAlignmentList.ToList(), expectedAlignmentList));
            ApplicationLog.WriteLine("Nexus Parser BVT: Successfully validated all the Alignment Sequences");
        }
Exemple #8
0
        public void NexusParse()
        {
            string filepath = @"TestUtils\Nexus\primate-mtDNA-interleaved.nex";

            Assert.IsTrue(File.Exists(filepath));

            IList <Dictionary <string, string> > expectedOutput = new List <Dictionary <string, string> >();

            Dictionary <string, string> expectedAlignment = new Dictionary <string, string>();

            expectedAlignment["Lemur_catta"] = "AAGCTTCATAGGAGCAACCATTCTAATAATCGCACATGGCCTTACATCATCCATATTATT"
                                               + "CTGTCTAGCCAACTCTAACTACGAACGAATCCATAGCCGTACAATACTACTAGCACGAGG"
                                               + "GATCCAAACCATTCTCCCTCTTATAGCCACCTGATGACTACTCGCCAGCCTAACTAACCT"
                                               + "AGCCCTACCCACCTCTATCAATTTAATTGGCGAACTATTCGTCACTATAGCATCCTTCTC"
                                               + "ATGATCAAACATTACAATTATCTTAATAGGCTTAAATATGCTCATCACCGCTCTCTATTC"
                                               + "CCTCTATATATTAACTACTACACAACGAGGAAAACTCACATATCATTCGCACAACCTAAA"
                                               + "CCCATCCTTTACACGAGAAAACACCCTTATATCCATACACATACTCCCCCTTCTCCTATT"
                                               + "TACCTTAAACCCCAAAATTATTCTAGGACCCACGTACTGTAAATATAGTTTAAA-AAAAC"
                                               + "ACTAGATTGTGAATCCAGAAATAGAAGCTCAAAC-CTTCTTATTTACCGAGAAAGTAATG"
                                               + "TATGAACTGCTAACTCTGCACTCCGTATATAAAAATACGGCTATCTCAACTTTTAAAGGA"
                                               + "TAGAAGTAATCCATTGGCCTTAGGAGCCAAAAA-ATTGGTGCAACTCCAAATAAAAGTAA"
                                               + "TAAATCTATTATCCTCTTTCACCCTTGTCACACTGATTATCCTAACTTTACCTATCATTA"
                                               + "TAAACGTTACAAACATATACAAAAACTACCCCTATGCACCATACGTAAAATCTTCTATTG"
                                               + "CATGTGCCTTCATCACTAGCCTCATCCCAACTATATTATTTATCTCCTCAGGACAAGAAA"
                                               + "CAATCATTTCCAACTGACATTGAATAACAATCCAAACCCTAAAACTATCTATTAGCTT";

            expectedAlignment["Homo_sapiens"] = "AAGCTTCACCGGCGCAGTCATTCTCATAATCGCCCACGGGCTTACATCCTCATTACTATT"
                                                + "CTGCCTAGCAAACTCAAACTACGAACGCACTCACAGTCGCATCATAATCCTCTCTCAAGG"
                                                + "ACTTCAAACTCTACTCCCACTAATAGCTTTTTGATGACTTCTAGCAAGCCTCGCTAACCT"
                                                + "CGCCTTACCCCCCACTATTAACCTACTGGGAGAACTCTCTGTGCTAGTAACCACGTTCTC"
                                                + "CTGATCAAATATCACTCTCCTACTTACAGGACTCAACATACTAGTCACAGCCCTATACTC"
                                                + "CCTCTACATATTTACCACAACACAATGGGGCTCACTCACCCACCACATTAACAACATAAA"
                                                + "ACCCTCATTCACACGAGAAAACACCCTCATGTTCATACACCTATCCCCCATTCTCCTCCT"
                                                + "ATCCCTCAACCCCGACATCATTACCGGGTTTTCCTCTTGTAAATATAGTTTAACCAAAAC"
                                                + "ATCAGATTGTGAATCTGACAACAGAGGCTTA-CGACCCCTTATTTACCGAGAAAGCT-CA"
                                                + "CAAGAACTGCTAACTCATGCCCCCATGTCTAACAACATGGCTTTCTCAACTTTTAAAGGA"
                                                + "TAACAGCTATCCATTGGTCTTAGGCCCCAAAAATTTTGGTGCAACTCCAAATAAAAGTAA"
                                                + "TAACCATGCACACTACTATAACCACCCTAACCCTGACTTCCCTAATTCCCCCCATCCTTA"
                                                + "CCACCCTCGTTAACCCTAACAAAAAAAACTCATACCCCCATTATGTAAAATCCATTGTCG"
                                                + "CATCCACCTTTATTATCAGTCTCTTCCCCACAACAATATTCATGTGCCTAGACCAAGAAG"
                                                + "TTATTATCTCGAACTGACACTGAGCCACAACCCAAACAACCCAGCTCTCCCTAAGCTT";

            expectedAlignment["Pan"] = "AAGCTTCACCGGCGCAATTATCCTCATAATCGCCCACGGACTTACATCCTCATTATTATT"
                                       + "CTGCCTAGCAAACTCAAATTATGAACGCACCCACAGTCGCATCATAATTCTCTCCCAAGG"
                                       + "ACTTCAAACTCTACTCCCACTAATAGCCTTTTGATGACTCCTAGCAAGCCTCGCTAACCT"
                                       + "CGCCCTACCCCCTACCATTAATCTCCTAGGGGAACTCTCCGTGCTAGTAACCTCATTCTC"
                                       + "CTGATCAAATACCACTCTCCTACTCACAGGATTCAACATACTAATCACAGCCCTGTACTC"
                                       + "CCTCTACATGTTTACCACAACACAATGAGGCTCACTCACCCACCACATTAATAACATAAA"
                                       + "GCCCTCATTCACACGAGAAAATACTCTCATATTTTTACACCTATCCCCCATCCTCCTTCT"
                                       + "ATCCCTCAATCCTGATATCATCACTGGATTCACCTCCTGTAAATATAGTTTAACCAAAAC"
                                       + "ATCAGATTGTGAATCTGACAACAGAGGCTCA-CGACCCCTTATTTACCGAGAAAGCT-TA"
                                       + "TAAGAACTGCTAATTCATATCCCCATGCCTGACAACATGGCTTTCTCAACTTTTAAAGGA"
                                       + "TAACAGCCATCCGTTGGTCTTAGGCCCCAAAAATTTTGGTGCAACTCCAAATAAAAGTAA"
                                       + "TAACCATGTATACTACCATAACCACCTTAACCCTAACTCCCTTAATTCTCCCCATCCTCA"
                                       + "CCACCCTCATTAACCCTAACAAAAAAAACTCATATCCCCATTATGTGAAATCCATTATCG"
                                       + "CGTCCACCTTTATCATTAGCCTTTTCCCCACAACAATATTCATATGCCTAGACCAAGAAG"
                                       + "CTATTATCTCAAACTGGCACTGAGCAACAACCCAAACAACCCAGCTCTCCCTAAGCTT";

            expectedAlignment["Gorilla"] = "AAGCTTCACCGGCGCAGTTGTTCTTATAATTGCCCACGGACTTACATCATCATTATTATT"
                                           + "CTGCCTAGCAAACTCAAACTACGAACGAACCCACAGCCGCATCATAATTCTCTCTCAAGG"
                                           + "ACTCCAAACCCTACTCCCACTAATAGCCCTTTGATGACTTCTGGCAAGCCTCGCCAACCT"
                                           + "CGCCTTACCCCCCACCATTAACCTACTAGGAGAGCTCTCCGTACTAGTAACCACATTCTC"
                                           + "CTGATCAAACACCACCCTTTTACTTACAGGATCTAACATACTAATTACAGCCCTGTACTC"
                                           + "CCTTTATATATTTACCACAACACAATGAGGCCCACTCACACACCACATCACCAACATAAA"
                                           + "ACCCTCATTTACACGAGAAAACATCCTCATATTCATGCACCTATCCCCCATCCTCCTCCT"
                                           + "ATCCCTCAACCCCGATATTATCACCGGGTTCACCTCCTGTAAATATAGTTTAACCAAAAC"
                                           + "ATCAGATTGTGAATCTGATAACAGAGGCTCA-CAACCCCTTATTTACCGAGAAAGCT-CG"
                                           + "TAAGAGCTGCTAACTCATACCCCCGTGCTTGACAACATGGCTTTCTCAACTTTTAAAGGA"
                                           + "TAACAGCTATCCATTGGTCTTAGGACCCAAAAATTTTGGTGCAACTCCAAATAAAAGTAA"
                                           + "TAACTATGTACGCTACCATAACCACCTTAGCCCTAACTTCCTTAATTCCCCCTATCCTTA"
                                           + "CCACCTTCATCAATCCTAACAAAAAAAGCTCATACCCCCATTACGTAAAATCTATCGTCG"
                                           + "CATCCACCTTTATCATCAGCCTCTTCCCCACAACAATATTTCTATGCCTAGACCAAGAAG"
                                           + "CTATTATCTCAAGCTGACACTGAGCAACAACCCAAACAATTCAACTCTCCCTAAGCTT";

            expectedAlignment["Orangutan"] = "AAGCTTCACCGGCGCAACCACCCTCATGATTGCCCATGGACTCACATCCTCCCTACTGTT"
                                             + "CTGCCTAGCAAACTCAAACTACGAACGAACCCACAGCCGCATCATAATCCTCTCTCAAGG"
                                             + "CCTTCAAACTCTACTCCCCCTAATAGCCCTCTGATGACTTCTAGCAAGCCTCACTAACCT"
                                             + "TGCCCTACCACCCACCATCAACCTTCTAGGAGAACTCTCCGTACTAATAGCCATATTCTC"
                                             + "TTGATCTAACATCACCATCCTACTAACAGGACTCAACATACTAATCACAACCCTATACTC"
                                             + "TCTCTATATATTCACCACAACACAACGAGGTACACCCACACACCACATCAACAACATAAA"
                                             + "ACCTTCTTTCACACGCGAAAATACCCTCATGCTCATACACCTATCCCCCATCCTCCTCTT"
                                             + "ATCCCTCAACCCCAGCATCATCGCTGGGTTCGCCTACTGTAAATATAGTTTAACCAAAAC"
                                             + "ATTAGATTGTGAATCTAATAATAGGGCCCCA-CAACCCCTTATTTACCGAGAAAGCT-CA"
                                             + "CAAGAACTGCTAACTCTCACT-CCATGTGTGACAACATGGCTTTCTCAGCTTTTAAAGGA"
                                             + "TAACAGCTATCCCTTGGTCTTAGGATCCAAAAATTTTGGTGCAACTCCAAATAAAAGTAA"
                                             + "CAGCCATGTTTACCACCATAACTGCCCTCACCTTAACTTCCCTAATCCCCCCCATTACCG"
                                             + "CTACCCTCATTAACCCCAACAAAAAAAACCCATACCCCCACTATGTAAAAACGGCCATCG"
                                             + "CATCCGCCTTTACTATCAGCCTTATCCCAACAACAATATTTATCTGCCTAGGACAAGAAA"
                                             + "CCATCGTCACAAACTGATGCTGAACAACCACCCAGACACTACAACTCTCACTAAGCTT";

            expectedAlignment["Hylobates"] = "AAGCTTTACAGGTGCAACCGTCCTCATAATCGCCCACGGACTAACCTCTTCCCTGCTATT"
                                             + "CTGCCTTGCAAACTCAAACTACGAACGAACTCACAGCCGCATCATAATCCTATCTCGAGG"
                                             + "GCTCCAAGCCTTACTCCCACTGATAGCCTTCTGATGACTCGCAGCAAGCCTCGCTAACCT"
                                             + "CGCCCTACCCCCCACTATTAACCTCCTAGGTGAACTCTTCGTACTAATGGCCTCCTTCTC"
                                             + "CTGGGCAAACACTACTATTACACTCACCGGGCTCAACGTACTAATCACGGCCCTATACTC"
                                             + "CCTTTACATATTTATCATAACACAACGAGGCACACTTACACACCACATTAAAAACATAAA"
                                             + "ACCCTCACTCACACGAGAAAACATATTAATACTTATGCACCTCTTCCCCCTCCTCCTCCT"
                                             + "AACCCTCAACCCTAACATCATTACTGGCTTTACTCCCTGTAAACATAGTTTAATCAAAAC"
                                             + "ATTAGATTGTGAATCTAACAATAGAGGCTCG-AAACCTCTTGCTTACCGAGAAAGCC-CA"
                                             + "CAAGAACTGCTAACTCACTATCCCATGTATGACAACATGGCTTTCTCAACTTTTAAAGGA"
                                             + "TAACAGCTATCCATTGGTCTTAGGACCCAAAAATTTTGGTGCAACTCCAAATAAAAGTAA"
                                             + "TAGCAATGTACACCACCATAGCCATTCTAACGCTAACCTCCCTAATTCCCCCCATTACAG"
                                             + "CCACCCTTATTAACCCCAATAAAAAGAACTTATACCCGCACTACGTAAAAATGACCATTG"
                                             + "CCTCTACCTTTATAATCAGCCTATTTCCCACAATAATATTCATGTGCACAGACCAAGAAA"
                                             + "CCATTATTTCAAACTGACACTGAACTGCAACCCAAACGCTAGAACTCTCCCTAAGCTT";

            expectedAlignment["Macaca_fuscata"] = "AAGCTTTTCCGGCGCAACCATCCTTATGATCGCTCACGGACTCACCTCTTCCATATATTT"
                                                  + "CTGCCTAGCCAATTCAAACTATGAACGCACTCACAACCGTACCATACTACTGTCCCGAGG"
                                                  + "ACTTCAAATCCTACTTCCACTAACAGCCTTTTGATGATTAACAGCAAGCCTTACTAACCT"
                                                  + "TGCCCTACCCCCCACTATCAATCTACTAGGTGAACTCTTTGTAATCGCAACCTCATTCTC"
                                                  + "CTGATCCCATATCACCATTATGCTAACAGGACTTAACATATTAATTACGGCCCTCTACTC"
                                                  + "TCTCCACATATTCACTACAACACAACGAGGAACACTCACACATCACATAATCAACATAAA"
                                                  + "GCCCCCCTTCACACGAGAAAACACATTAATATTCATACACCTCGCTCCAATTATCCTTCT"
                                                  + "ATCCCTCAACCCCAACATCATCCTGGGGTTTACCTCCTGTAGATATAGTTTAACTAAAAC"
                                                  + "ACTAGATTGTGAATCTAACCATAGAGACTCA-CCACCTCTTATTTACCGAGAAAACT-CG"
                                                  + "CAAGGACTGCTAACCCATGTACCCGTACCTAAAATTACGGTTTTCTCAACTTTTAAAGGA"
                                                  + "TAACAGCTATCCATTGACCTTAGGAGTCAAAAACATTGGTGCAACTCCAAATAAAAGTAA"
                                                  + "TAATCATGCACACCCCCATCATTATAACAACCCTTATCTCCCTAACTCTCCCAATTTTTG"
                                                  + "CCACCCTCATCAACCCTTACAAAAAACGTCCATACCCAGATTACGTAAAAACAACCGTAA"
                                                  + "TATATGCTTTCATCATCAGCCTCCCCTCAACAACTTTATTCATCTTCTCAAACCAAGAAA"
                                                  + "CAACCATTTGGAGCTGACATTGAATAATGACCCAAACACTAGACCTAACGCTAAGCTT";

            expectedAlignment["M._mulatta"] = "AAGCTTTTCTGGCGCAACCATCCTCATGATTGCTCACGGACTCACCTCTTCCATATATTT"
                                              + "CTGCCTAGCCAATTCAAACTATGAACGCACTCACAACCGTACCATACTACTGTCCCGGGG"
                                              + "ACTTCAAATCCTACTTCCACTAACAGCTTTCTGATGATTAACAGCAAGCCTTACTAACCT"
                                              + "TGCCCTACCCCCCACTATCAACCTACTAGGTGAACTCTTTGTAATCGCGACCTCATTCTC"
                                              + "CTGGTCCCATATCACCATTATATTAACAGGATTTAACATACTAATTACGGCCCTCTACTC"
                                              + "CCTCCACATATTCACCACAACACAACGAGGAGCACTCACACATCACATAATCAACATAAA"
                                              + "ACCCCCCTTCACACGAGAAAACATATTAATATTCATACACCTCGCTCCAATCATCCTCCT"
                                              + "ATCTCTCAACCCCAACATCATCCTGGGGTTTACTTCCTGTAGATATAGTTTAACTAAAAC"
                                              + "ATTAGATTGTGAATCTAACCATAGAGACTTA-CCACCTCTTATTTACCGAGAAAACT-CG"
                                              + "CGAGGACTGCTAACCCATGTATCCGTACCTAAAATTACGGTTTTCTCAACTTTTAAAGGA"
                                              + "TAACAGCTATCCATTGACCTTAGGAGTCAAAAATATTGGTGCAACTCCAAATAAAAGTAA"
                                              + "TAATCATGCACACCCCTATCATAATAACAACCCTTATCTCCCTAACTCTCCCAATTTTTG"
                                              + "CCACCCTCATCAACCCTTACAAAAAACGTCCATACCCAGATTACGTAAAAACAACCGTAA"
                                              + "TATATGCTTTCATCATCAGCCTCCCCTCAACAACTTTATTCATCTTCTCAAACCAAGAAA"
                                              + "CAACCATTTGAAGCTGACATTGAATAATAACCCAAACACTAGACCTAACACTAAGCTT";

            expectedAlignment["M._fascicularis"] = "AAGCTTCTCCGGCGCAACCACCCTTATAATCGCCCACGGGCTCACCTCTTCCATGTATTT"
                                                   + "CTGCTTGGCCAATTCAAACTATGAGCGCACTCATAACCGTACCATACTACTATCCCGAGG"
                                                   + "ACTTCAAATTCTACTTCCATTGACAGCCTTCTGATGACTCACAGCAAGCCTTACTAACCT"
                                                   + "TGCCCTACCCCCCACTATTAATCTACTAGGCGAACTCTTTGTAATCACAACTTCATTTTC"
                                                   + "CTGATCCCATATCACCATTGTGTTAACGGGCCTTAATATACTAATCACAGCCCTCTACTC"
                                                   + "TCTCCACATGTTCATTACAGTACAACGAGGAACACTCACACACCACATAATCAATATAAA"
                                                   + "ACCCCCCTTCACACGAGAAAACATATTAATATTCATACACCTCGCTCCAATTATCCTTCT"
                                                   + "ATCTCTCAACCCCAACATCATCCTGGGGTTTACCTCCTGTAAATATAGTTTAACTAAAAC"
                                                   + "ATTAGATTGTGAATCTAACTATAGAGGCCTA-CCACTTCTTATTTACCGAGAAAACT-CG"
                                                   + "CAAGGACTGCTAATCCATGCCTCCGTACTTAAAACTACGGTTTCCTCAACTTTTAAAGGA"
                                                   + "TAACAGCTATCCATTGACCTTAGGAGTCAAAAACATTGGTGCAACTCCAAATAAAAGTAA"
                                                   + "TAATCATGCACACCCCCATCATAATAACAACCCTCATCTCCCTGACCCTTCCAATTTTTG"
                                                   + "CCACCCTCACCAACCCCTATAAAAAACGTTCATACCCAGACTACGTAAAAACAACCGTAA"
                                                   + "TATATGCTTTTATTACCAGTCTCCCCTCAACAACCCTATTCATCCTCTCAAACCAAGAAA"
                                                   + "CAACCATTTGGAGTTGACATTGAATAACAACCCAAACATTAGACCTAACACTAAGCTT";

            expectedAlignment["M._sylvanus"] = "AAGCTTCTCCGGTGCAACTATCCTTATAGTTGCCCATGGACTCACCTCTTCCATATACTT"
                                               + "CTGCTTGGCCAACTCAAACTACGAACGCACCCACAGCCGCATCATACTACTATCCCGAGG"
                                               + "ACTCCAAATCCTACTCCCACTAACAGCCTTCTGATGATTCACAGCAAGCCTTACTAATCT"
                                               + "TGCTCTACCCTCCACTATTAATCTACTGGGCGAACTCTTCGTAATCGCAACCTCATTTTC"
                                               + "CTGATCCCACATCACCATCATACTAACAGGACTGAACATACTAATTACAGCCCTCTACTC"
                                               + "TCTTCACATATTCACCACAACACAACGAGGAGCGCTCACACACCACATAATTAACATAAA"
                                               + "ACCACCTTTCACACGAGAAAACATATTAATACTCATACACCTCGCTCCAATTATTCTTCT"
                                               + "ATCTCTTAACCCCAACATCATTCTAGGATTTACTTCCTGTAAATATAGTTTAATTAAAAC"
                                               + "ATTAGACTGTGAATCTAACTATAGAAGCTTA-CCACTTCTTATTTACCGAGAAAACT-TG"
                                               + "CAAGGACCGCTAATCCACACCTCCGTACTTAAAACTACGGTTTTCTCAACTTTTAAAGGA"
                                               + "TAACAGCTATCCATTGGCCTTAGGAGTCAAAAATATTGGTGCAACTCCAAATAAAAGTAA"
                                               + "TAATCATGTATACCCCCATCATAATAACAACTCTCATCTCCCTAACTCTTCCAATTTTCG"
                                               + "CTACCCTTATCAACCCCAACAAAAAACACCTATATCCAAACTACGTAAAAACAGCCGTAA"
                                               + "TATATGCTTTCATTACCAGCCTCTCTTCAACAACTTTATATATATTCTTAAACCAAGAAA"
                                               + "CAATCATCTGAAGCTGGCACTGAATAATAACCCAAACACTAAGCCTAACATTAAGCTT";

            expectedAlignment["Saimiri_sciureus"] = "AAGCTTCACCGGCGCAATGATCCTAATAATCGCTCACGGGTTTACTTCGTCTATGCTATT"
                                                    + "CTGCCTAGCAAACTCAAATTACGAACGAATTCACAGCCGAACAATAACATTTACTCGAGG"
                                                    + "GCTCCAAACACTATTCCCGCTTATAGGCCTCTGATGACTCCTAGCAAATCTCGCTAACCT"
                                                    + "CGCCCTACCCACAGCTATTAATCTAGTAGGAGAATTACTCACAATCGTATCTTCCTTCTC"
                                                    + "TTGATCCAACTTTACTATTATATTCACAGGACTTAATATACTAATTACAGCACTCTACTC"
                                                    + "ACTTCATATGTATGCCTCTACACAGCGAGGTCCACTTACATACAGCACCAGCAATATAAA"
                                                    + "ACCAATATTTACACGAGAAAATACGCTAATATTTATACATATAACACCAATCCTCCTCCT"
                                                    + "TACCTTGAGCCCCAAGGTAATTATAGGACCCTCACCTTGTAATTATAGTTTAGCTAAAAC"
                                                    + "ATTAGATTGTGAATCTAATAATAGAAGAATA-TAACTTCTTAATTACCGAGAAAGTG-CG"
                                                    + "CAAGAACTGCTAATTCATGCTCCCAAGACTAACAACTTGGCTTCCTCAACTTTTAAAGGA"
                                                    + "TAGTAGTTATCCATTGGTCTTAGGAGCCAAAAACATTGGTGCAACTCCAAATAAAAGTAA"
                                                    + "TA---ATACACTTCTCCATCACTCTAATAACACTAATTAGCCTACTAGCGCCAATCCTAG"
                                                    + "CTACCCTCATTAACCCTAACAAAAGCACACTATACCCGTACTACGTAAAACTAGCCATCA"
                                                    + "TCTACGCCCTCATTACCAGTACCTTATCTATAATATTCTTTATCCTTACAGGCCAAGAAT"
                                                    + "CAATAATTTCAAACTGACACTGAATAACTATCCAAACCATCAAACTATCCCTAAGCTT";

            expectedAlignment["Tarsius_syrichta"] = "AAGTTTCATTGGAGCCACCACTCTTATAATTGCCCATGGCCTCACCTCCTCCCTATTATT"
                                                    + "TTGCCTAGCAAATACAAACTACGAACGAGTCCACAGTCGAACAATAGCACTAGCCCGTGG"
                                                    + "CCTTCAAACCCTATTACCTCTTGCAGCAACATGATGACTCCTCGCCAGCTTAACCAACCT"
                                                    + "GGCCCTTCCCCCAACAATTAATTTAATCGGTGAACTGTCCGTAATAATAGCAGCATTTTC"
                                                    + "ATGGTCACACCTAACTATTATCTTAGTAGGCCTTAACACCCTTATCACCGCCCTATATTC"
                                                    + "CCTATATATACTAATCATAACTCAACGAGGAAAATACACATATCATATCAACAATATCAT"
                                                    + "GCCCCCTTTCACCCGAGAAAATACATTAATAATCATACACCTATTTCCCTTAATCCTACT"
                                                    + "ATCTACCAACCCCAAAGTAATTATAGGAACCATGTACTGTAAATATAGTTTAAACAAAAC"
                                                    + "ATTAGATTGTGAGTCTAATAATAGAAGCCCAAAGATTTCTTATTTACCAAGAAAGTA-TG"
                                                    + "CAAGAACTGCTAACTCATGCCTCCATATATAACAATGTGGCTTTCTT-ACTTTTAAAGGA"
                                                    + "TAGAAGTAATCCATCGGTCTTAGGAACCGAAAA-ATTGGTGCAACTCCAAATAAAAGTAA"
                                                    + "TAAATTTATTTTCATCCTCCATTTTACTATCACTTACACTCTTAATTACCCCATTTATTA"
                                                    + "TTACAACAACTAAAAAATATGAAACACATGCATACCCTTACTACGTAAAAAACTCTATCG"
                                                    + "CCTGCGCATTTATAACAAGCCTAGTCCCAATGCTCATATTTCTATACACAAATCAAGAAA"
                                                    + "TAATCATTTCCAACTGACATTGAATAACGATTCATACTATCAAATTATGCCTAAGCTT";

            expectedOutput.Add(expectedAlignment);

            IList <ISequenceAlignment> actualOutput = null;
            ISequenceAlignmentParser   parser       = new NexusParser();

            using (StreamReader reader = File.OpenText(filepath))
            {
                actualOutput = parser.Parse(reader);
            }

            CompareOutput(actualOutput, expectedOutput);
        }
Exemple #9
0
        /// <summary>
        /// Parsers the Nexus file for different test cases based
        /// on Additional parameter
        /// </summary>
        /// <param name="nodeName">Xml Node name</param>
        /// <param name="addParam">Additional parameter</param>
        static void ParserGeneralTestCases(string nodeName,
                                           AdditionalParameters addParam)
        {
            // Gets the Filename
            string filePath = Utility._xmlUtil.GetTextValue(
                nodeName, Constants.FilePathNode);

            Assert.IsNotEmpty(filePath);
            ApplicationLog.WriteLine(string.Format(
                                         "Nexus Parser BVT: Reading the File from location '{0}'", filePath));
            Console.WriteLine(string.Format(
                                  "Nexus Parser BVT: Reading the File from location '{0}'", filePath));

            // Get the rangelist after parsing.
            NexusParser parserObj = new NexusParser();

            IList <ISequenceAlignment> sequenceAlignmentList = null;
            ISequenceAlignment         sequenceAlignment     = null;

            // Gets the SequenceAlignment list based on the parameters.
            switch (addParam)
            {
            case AdditionalParameters.Parse:
                sequenceAlignmentList = parserObj.Parse(filePath);
                break;

            case AdditionalParameters.ParseOne:
                sequenceAlignment = parserObj.ParseOne(filePath);
                break;

            case AdditionalParameters.ParseTextReader:
                sequenceAlignmentList = parserObj.Parse(
                    new StreamReader(filePath));
                break;

            case AdditionalParameters.ParseOneTextReader:
                sequenceAlignment = parserObj.ParseOne(
                    new StreamReader(filePath));
                break;

            case AdditionalParameters.ParseOneTextReaderReadOnly:
                sequenceAlignment = parserObj.ParseOne(
                    new StreamReader(filePath), false);
                break;

            case AdditionalParameters.ParseTextReaderReadOnly:
                sequenceAlignmentList = parserObj.Parse(
                    new StreamReader(filePath), false);
                break;

            case AdditionalParameters.ParseReadOnly:
                sequenceAlignmentList = parserObj.Parse(filePath,
                                                        false);
                break;

            case AdditionalParameters.ParseOneReadOnly:
                sequenceAlignment = parserObj.ParseOne(filePath,
                                                       false);
                break;

            case AdditionalParameters.ParseEncoding:
                NexusParser parser = new NexusParser(Encodings.Ncbi4NA);
                sequenceAlignmentList = parser.Parse(
                    new StreamReader(filePath), false);
                break;

            default:
                break;
            }

            // Gets all the expected values from xml.
            IList <Dictionary <string, string> > expectedAlignmentList =
                new List <Dictionary <string, string> >();
            Dictionary <string, string> expectedAlignmentObj =
                new Dictionary <string, string>();

            XmlNode expectedAlignmentNodes = Utility._xmlUtil.GetNode(
                nodeName, Constants.ExpectedAlignmentNode);
            XmlNodeList alignNodes = expectedAlignmentNodes.ChildNodes;

            // Create a ISequenceAlignment List
            switch (addParam)
            {
            case AdditionalParameters.ParseOne:
            case AdditionalParameters.ParseOneTextReader:
            case AdditionalParameters.ParseOneTextReaderReadOnly:
            case AdditionalParameters.ParseOneReadOnly:
                sequenceAlignmentList = new List <ISequenceAlignment>();
                sequenceAlignmentList.Add(sequenceAlignment);
                break;

            default:
                break;
            }

            foreach (XmlNode expectedAlignment in alignNodes)
            {
                expectedAlignmentObj[expectedAlignment.Name] =
                    expectedAlignment.InnerText;
            }

            expectedAlignmentList.Add(expectedAlignmentObj);

            Assert.IsTrue(CompareOutput(sequenceAlignmentList, expectedAlignmentList));
            ApplicationLog.WriteLine(
                "Nexus Parser BVT: Successfully validated all the Alignment Sequences");
            Console.WriteLine(
                "Nexus Parser BVT: Successfully validated all the Alignment Sequences");
        }