Beispiel #1
0
        public void Test_LoadAndParsePresentation_GCDA_Growth_Fund()
        {
            TestTaxonomy_EDGAROnline s = new TestTaxonomy_EDGAROnline();
            int    errors   = 0;
            string fileName = TestCommon.FolderRoot + @"GCDA_Growth_Fund" + System.IO.Path.DirectorySeparatorChar + "GComFunds.xsd";

            DateTime start = DateTime.Now;

            if (s.Load(fileName, out errors) != true)
            {
                Assert.Fail((string)s.ErrorList[0]);
            }

            errors = 0;

            // this loads up all dependant taxonomies, and loads the corresponding presentation, calculation, label, and reference linkbases
            // parse presentation first

            s.CurrentLabelRole = "preferredLabel";
            s.CurrentLanguage  = "en";

            s.Parse(out errors);

            ArrayList nodes = s.GetNodesByPresentation();

            foreach (Node n in nodes)
            {
                StringBuilder sb = DisplayNode(n, 0);
                Console.WriteLine(sb.ToString());
            }
        }
Beispiel #2
0
        public void PFS_LoadAndParse()
        {
            //Trace.Listeners.Add( new TextWriterTraceListener(Console.Out) );

            TestTaxonomy_CA_GAAP_PFS s = new TestTaxonomy_CA_GAAP_PFS();

            int errors = 0;

            if (s.Load(CA_GAAP_PFS_FILE, out errors) != true)
            {
                Assert.Fail((string)s.ErrorList[0]);
            }

            errors = 0;

            // this loads up all dependant taxonomies, and loads the corresponding presentation, calculation, label, and reference linkbases
            s.Parse(out errors);

            // loads the presentation linkbase for this taxonomy and merges the dependant taxonomy presentation linkbases
            if (errors > 0)
            {
                SendErrorsToConsole(s.errorList);
                SendWarningsToConsole(s.errorList);
                SendInfoToConsole(s.ErrorList);
            }

            // duplicate elements
            Assert.AreEqual(0, errors, "parse failed due to bad reference loader errors");

            PresentationLink pl = s.presentationInfo["http://www.xbrl.org/2003/role/link"] as PresentationLink;

            Assert.IsNotNull(pl, "can't get http://www.xbrl.org/role/link");

            Node parentNode = pl.CreateNode("en", "label");

            System.Text.StringBuilder sb = TestTaxonomy_EDGAROnline.DisplayNode(parentNode, 0);
            Console.WriteLine(sb.ToString());
            Assert.AreEqual(2, parentNode.Children.Count, "wrong number of children");

            // these names don't match the data they contain
            Node quarterlyReporting = parentNode.Children[1] as Node;
            Node MLA002             = quarterlyReporting.Children[0] as Node;

            Assert.AreEqual("Balance Sheet", MLA002.Label, "Node.Label on node MLA002 wrong");

            string references = null;

            Assert.IsTrue(MLA002.TryGetReferences(out references), "could not get references for MLA002");
            Assert.IsNotNull(references, "references is null");
        }
Beispiel #3
0
        public void EDGAROnline_LoadAndParsePresentation()
        {
            TestTaxonomy_EDGAROnline s = new TestTaxonomy_EDGAROnline();
            int errors = 0;

            DateTime start = DateTime.Now;

            errors = s.Load(EDGARONLINE_FILE, false);
            if (errors != 0)
            {
                Assert.Fail((string)s.ErrorList[0]);
            }

            errors = 0;

            // this loads up all dependant taxonomies, and loads the corresponding presentation, calculation, label, and reference linkbases
            // parse presentation first
            s.Parse(out errors);

            // there should be 1 error because there's a presentation arc that would create an infinite recursion
            Assert.AreEqual(1, errors, "wrong number of errors in presentation");

            //s.ErrorList.Sort();

            Console.WriteLine(((ParserMessage)s.ErrorList[0]).Message);

            DateTime end = DateTime.Now;

            Console.WriteLine("Parse Time: {0}", end - start);
            TimeSpan level = new TimeSpan(0, 0, 0, 10, 0);                      // 10 seconds to parse

            Assert.AreEqual(9, s.presentationInfo.Count, "wrong number of presentation links");
            PresentationLink pl = s.presentationInfo["http://www.xbrl.org/us/fr/lr/role/IncomeStatement"] as PresentationLink;

            Assert.IsNotNull(pl, "can't get http://www.xbrl.org/us/fr/lr/role/IncomeStatement from presentation");

            Node parentNode = pl.CreateNode("en", "label");

            Assert.AreEqual(2, parentNode.Children.Count, "wrong number of children in presentation");
            Assert.IsTrue(level > (end - start), "Parse takes too long - " + (end - start) + " seconds");
        }
Beispiel #4
0
        public void EDGAROnline_LoadAndParseCalculation()
        {
            for (int i = 0; i < 10; i++)
            {
                TestTaxonomy_EDGAROnline s = new TestTaxonomy_EDGAROnline();
                int errors = 0;

                DateTime start = DateTime.Now;
                if (s.Load(EDGARONLINE_FILE, out errors) != true)
                {
                    Assert.Fail((string)s.ErrorList[0]);
                }

                errors = 0;

                // this loads up all dependant taxonomies, and loads the corresponding presentation, calculation, label, and reference linkbases
                s.Parse(out errors);

                // there should be 2 error because there's a calculation arc that would create an infinite recursion
                Assert.AreEqual(1, errors, "wrong number of errors in calculation");

                DateTime end = DateTime.Now;
                Console.WriteLine("Parse Time: {0}", end - start);
                TimeSpan level = new TimeSpan(0, 0, 0, 10, 0);                          // 10 seconds to parse
                Assert.AreEqual(10, s.calculationInfo.Count, "wrong number of calculation links");
                PresentationLink cl = s.calculationInfo["http://www.xbrl.org/us/fr/lr/role/CashFlowOperationsDirect"] as PresentationLink;
                Assert.IsNotNull(cl, "can't get http://www.xbrl.org/us/fr/lr/role/CashFlowOperationsDirect from calculation");

                Node parentNode = cl.CreateNode("en", "label");
                Assert.AreEqual(1, parentNode.Children.Count, "wrong number of children in calculation");

                s.currentLabelRole = @"preferredLabel";
                s.currentLanguage  = @"en";
                ArrayList temp = s.GetNodesByCalculation();

                Assert.IsTrue(level > (end - start), "Parse takes too long - " + (end - start) + " seconds");
            }
        }
Beispiel #5
0
        public void BASI_LabelTest()
        {
            TestTaxonomy_2005_02_28 s = new TestTaxonomy_2005_02_28();
            int errors = 0;

            DateTime start = DateTime.Now;

            if (s.Load(BASI_FILE, out errors) != true)
            {
                Assert.Fail((string)s.ErrorList[0]);
            }

            errors = 0;
            s.Parse(out errors);

            if (errors > 0)
            {
                SendErrorsToConsole(s.errorList);
            }

            s.BindPresentationCalculationElements(true, out errors);
            s.BindElements(new BindElementDelegate(s.BindLabelToElement), out errors);

            PresentationLink pl = s.presentationInfo["http://www.xbrl.org/us/fr/lr/role/TupleContentModelsCommonTerms"] as PresentationLink;

            Assert.IsNotNull(pl, "can't get http://www.xbrl.org/us/fr/lr/role/TupleContentModelsCommonTerms");

            Node parentNode = pl.CreateNode("en", "label");

            System.Text.StringBuilder sb = TestTaxonomy_EDGAROnline.DisplayNode(parentNode, 0);
            Console.WriteLine(sb.ToString());

            // test the fourth child
            Node n = (Node)parentNode.Children[13];

            Assert.AreEqual(n.Label, "Contingencies - Possible Loss", "label wrong");
        }
        public void EDGAROnline_LoadAndParseCalculation()
        {
            for ( int i = 0; i < 10; i++ )
            {
                TestTaxonomy_EDGAROnline s = new TestTaxonomy_EDGAROnline();
                int errors = 0;

                DateTime start = DateTime.Now;
                if ( s.Load( EDGARONLINE_FILE, out errors ) != true )
                {
                    Assert.Fail( (string)s.ErrorList[0]);
                }

                errors = 0;

                // this loads up all dependant taxonomies, and loads the corresponding presentation, calculation, label, and reference linkbases
                s.Parse( out errors );

                // there should be 2 error because there's a calculation arc that would create an infinite recursion
                Assert.AreEqual( 1, errors, "wrong number of errors in calculation" );

                DateTime end = DateTime.Now;
                Console.WriteLine( "Parse Time: {0}", end-start );
                TimeSpan level = new TimeSpan( 0, 0, 0, 10, 0 );	// 10 seconds to parse
                Assert.AreEqual(10, s.calculationInfo.Count, "wrong number of calculation links" );
                PresentationLink cl = s.calculationInfo[ "http://www.xbrl.org/us/fr/lr/role/CashFlowOperationsDirect" ] as PresentationLink;
                Assert.IsNotNull( cl, "can't get http://www.xbrl.org/us/fr/lr/role/CashFlowOperationsDirect from calculation" );

                Node parentNode = cl.CreateNode( "en", "label" );
                Assert.AreEqual(1, parentNode.Children.Count, "wrong number of children in calculation" );

                s.currentLabelRole = @"preferredLabel";
                s.currentLanguage = @"en";
                ArrayList temp = s.GetNodesByCalculation();

                Assert.IsTrue( level > (end-start), "Parse takes too long - " + (end-start) + " seconds"  );

            }
        }
        public void Test_LoadAndParsePresentation_GCDA_Growth_Fund()
        {
            TestTaxonomy_EDGAROnline s = new TestTaxonomy_EDGAROnline();
            int errors = 0;
            string fileName = TestCommon.FolderRoot + @"GCDA_Growth_Fund" +System.IO.Path.DirectorySeparatorChar +"GComFunds.xsd";

            DateTime start = DateTime.Now;
            if ( s.Load( fileName, out errors ) != true )
            {
                Assert.Fail( (string)s.ErrorList[0]);
            }

            errors = 0;

            // this loads up all dependant taxonomies, and loads the corresponding presentation, calculation, label, and reference linkbases
            // parse presentation first

            s.CurrentLabelRole ="preferredLabel";
            s.CurrentLanguage = "en";

            s.Parse( out errors );

            ArrayList nodes = s.GetNodesByPresentation();

            foreach ( Node n in nodes )
            {
                StringBuilder sb = DisplayNode( n, 0 );
                Console.WriteLine( sb.ToString() );
            }
        }
        public void EDGAROnline_LoadAndParsePresentation()
        {
            TestTaxonomy_EDGAROnline s = new TestTaxonomy_EDGAROnline();
            int errors = 0;

            DateTime start = DateTime.Now;
            errors = s.Load( EDGARONLINE_FILE, false );
            if (  errors != 0 )
            {
                Assert.Fail( (string)s.ErrorList[0]);
            }

            errors = 0;

            // this loads up all dependant taxonomies, and loads the corresponding presentation, calculation, label, and reference linkbases
            // parse presentation first
            s.Parse( out errors );

            // there should be 1 error because there's a presentation arc that would create an infinite recursion
            Assert.AreEqual( 1, errors, "wrong number of errors in presentation" );

            //s.ErrorList.Sort();

            Console.WriteLine( ((ParserMessage)s.ErrorList[0]).Message );

            DateTime end = DateTime.Now;
            Console.WriteLine( "Parse Time: {0}", end-start );
            TimeSpan level = new TimeSpan( 0, 0, 0, 10, 0 );	// 10 seconds to parse

            Assert.AreEqual(9, s.presentationInfo.Count, "wrong number of presentation links" );
            PresentationLink pl = s.presentationInfo[ "http://www.xbrl.org/us/fr/lr/role/IncomeStatement" ] as PresentationLink;
            Assert.IsNotNull( pl, "can't get http://www.xbrl.org/us/fr/lr/role/IncomeStatement from presentation" );

            Node parentNode = pl.CreateNode( "en", "label" );
            Assert.AreEqual(2, parentNode.Children.Count, "wrong number of children in presentation" );
            Assert.IsTrue( level > (end-start), "Parse takes too long - " + (end-start) + " seconds"  );
        }