예제 #1
0
        private static ReportSpec MakeReportSpec()
        {
            var specList = new ReportSpecList();
            var defaults = specList.GetDefaults();

            return(defaults.First(spec => spec.Name == Resources.ReportSpecList_GetDefaults_Peak_Boundaries));
        }
예제 #2
0
        public void TestReportSpecList()
        {
            ReportSpecList reportSpecList = new ReportSpecList();

            using (Database database = new Database())
            {
                ColumnSet columnSet = ColumnSet.GetTransitionsColumnSet(database.GetSchema());
                TreeView  treeView  = new TreeView();
                treeView.Nodes.AddRange(columnSet.GetTreeNodes().ToArray());

                foreach (ReportSpec reportSpec in reportSpecList.GetDefaults())
                {
                    Report          report    = Report.Load(reportSpec);
                    ResultSet       resultSet = report.Execute(database);
                    List <NodeData> nodeDatas;
                    columnSet.GetColumnInfos(report, treeView, out nodeDatas);
                    Assert.IsFalse(nodeDatas.Contains(null));
                    if (reportSpec.GroupBy == null)
                    {
                        SimpleReport simpleReport = (SimpleReport)report;
                        Assert.AreEqual(simpleReport.Columns.Count, resultSet.ColumnInfos.Count);
                        Assert.AreEqual(simpleReport.Columns.Count, nodeDatas.Count);
                    }
                }
            }
        }
예제 #3
0
        private static ReportSpec GetDefaultReport(string name)
        {
            var reportSpecList = new ReportSpecList();

            reportSpecList.AddDefaults();
            return(reportSpecList.First(reportSpec => name == reportSpec.Name));
        }
예제 #4
0
        public void TestReportSpecListXml()
        {
            ReportSpecList reportSpecList = new ReportSpecList();

            reportSpecList.AddDefaults();
            Assert.AreNotEqual(0, reportSpecList.Count);
            StringBuilder stringBuilder = new StringBuilder();

            using (XmlWriter xmlWriter = XmlWriter.Create(stringBuilder))
            {
                Debug.Assert(xmlWriter != null);
                xmlWriter.WriteStartDocument();
                xmlWriter.WriteStartElement("testElement");
                reportSpecList.WriteXml(xmlWriter);
                xmlWriter.WriteEndElement();
                xmlWriter.WriteEndDocument();
            }
            XmlReader      xmlReader = XmlReader.Create(new StringReader(stringBuilder.ToString()));
            ReportSpecList compare   = new ReportSpecList();

            compare.ReadXml(xmlReader);
            Assert.AreEqual(reportSpecList.Count, compare.Count);
            for (int i = 0; i < reportSpecList.Count; i++)
            {
                ReportSpec reportSpec        = reportSpecList[i];
                ReportSpec reportSpecCompare = compare[i];
                Assert.AreNotSame(reportSpec, reportSpecCompare);
                Assert.AreEqual(reportSpec, reportSpecCompare);
                Assert.AreEqual(reportSpec.GetHashCode(), reportSpecCompare.GetHashCode());
            }
        }
예제 #5
0
        public ReportOrViewSpecList(ReportSpecList oldList)
        {
            RevisionIndex = oldList.RevisionIndex;
            var oldReports       = oldList.Select(item => new ReportOrViewSpec(item));
            var convertedReports = ReportSharing.ConvertAll(oldReports, new SrmDocument(SrmSettingsList.GetDefault()));

            AddRange(convertedReports.Select(view => new ReportOrViewSpec(view)));
            ValidateLoad();
        }
예제 #6
0
        public ReportOrViewSpecList(ReportSpecList oldList)
        {
            RevisionIndex = oldList.RevisionIndex;
            var oldReports       = oldList.Select(item => new ReportOrViewSpec(item));
            var convertedReports = ReportSharing.ConvertAll(oldReports, new SrmDocument(SrmSettingsList.GetDefault()));

            AddRange(convertedReports.Select(view => new ReportOrViewSpec(view)));
            // ReSharper disable once VirtualMemberCallInConstructor
            ValidateLoad();
        }
예제 #7
0
        public void TestUpgradedReportSpecList()
        {
            var toolList = new ToolList();
            toolList.AddDefaults();
            var cleanPersistedViews = new PersistedViews(null, null, toolList);
            for (int oldRevision = 0; oldRevision < 2; oldRevision++)
            {
                var oldReportSpecList = new ReportSpecList {RevisionIndex = oldRevision};
                oldReportSpecList.AddRange(oldReportSpecList.GetDefaults(oldRevision));
                var upgradedPersistedViews = new PersistedViews(oldReportSpecList, null, toolList);
                foreach (var group in new[] {PersistedViews.MainGroup, PersistedViews.ExternalToolsGroup})
                {
                    var cleanViews = cleanPersistedViews.GetViewSpecList(group.Id).ViewSpecs.ToArray();
                    var upgragedViews = upgradedPersistedViews.GetViewSpecList(group.Id).ViewSpecs.ToArray();

                    CollectionAssert.AreEquivalent(cleanViews, upgragedViews,
                        "Upgraded from rev {0} in group {1}", oldRevision, group);
                }
            }
        }
예제 #8
0
        public void TestLoadReportFile()
        {
            SrmDocument srmDocument = ResultsUtil.DeserializeDocument("silac_1_to_4.sky", GetType());

            using (Database database = new Database())
                using (var streamR = GetType().Assembly.GetManifestResourceStream(GetType().Namespace + ".Study9p_template_0721_2009_v3.skyr"))
                {
                    Assert.IsNotNull(streamR);

                    database.AddSrmDocument(srmDocument);

                    ReportSpecList reportSpecList = new ReportSpecList();
                    var            xmlSerializer  = new XmlSerializer(reportSpecList.DeserialType);
                    reportSpecList = (ReportSpecList)xmlSerializer.Deserialize(streamR);
                    Report    report    = Report.Load(reportSpecList["Study 9p_0721_2009_v6"]);
                    ResultSet resultSet = report.Execute(database);
                    Assert.AreEqual(26, resultSet.ColumnInfos.Count);
                    // The file contains one transition that does not map to the imported results
                    Assert.AreEqual(srmDocument.PeptideTransitionCount / 2 - 1, resultSet.RowCount);
                }
        }
예제 #9
0
        public void TestUpgradedReportSpecList()
        {
            var toolList = new ToolList();

            toolList.AddDefaults();
            var cleanPersistedViews = new PersistedViews(null, null, toolList);

            for (int oldRevision = 0; oldRevision < 2; oldRevision++)
            {
                var oldReportSpecList = new ReportSpecList {
                    RevisionIndex = oldRevision
                };
                oldReportSpecList.AddRange(oldReportSpecList.GetDefaults(oldRevision));
                var upgradedPersistedViews = new PersistedViews(oldReportSpecList, null, toolList);
                foreach (var group in new[] { PersistedViews.MainGroup, PersistedViews.ExternalToolsGroup })
                {
                    var cleanViews    = cleanPersistedViews.GetViewSpecList(group.Id).ViewSpecs.ToArray();
                    var upgragedViews = upgradedPersistedViews.GetViewSpecList(group.Id).ViewSpecs.ToArray();

                    CollectionAssert.AreEquivalent(cleanViews, upgragedViews,
                                                   "Upgraded from rev {0} in group {1}", oldRevision, group);
                }
            }
        }
예제 #10
0
        /// <summary>
        /// Construct a new PersistedViews, migrating over the values from the old ViewSpecList
        /// and ReportSpecList properties.  Views that are in use by an external tool get put in
        /// the External Tools group, and views that are
        /// </summary>
        public PersistedViews(ReportSpecList reportSpecList, ViewSpecList viewSpecList, ToolList toolList)
        {
            var viewItems = new List <ViewSpec>();

            if (null != viewSpecList)
            {
                viewItems.AddRange(viewSpecList.ViewSpecs);
            }
            if (null != reportSpecList)
            {
                RevisionIndex = reportSpecList.RevisionIndex + 1;
                foreach (var newView in ReportSharing.ConvertAll(reportSpecList.Select(reportSpec => new ReportOrViewSpec(reportSpec)),
                                                                 new SrmDocument(SrmSettingsList.GetDefault())))
                {
                    if (viewItems.Any(viewSpec => viewSpec.Name == newView.Name))
                    {
                        continue;
                    }
                    viewItems.Add(newView);
                }
            }
            var viewSpecLists = new Dictionary <ViewGroup, Dictionary <string, ViewSpec> >();

            foreach (var viewItem in viewItems)
            {
                ViewGroup group;
                if (toolList.Any(tool => tool.ReportTitle == viewItem.Name))
                {
                    group = ExternalToolsGroup;
                }
                else
                {
                    group = MainGroup;
                }
                Dictionary <string, ViewSpec> list;
                if (!viewSpecLists.TryGetValue(group, out list))
                {
                    list = new Dictionary <string, ViewSpec>();
                    viewSpecLists.Add(group, list);
                }
                if (!list.ContainsKey(viewItem.Name))
                {
                    list.Add(viewItem.Name, viewItem);
                }
                else
                {
                    for (int i = 1;; i++)
                    {
                        string name = viewItem.Name + i;
                        if (!list.ContainsKey(name))
                        {
                            list.Add(name, viewItem.SetName(name));
                            break;
                        }
                    }
                }
            }
            foreach (var entry in viewSpecLists)
            {
                SetViewSpecList(entry.Key.Id, new ViewSpecList(entry.Value.Values));
            }
            AddDefaults();
        }
예제 #11
0
 /// <summary>
 /// Construct a new PersistedViews, migrating over the values from the old ViewSpecList 
 /// and ReportSpecList properties.  Views that are in use by an external tool get put in
 /// the External Tools group, and views that are
 /// </summary>
 public PersistedViews(ReportSpecList reportSpecList, ViewSpecList viewSpecList, ToolList toolList)
 {
     var viewItems = new List<ViewSpec>();
     if (null != viewSpecList)
     {
         viewItems.AddRange(viewSpecList.ViewSpecs);
     }
     if (null != reportSpecList)
     {
         RevisionIndex = reportSpecList.RevisionIndex + 1;
         foreach (var newView in ReportSharing.ConvertAll(reportSpecList.Select(reportSpec => new ReportOrViewSpec(reportSpec)),
                     new SrmDocument(SrmSettingsList.GetDefault())))
         {
             if (viewItems.Any(viewSpec => viewSpec.Name == newView.Name))
             {
                 continue;
             }
             viewItems.Add(newView);
         }
     }
     var viewSpecLists = new Dictionary<ViewGroup, Dictionary<string, ViewSpec>>();
     foreach (var viewItem in viewItems)
     {
         ViewGroup group;
         if (toolList.Any(tool => tool.ReportTitle == viewItem.Name))
         {
             group = ExternalToolsGroup;
         }
         else
         {
             group = MainGroup;
         }
         Dictionary<string, ViewSpec> list;
         if (!viewSpecLists.TryGetValue(group, out list))
         {
             list = new Dictionary<string, ViewSpec>();
             viewSpecLists.Add(group, list);
         }
         if (!list.ContainsKey(viewItem.Name))
         {
             list.Add(viewItem.Name, viewItem);
         }
         else
         {
             for (int i = 1;; i++)
             {
                 string name = viewItem.Name + i;
                 if (!list.ContainsKey(name))
                 {
                     list.Add(name, viewItem.SetName(name));
                     break;
                 }
             }
         }
     }
     foreach (var entry in viewSpecLists)
     {
         SetViewSpecList(entry.Key.Id, new ViewSpecList(entry.Value.Values));
     }
     AddDefaults();
 }
예제 #12
0
 private static ReportSpec MakeReportSpec()
 {
     var specList = new ReportSpecList();
     var defaults = specList.GetDefaults();
     return defaults.First(spec => spec.Name == Resources.ReportSpecList_GetDefaults_Peak_Boundaries);
 }
 private static ReportSpec GetDefaultReport(string name)
 {
     var reportSpecList = new ReportSpecList();
     reportSpecList.AddDefaults();
     return reportSpecList.First(reportSpec => name == reportSpec.Name);
 }
예제 #14
0
 public void TestReportSpecListXml()
 {
     ReportSpecList reportSpecList = new ReportSpecList();
     reportSpecList.AddDefaults();
     Assert.AreNotEqual(0, reportSpecList.Count);
     StringBuilder stringBuilder = new StringBuilder();
     using (XmlWriter xmlWriter = XmlWriter.Create(stringBuilder))
     {
         Debug.Assert(xmlWriter != null);
         xmlWriter.WriteStartDocument();
         xmlWriter.WriteStartElement("testElement");
         reportSpecList.WriteXml(xmlWriter);
         xmlWriter.WriteEndElement();
         xmlWriter.WriteEndDocument();
     }
     XmlReader xmlReader = XmlReader.Create(new StringReader(stringBuilder.ToString()));
     ReportSpecList compare = new ReportSpecList();
     compare.ReadXml(xmlReader);
     Assert.AreEqual(reportSpecList.Count, compare.Count);
     for (int i = 0; i < reportSpecList.Count; i++)
     {
         ReportSpec reportSpec = reportSpecList[i];
         ReportSpec reportSpecCompare = compare[i];
         Assert.AreNotSame(reportSpec, reportSpecCompare);
         Assert.AreEqual(reportSpec, reportSpecCompare);
         Assert.AreEqual(reportSpec.GetHashCode(), reportSpecCompare.GetHashCode());
     }
 }
예제 #15
0
        public void TestReportSpecList()
        {
            ReportSpecList reportSpecList = new ReportSpecList();
            using (Database database = new Database())
            {
                ColumnSet columnSet = ColumnSet.GetTransitionsColumnSet(database.GetSchema());
                TreeView treeView = new TreeView();
                treeView.Nodes.AddRange(columnSet.GetTreeNodes().ToArray());

                foreach (ReportSpec reportSpec in reportSpecList.GetDefaults())
                {
                    Report report = Report.Load(reportSpec);
                    ResultSet resultSet = report.Execute(database);
                    List<NodeData> nodeDatas;
                    columnSet.GetColumnInfos(report, treeView, out nodeDatas);
                    Assert.IsFalse(nodeDatas.Contains(null));
                    if (reportSpec.GroupBy == null)
                    {
                        SimpleReport simpleReport = (SimpleReport)report;
                        Assert.AreEqual(simpleReport.Columns.Count, resultSet.ColumnInfos.Count);
                        Assert.AreEqual(simpleReport.Columns.Count, nodeDatas.Count);
                    }
                }
            }
        }
예제 #16
0
        public void TestLoadReportFile()
        {
            SrmDocument srmDocument = ResultsUtil.DeserializeDocument("silac_1_to_4.sky", GetType());
            using (Database database = new Database())
            using (var streamR = GetType().Assembly.GetManifestResourceStream(GetType().Namespace + ".Study9p_template_0721_2009_v3.skyr"))
            {
                Assert.IsNotNull(streamR);

                database.AddSrmDocument(srmDocument);

                ReportSpecList reportSpecList = new ReportSpecList();
                var xmlSerializer = new XmlSerializer(reportSpecList.DeserialType);
                reportSpecList = (ReportSpecList)xmlSerializer.Deserialize(streamR);
                Report report = Report.Load(reportSpecList["Study 9p_0721_2009_v6"]);
                ResultSet resultSet = report.Execute(database);
                Assert.AreEqual(26, resultSet.ColumnInfos.Count);
                // The file contains one transition that does not map to the imported results
                Assert.AreEqual(srmDocument.PeptideTransitionCount / 2 - 1, resultSet.RowCount);
            }
        }