Ejemplo n.º 1
0
        private void ImportErrorMessage(EditIsolationSchemeDlg isoEditor, string rawFileName, string message, int insertions = 0)
        {
            PerformImport(isoEditor, rawFileName);
            var messageDlg = WaitForOpenForm <MessageDlg>();

            if (insertions == 0)
            {
                Assert.IsTrue(messageDlg.Message.Contains(message), "Expected:<{0}> in the message <{1}>", message, messageDlg.Message);
            }
            else
            {
                AssertEx.AreComparableStrings(message, messageDlg.Message, insertions);
            }
            OkDialog(messageDlg, messageDlg.OkDialog);
        }
Ejemplo n.º 2
0
        private void PerformImport(EditIsolationSchemeDlg isoEditor, string[] rawFileNames)
        {
            var importDlg = ShowDialog <OpenDataSourceDialog>(isoEditor.ImportRanges);

            RunUI(() =>
            {
                importDlg.CurrentDirectory = new MsDataFilePath(TestFilesDir.FullPath);
                foreach (var rawFileName in rawFileNames)
                {
                    importDlg.SelectFile(rawFileName);
                }
                if (!ArrayUtil.EqualsDeep(rawFileNames, importDlg.SelectedFiles.ToArray()))
                {
                    Assert.Fail(TextUtil.LineSeparate("Unexpected file selection:",
                                                      TextUtil.LineSeparate(importDlg.SelectedFiles)));
                }
            });
            OkDialog(importDlg, importDlg.AcceptButton.PerformClick);
        }
Ejemplo n.º 3
0
 private void ValidateIsolationSchemeImport(EditIsolationSchemeDlg isoEditor, string fileName,
                                            int windowCount, int windowWidth, double?margin)
 {
     RunDlg <OpenDataSourceDialog>(isoEditor.ImportRanges, openData =>
     {
         openData.SelectFile(TestFilesDir.GetTestPath(fileName));
         openData.Open();
     });
     WaitForConditionUI(() => windowCount == (isoEditor.GetIsolationWindows()?.Count ?? 0));
     RunUI(() =>
     {
         var listIsolationWindows = isoEditor.GetIsolationWindows();
         AssertEx.AreEqual(windowCount, listIsolationWindows.Count);
         foreach (var isolationWindow in listIsolationWindows)
         {
             AssertEx.AreEqual(windowWidth, isolationWindow.End - isolationWindow.Start,
                               string.Format("Range {0} to {1} does not have width {2}", isolationWindow.Start, isolationWindow.End, windowWidth));
             AssertEx.AreEqual(margin, isolationWindow.StartMargin);
             AssertEx.AreEqual(margin, isolationWindow.EndMargin);
         }
     });
 }
Ejemplo n.º 4
0
 private void PerformImport(EditIsolationSchemeDlg isoEditor, string rawFileName)
 {
     PerformImport(isoEditor, new [] { rawFileName });
 }
Ejemplo n.º 5
0
        private void ImportIsoList(EditIsolationSchemeDlg isoEditor, string[] rawFileNames, int windowCount,
                                   double?marginWidth = null, bool overlapping = false, int misplacedRanges = 0)
        {
            PerformImport(isoEditor, rawFileNames);
//            PauseTest();
            if (!TryWaitForConditionUI(10 * 1000, () => isoEditor.IsolationWindowGrid.RowCount == windowCount + 1))
            // window count + empty row
            {
                RunUI(() => Assert.Fail(TextUtil.LineSeparate(string.Format("Expecting {0} isolation ranges, found {1}", windowCount, isoEditor.IsolationWindowGrid.RowCount - 1),
                                                              TextUtil.LineSeparate(isoEditor.IsolationWindowGrid.Items.Select(i => string.Format("{0}, {1}", i.Start, i.End))))));
            }

            double allowedDelta = overlapping ? 0.05 : 0.00001;

            RunUI(() =>
            {
                if (marginWidth.HasValue)
                {
                    Assert.IsTrue(isoEditor.SpecifyMargin);
                }
                else
                {
                    Assert.IsFalse(isoEditor.SpecifyMargin);
                }
                if (overlapping && misplacedRanges < 2)
                {
                    Assert.IsTrue(isoEditor.Overlap);
                }
                else
                {
                    Assert.IsFalse(isoEditor.Overlap);
                }

                double?lastEnd        = null;
                double overlap        = marginWidth * 2 ?? 0;
                int misplaced         = 0;
                int overlapStartIndex = 0;
                for (int i = 0; i < isoEditor.IsolationWindowGrid.Items.Count; i++)
                {
                    var isolationWindow = isoEditor.IsolationWindowGrid.Items[i];
                    if (lastEnd.HasValue &&
                        (!overlapping || isolationWindow.Start > isoEditor.IsolationWindowGrid.Items[overlapStartIndex].Start))
                    {
                        try
                        {
                            Assert.AreEqual(lastEnd.Value - overlap, isolationWindow.Start.Value, allowedDelta);
                        }
                        catch (AssertFailedException)
                        {
                            if (misplaced < misplacedRanges)
                            {
                                lastEnd = null;
                                misplaced++;
                                if (overlapping)
                                {
                                    overlapStartIndex = i;
                                }
                                continue;
                            }
                            throw;
                        }
                    }
                    lastEnd = isolationWindow.End;
                    if (marginWidth.HasValue)
                    {
                        Assert.AreEqual(marginWidth.Value, isolationWindow.StartMargin.Value, allowedDelta);
                    }
                    else
                    {
                        Assert.IsNull(isolationWindow.StartMargin);
                    }
                }
                Assert.AreEqual(misplacedRanges, misplaced);
            });
        }
Ejemplo n.º 6
0
 private void ImportIsoList(EditIsolationSchemeDlg isoEditor, string rawFileName, int windowCount,
                            double?marginWidth = null, bool overlapping = false, int misplacedRanges = 0)
 {
     ImportIsoList(isoEditor, new [] { rawFileName }, windowCount, marginWidth, overlapping, misplacedRanges);
 }
        protected override void DoTest()
        {
            // Display full scan tab.
            var fullScanDlg = ShowDialog <TransitionSettingsUI>(SkylineWindow.ShowTransitionSettingsUI);

            RunUI(() =>
            {
                fullScanDlg.SelectedTab       = TransitionSettingsUI.TABS.FullScan;
                fullScanDlg.AcquisitionMethod = FullScanAcquisitionMethod.DIA;
            });

            // Open the isolation scheme dialog and calculate dialog.
            _editDlg = ShowDialog <EditIsolationSchemeDlg>(fullScanDlg.AddIsolationScheme);
            RunUI(() => _editDlg.UseResults = false);
            _calcDlg = ShowDialog <CalculateIsolationSchemeDlg>(_editDlg.Calculate);

            // Check Start values.
            CheckError(() => _calcDlg.Start = null, Resources.MessageBoxHelper_ValidateDecimalTextBox__0__must_contain_a_decimal_value, 1);
            CheckError(() => _calcDlg.Start = 49, Resources.MessageBoxHelper_ValidateDecimalTextBox__0__must_be_greater_than_or_equal_to__1__, 2);
            CheckError(() => _calcDlg.Start = 2001, Resources.MessageBoxHelper_ValidateDecimalTextBox__0__must_be_less_than_or_equal_to__1__, 2);
            CheckError(() => _calcDlg.Start = 100, Resources.MessageBoxHelper_ValidateDecimalTextBox__0__must_contain_a_decimal_value, 1);

            // Check End values.
            CheckError(() => _calcDlg.End = 49, Resources.MessageBoxHelper_ValidateDecimalTextBox__0__must_be_greater_than_or_equal_to__1__, 2);
            CheckError(() => _calcDlg.End = 2001, Resources.MessageBoxHelper_ValidateDecimalTextBox__0__must_be_less_than_or_equal_to__1__, 2);
            CheckError(() => _calcDlg.End = 100, Resources.CalculateIsolationSchemeDlg_OkDialog_Start_value_must_be_less_than_End_value);
            CheckError(() => _calcDlg.End = 101, Resources.MessageBoxHelper_ValidateDecimalTextBox__0__must_contain_a_decimal_value, 1);

            // Check WindowWidth values.
            CheckError(() => _calcDlg.WindowWidth = 0.099, Resources.MessageBoxHelper_ValidateDecimalTextBox__0__must_be_greater_than_or_equal_to__1__, 2);
            CheckError(() => _calcDlg.WindowWidth = 1951, Resources.MessageBoxHelper_ValidateDecimalTextBox__0__must_be_less_than_or_equal_to__1__, 2);
            CheckError(() => _calcDlg.WindowWidth = 1950, Resources.CalculateIsolationSchemeDlg_OkDialog_Window_width_must_be_less_than_or_equal_to_the_isolation_range);
            CheckError(() => _calcDlg.WindowWidth = 1);

            // Check Margin values.
            CheckError(() =>
            {
                _calcDlg.Start         = 100;
                _calcDlg.End           = 101;
                _calcDlg.WindowWidth   = 1;
                _calcDlg.Deconvolution = EditIsolationSchemeDlg.DeconvolutionMethod.NONE;
                _calcDlg.MarginLeft    = 1951;
            },
                       Resources.MessageBoxHelper_ValidateDecimalTextBox__0__must_be_less_than_or_equal_to__1__, 2);
            CheckError(() => _calcDlg.MarginLeft = 1900, Resources.IsolationWindow_DoValidate_Isolation_window_margins_cover_the_entire_isolation_window_at_the_extremes_of_the_instrument_range);

            // One simple window.
            CheckWindows(() =>
            {
                _calcDlg.Start       = 100;
                _calcDlg.End         = 101;
                _calcDlg.WindowWidth = 1;
                _calcDlg.MarginLeft  = null;
            },
                         100, 101);

            // Two simple windows with overlap.
            CheckWindows(() =>
            {
                _calcDlg.Start         = 100;
                _calcDlg.End           = 101;
                _calcDlg.WindowWidth   = 1;
                _calcDlg.Deconvolution = EditIsolationSchemeDlg.DeconvolutionMethod.OVERLAP;
            },
                         100, 101,
                         101, 102,
                         99.5, 100.5,
                         100.5, 101.5);

            // One max-range window.
            CheckWindows(() =>
            {
                _calcDlg.Start       = 50;
                _calcDlg.End         = 2000;
                _calcDlg.WindowWidth = 1950;
            },
                         50, 2000);

            // One max-range window with margins.
            CheckWindows(() =>
            {
                _calcDlg.WindowType  = EditIsolationSchemeDlg.WindowType.EXTRACTION;
                _calcDlg.Start       = 50;
                _calcDlg.End         = 2000;
                _calcDlg.WindowWidth = 1950;
                _calcDlg.MarginLeft  = 5;
            },
                         55, 1995, 5);

            // One max-range window with CE Range.
            CheckWindows(() =>
            {
                _calcDlg.WindowType  = EditIsolationSchemeDlg.WindowType.EXTRACTION;
                _calcDlg.Start       = 50;
                _calcDlg.End         = 2000;
                _calcDlg.WindowWidth = 1950;
                _calcDlg.CERange     = 10;
            },
                         50, 2000, 10);

            // One max-range window with margin and CE Range.
            CheckWindows(() =>
            {
                _calcDlg.WindowType  = EditIsolationSchemeDlg.WindowType.EXTRACTION;
                _calcDlg.Start       = 50;
                _calcDlg.End         = 2000;
                _calcDlg.WindowWidth = 1950;
                _calcDlg.MarginLeft  = 5;
                _calcDlg.CERange     = 10;
            },
                         55, 1995, 5, 10);

            // Now with window optimization.
            CheckWindows(() =>
            {
                _calcDlg.WindowType              = EditIsolationSchemeDlg.WindowType.EXTRACTION;
                _calcDlg.Start                   = 50;
                _calcDlg.End                     = 1900;
                _calcDlg.WindowWidth             = 1850;
                _calcDlg.MarginLeft              = 5;
                _calcDlg.OptimizeWindowPlacement = true;
            },
                         55, 1901.1140, 5);

            // Overlap without window optimization. Even window width
            CheckWindows(() =>
            {
                _calcDlg.WindowType              = EditIsolationSchemeDlg.WindowType.MEASUREMENT;
                _calcDlg.Start                   = 495;
                _calcDlg.End                     = 545;
                _calcDlg.WindowWidth             = 20;
                _calcDlg.Deconvolution           = EditIsolationSchemeDlg.DeconvolutionMethod.OVERLAP;
                _calcDlg.OptimizeWindowPlacement = false;
            },
                         495, 515,
                         515, 535,
                         535, 555,
                         485, 505,
                         505, 525,
                         525, 545);

            // Overlap with window optimization. Even window width.
            CheckWindows(() =>
            {
                _calcDlg.WindowType              = EditIsolationSchemeDlg.WindowType.MEASUREMENT;
                _calcDlg.Start                   = 495;
                _calcDlg.End                     = 545;
                _calcDlg.WindowWidth             = 20;
                _calcDlg.Deconvolution           = EditIsolationSchemeDlg.DeconvolutionMethod.OVERLAP;
                _calcDlg.OptimizeWindowPlacement = true;
            },
                         495.4751, 515.4842,
                         515.4842, 535.4933,
                         535.4933, 555.5024,
                         485.4706, 505.4796,
                         505.4796, 525.4887,
                         525.4887, 545.4978);

            // Overlap without window optimization. Even window width. Overlap range not divisble by overlap width.
            CheckWindows(() =>
            {
                _calcDlg.WindowType              = EditIsolationSchemeDlg.WindowType.MEASUREMENT;
                _calcDlg.Start                   = 495;
                _calcDlg.End                     = 546;
                _calcDlg.WindowWidth             = 20;
                _calcDlg.Deconvolution           = EditIsolationSchemeDlg.DeconvolutionMethod.OVERLAP;
                _calcDlg.OptimizeWindowPlacement = false;
            },
                         495, 515,
                         515, 535,
                         535, 555,
                         555, 575,
                         485, 505,
                         505, 525,
                         525, 545,
                         545, 565);

            // Overlap with window optimization. Even window width. Overlap range not divisble by overlap width.
            CheckWindows(() =>
            {
                _calcDlg.WindowType              = EditIsolationSchemeDlg.WindowType.MEASUREMENT;
                _calcDlg.Start                   = 495;
                _calcDlg.End                     = 546;
                _calcDlg.WindowWidth             = 20;
                _calcDlg.Deconvolution           = EditIsolationSchemeDlg.DeconvolutionMethod.OVERLAP;
                _calcDlg.OptimizeWindowPlacement = true;
            },
                         495.4751, 515.4842,
                         515.4842, 535.4933,
                         535.4933, 555.5024,
                         555.5024, 575.5115,
                         485.4706, 505.4796,
                         505.4796, 525.4887,
                         525.4887, 545.4978,
                         545.4978, 565.5069);

            // Overlap without window optimization. Odd window width.
            CheckWindows(() =>
            {
                _calcDlg.WindowType              = EditIsolationSchemeDlg.WindowType.MEASUREMENT;
                _calcDlg.Start                   = 495;
                _calcDlg.End                     = 501;
                _calcDlg.WindowWidth             = 3;
                _calcDlg.Deconvolution           = EditIsolationSchemeDlg.DeconvolutionMethod.OVERLAP;
                _calcDlg.OptimizeWindowPlacement = false;
            },
                         495.0, 498.0,
                         498.0, 501.0,
                         501.0, 504.0,
                         493.5, 496.5,
                         496.5, 499.5,
                         499.5, 502.5);

            // Overlap with window optimization. Odd window width.
            CheckWindows(() =>
            {
                _calcDlg.WindowType              = EditIsolationSchemeDlg.WindowType.MEASUREMENT;
                _calcDlg.Start                   = 495;
                _calcDlg.End                     = 501;
                _calcDlg.WindowWidth             = 3;
                _calcDlg.Deconvolution           = EditIsolationSchemeDlg.DeconvolutionMethod.OVERLAP;
                _calcDlg.OptimizeWindowPlacement = true;
            },
                         495.4751, 498.4765,
                         498.4765, 501.4778,
                         501.4778, 504.4792,
                         494.4746, 497.4760,
                         497.4760, 500.4774,
                         500.4774, 503.4787);

            // Four windows that fit exactly.
            CheckWindows(() =>
            {
                _calcDlg.WindowType  = EditIsolationSchemeDlg.WindowType.EXTRACTION;
                _calcDlg.Start       = 100;
                _calcDlg.End         = 200;
                _calcDlg.WindowWidth = 25;
                _calcDlg.MarginLeft  = 1;
            },
                         100, 125, 1,
                         125, 150, 1,
                         150, 175, 1,
                         175, 200, 1);

            // Four windows that don't fit exactly.
            CheckWindows(() =>
            {
                _calcDlg.WindowType  = EditIsolationSchemeDlg.WindowType.EXTRACTION;
                _calcDlg.Start       = 100;
                _calcDlg.End         = 200;
                _calcDlg.WindowWidth = 33;
                _calcDlg.MarginLeft  = 1;
            },
                         100, 133, 1,
                         133, 166, 1,
                         166, 199, 1,
                         199, 232, 1);

            // One optimized window.
            CheckWindows(() =>
            {
                _calcDlg.Start                   = 100;
                _calcDlg.End                     = 101;
                _calcDlg.WindowWidth             = 1;
                _calcDlg.OptimizeWindowPlacement = true;
            },
                         100.2955, 101.2959);

            // More than max number of windows.
            RunUI(() =>
            {
                _calcDlg.Start       = 100;
                _calcDlg.End         = 2000;
                _calcDlg.WindowWidth = 1;

                // Cover miscellaneous Get methods.
                string x = _calcDlg.Start + _calcDlg.End + _calcDlg.WindowWidth +
                           _calcDlg.MarginLeft.ToString();
                Assert.IsTrue(x != null);     // Just using this so ReSharper won't complain.
            });

            // Cancel all dialogs to conclude test.
            OkDialog(_calcDlg, _calcDlg.CancelButton.PerformClick);
            OkDialog(_editDlg, _editDlg.CancelButton.PerformClick);
            OkDialog(fullScanDlg, fullScanDlg.CancelButton.PerformClick);
        }