Index: /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/HeuristicLab.Analysis.Statistics-3.3.csproj
===================================================================
--- /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/HeuristicLab.Analysis.Statistics-3.3.csproj	(revision 11692)
+++ /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/HeuristicLab.Analysis.Statistics-3.3.csproj	(revision 11693)
@@ -140,9 +140,9 @@
       <DependentUpon>SampleSizeInfluenceView.cs</DependentUpon>
     </Compile>
-    <Compile Include="StatisticalTestingView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="StatisticalTestingView.designer.cs">
-      <DependentUpon>StatisticalTestingView.cs</DependentUpon>
+    <Compile Include="StatisticalTestsView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="StatisticalTestsView.designer.cs">
+      <DependentUpon>StatisticalTestsView.cs</DependentUpon>
     </Compile>
     <Compile Include="KruskalWallisTest.cs" />
@@ -162,4 +162,10 @@
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="PairwiseTest.cs" />
+    <Compile Include="StatisticalTestsConfigurationDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="StatisticalTestsConfigurationDialog.Designer.cs">
+      <DependentUpon>StatisticalTestsConfigurationDialog.cs</DependentUpon>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
@@ -179,6 +185,6 @@
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
     </EmbeddedResource>
-    <EmbeddedResource Include="StatisticalTestingView.resx">
-      <DependentUpon>StatisticalTestingView.cs</DependentUpon>
+    <EmbeddedResource Include="StatisticalTestsView.resx">
+      <DependentUpon>StatisticalTestsView.cs</DependentUpon>
     </EmbeddedResource>
   </ItemGroup>
Index: anches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.cs
===================================================================
--- /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.cs	(revision 11692)
+++ 	(revision )
@@ -1,478 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using HeuristicLab.Collections;
-using HeuristicLab.Core.Views;
-using HeuristicLab.Data;
-using HeuristicLab.MainForm;
-using HeuristicLab.Optimization;
-using HeuristicLab.Optimization.Views;
-
-namespace HeuristicLab.Analysis.Statistics {
-  [View("Statistical Tests", "HeuristicLab.Analysis.Statistics.InfoResources.StatisticalTestsInfo.rtf")]
-  [Content(typeof(RunCollection), false)]
-  public sealed partial class StatisticalTestingView : ItemView {
-    private const double significanceLevel = 0.05;
-    private const int requiredSampleSize = 5;
-    private double[][] data;
-
-    public StatisticalTestingView() {
-      InitializeComponent();
-    }
-
-    public new RunCollection Content {
-      get { return (RunCollection)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public override bool ReadOnly {
-      get { return true; }
-      set { /*not needed because results are always readonly */}
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-
-      if (Content != null) {
-        UpdateResultComboBox();
-        UpdateGroupsComboBox();
-        FillCompComboBox();
-        RebuildDataTable();
-      }
-      UpdateCaption();
-    }
-
-    private void UpdateCaption() {
-      Caption = Content != null ? Content.OptimizerName + " Statistical Tests" : ViewAttribute.GetViewName(GetType());
-    }
-
-    #region events
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      Content.ItemsAdded += new CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
-      Content.ItemsRemoved += new CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
-      Content.CollectionReset += new CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-      Content.UpdateOfRunsInProgressChanged += Content_UpdateOfRunsInProgressChanged;
-    }
-
-    protected override void DeregisterContentEvents() {
-      base.DeregisterContentEvents();
-      Content.ItemsAdded -= new CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
-      Content.ItemsRemoved -= new CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
-      Content.CollectionReset -= new CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
-      Content.UpdateOfRunsInProgressChanged -= Content_UpdateOfRunsInProgressChanged;
-    }
-
-    private void Content_CollectionReset(object sender, CollectionItemsChangedEventArgs<IRun> e) {
-      RebuildDataTable();
-    }
-
-    private void Content_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<IRun> e) {
-      RebuildDataTable();
-    }
-
-    private void Content_ItemsAdded(object sender, CollectionItemsChangedEventArgs<IRun> e) {
-      RebuildDataTable();
-    }
-
-    void Content_UpdateOfRunsInProgressChanged(object sender, EventArgs e) {
-      if (!Content.UpdateOfRunsInProgress) {
-        RebuildDataTable();
-      }
-    }
-    #endregion
-
-    private void UpdateGroupsComboBox() {
-      groupComboBox.Items.Clear();
-
-      var parameters = (from run in Content
-                        where run.Visible
-                        from param in run.Parameters
-                        select param.Key).Distinct().ToArray();
-
-      foreach (var p in parameters) {
-        var variations = (from run in Content
-                          where run.Visible && run.Parameters.ContainsKey(p) &&
-                          (run.Parameters[p] is IntValue || run.Parameters[p] is DoubleValue ||
-                          run.Parameters[p] is StringValue || run.Parameters[p] is BoolValue)
-                          select ((dynamic)run.Parameters[p]).Value).Distinct();
-
-        if (variations.Count() > 1) {
-          groupComboBox.Items.Add(p);
-        }
-      }
-
-      if (groupComboBox.Items.Count > 0) {
-        //try to select something different than "Seed" or "Algorithm Name" as this makes no sense
-        //and takes a long time to group
-        List<int> possibleIndizes = new List<int>();
-        for (int i = 0; i < groupComboBox.Items.Count; i++) {
-          if (groupComboBox.Items[i].ToString() != "Seed"
-            && groupComboBox.Items[i].ToString() != "Algorithm Name") {
-            possibleIndizes.Add(i);
-          }
-        }
-
-        if (possibleIndizes.Count > 0) {
-          groupComboBox.SelectedItem = groupComboBox.Items[possibleIndizes.First()];
-        } else {
-          groupComboBox.SelectedItem = groupComboBox.Items[0];
-        }
-      }
-    }
-
-    private string[] GetColumnNames(IEnumerable<IRun> runs) {
-      string parameterName = (string)groupComboBox.SelectedItem;
-      var r = runs.Where(x => x.Parameters.ContainsKey(parameterName));
-      return r.Select(x => ((dynamic)x.Parameters[parameterName]).Value).Distinct().Select(x => (string)x.ToString()).ToArray();
-    }
-
-    private void UpdateResultComboBox() {
-      resultComboBox.Items.Clear();
-      var results = (from run in Content
-                     where run.Visible
-                     from result in run.Results
-                     where result.Value is IntValue || result.Value is DoubleValue
-                     select result.Key).Distinct().ToArray();
-
-      resultComboBox.Items.AddRange(results);
-      if (resultComboBox.Items.Count > 0) resultComboBox.SelectedItem = resultComboBox.Items[0];
-    }
-
-    private void FillCompComboBox() {
-      string parameterName = (string)groupComboBox.SelectedItem;
-      if (parameterName != null) {
-        string resultName = (string)resultComboBox.SelectedItem;
-        if (resultName != null) {
-          var runs = Content.Where(x => x.Results.ContainsKey(resultName) && x.Visible);
-          var columnNames = GetColumnNames(runs).ToList();
-          groupCompComboBox.Items.Clear();
-          columnNames.ForEach(x => groupCompComboBox.Items.Add(x));
-          if (groupCompComboBox.Items.Count > 0) groupCompComboBox.SelectedItem = groupCompComboBox.Items[0];
-        }
-      }
-    }
-
-    private void RebuildDataTable() {
-      string parameterName = (string)groupComboBox.SelectedItem;
-      if (parameterName != null) {
-        string resultName = (string)resultComboBox.SelectedItem;
-
-        var runs = Content.Where(x => x.Results.ContainsKey(resultName) && x.Visible);
-        var columnNames = GetColumnNames(runs);
-        var groups = GetGroups(columnNames, runs);
-        data = new double[columnNames.Count()][];
-
-        DoubleMatrix dt = new DoubleMatrix(groups.Select(x => x.Count()).Max(), columnNames.Count());
-        dt.ColumnNames = columnNames;
-        DataTable histogramDataTable = new DataTable(resultName);
-
-        for (int i = 0; i < columnNames.Count(); i++) {
-          int j = 0;
-          data[i] = new double[groups[i].Count()];
-          DataRow row = new DataRow(columnNames[i]);
-          row.VisualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Histogram;
-          histogramDataTable.Rows.Add(row);
-
-          foreach (IRun run in groups[i]) {
-            dt[j, i] = (double)((dynamic)run.Results[resultName]).Value;
-            data[i][j] = dt[j, i];
-            row.Values.Add(dt[j, i]);
-            j++;
-          }
-        }
-
-        GenerateChart(histogramDataTable);
-        stringConvertibleMatrixView.Content = dt;
-      }
-    }
-
-    private void GenerateChart(DataTable histogramTable) {
-      foreach (var row in histogramTable.Rows) {
-        histogramControl.AddPoints(row.Name, row.Values, true);
-      }
-    }
-
-    private List<IEnumerable<IRun>> GetGroups(string[] columnNames, IEnumerable<IRun> runs) {
-      List<IEnumerable<IRun>> runCols = new List<IEnumerable<IRun>>();
-      string parameterName = (string)groupComboBox.SelectedItem;
-
-      foreach (string cn in columnNames) {
-        var tmpRuns = runs.Where(x => ((string)((dynamic)x.Parameters[parameterName]).Value.ToString()) == cn);
-        runCols.Add(tmpRuns);
-      }
-
-      return runCols;
-    }
-
-    private void ResetUI() {
-      normalityLabel.Image = null;
-      groupCompLabel.Image = null;
-      pairwiseLabel.Image = null;
-      pValTextBox.Text = string.Empty;
-      equalDistsTextBox.Text = string.Empty;
-    }
-
-    private void resultComboBox_SelectedValueChanged(object sender, EventArgs e) {
-      RebuildDataTable();
-      ResetUI();
-      CalculateValues();
-    }
-
-    private void groupComboBox_SelectedValueChanged(object sender, EventArgs e) {
-      FillCompComboBox();
-      RebuildDataTable();
-      ResetUI();
-      CalculateValues();
-    }
-
-    private bool VerifyDataLength(bool showMessage) {
-      if (data == null || data.Length == 0)
-        return false;
-
-      //alglib needs at least 5 samples for computation
-      if (data.Any(x => x.Length <= requiredSampleSize)) {
-        if (showMessage)
-          MessageBox.Show(this, "You need to choose samples with a size greater 5.", "HeuristicLab", MessageBoxButtons.OK,
-            MessageBoxIcon.Error);
-        return false;
-      }
-      return true;
-    }
-
-    private void CalculateValues() {
-      if (!VerifyDataLength(true))
-        return;
-
-      if (data != null) {
-        MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>()
-          .AddOperationProgressToView(this, "Calculating...");
-
-        string curItem = (string)groupCompComboBox.SelectedItem;
-        Task.Factory.StartNew(() => CalculateValuesAsync(curItem));
-      }
-    }
-
-    private void CalculateValuesAsync(string groupName) {
-      TestAllGroups();
-      CalculateNormality();
-      CalculateNormalityDetails();
-      CalculatePairwiseTest(groupName);
-      CalculatePairwiseTestDetails(groupName);
-
-      MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>().RemoveOperationProgressFromView(this);
-    }
-
-    private void CalculatePairwise(string groupName) {
-      if (!VerifyDataLength(false))
-        return;
-
-      MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>().AddOperationProgressToView(pairwiseTestGroupBox, "Calculating...");
-      Task.Factory.StartNew(() => CalculatePairwiseAsync(groupName));
-    }
-
-    private void CalculatePairwiseAsync(string groupName) {
-      CalculatePairwiseTest(groupName);
-      CalculatePairwiseTestDetails(groupName);
-
-      MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>().RemoveOperationProgressFromView(pairwiseTestGroupBox);
-    }
-
-    private void TestAllGroups() {
-      double pval = KruskalWallisTest.Test(data);
-      pValTextBox.Text = pval.ToString();
-      if (pval < significanceLevel) {
-        this.Invoke(new Action(() => { groupCompLabel.Image = HeuristicLab.Analysis.Statistics.Resources.Default; }));
-      } else {
-        this.Invoke(new Action(() => { groupCompLabel.Image = HeuristicLab.Common.Resources.VSImageLibrary.Warning; }));
-      }
-    }
-
-    private void CalculateNormality() {
-      double val;
-      List<double> res = new List<double>();
-
-      for (int i = 0; i < data.Length; i++) {
-        alglib.jarqueberatest(data[i], data[i].Length, out val);
-        res.Add(val);
-      }
-
-      // p-value is below significance level and thus the null hypothesis (data is normally distributed) is rejected. 
-      if (res.Any(x => x < significanceLevel)) {
-        this.Invoke(new Action(() => { normalityLabel.Image = HeuristicLab.Common.Resources.VSImageLibrary.Warning; }));
-      } else {
-        this.Invoke(new Action(() => { normalityLabel.Image = HeuristicLab.Analysis.Statistics.Resources.Default; }));
-      }
-    }
-
-    private void CalculateNormalityDetails() {
-      DoubleMatrix pValsMatrix = new DoubleMatrix(1, stringConvertibleMatrixView.Content.Columns);
-      pValsMatrix.ColumnNames = stringConvertibleMatrixView.Content.ColumnNames;
-      pValsMatrix.RowNames = new string[] { "p-Value" };
-
-      double val;
-      for (int i = 0; i < data.Length; i++) {
-        alglib.jarqueberatest(data[i], data[i].Length, out val);
-        pValsMatrix[0, i] = val;
-      }
-
-      this.Invoke(new Action(() => {
-        normalityStringConvertibleMatrixView.Content = pValsMatrix;
-        normalityStringConvertibleMatrixView.DataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
-      }));
-    }
-
-    private void CalculatePairwiseTest(string groupName) {
-      int colIndex = 0;
-      IEnumerable<string> columnNames = null;
-      this.Invoke(new Action(() => { columnNames = stringConvertibleMatrixView.Content.ColumnNames; }));
-
-      foreach (string col in columnNames) {
-        if (col == groupName) {
-          break;
-        }
-        colIndex++;
-      }
-
-      double[][] newData = FilterDataForPairwiseTest(colIndex);
-      int cnt = 0;
-      for (int i = 0; i < newData.Length; i++) {
-        double mwuBothtails = PairwiseTest.MannWhitneyUTest(data[colIndex], newData[i]);
-        if (mwuBothtails > significanceLevel) {
-          cnt++;
-        }
-      }
-
-      double ratio = ((double)cnt) / (data.Length - 1) * 100.0;
-      equalDistsTextBox.Text = ratio.ToString() + " %";
-
-      if (cnt == 0) {
-        this.Invoke(new Action(() => { pairwiseLabel.Image = HeuristicLab.Analysis.Statistics.Resources.Default; }));
-      } else {
-        this.Invoke(new Action(() => { pairwiseLabel.Image = HeuristicLab.Common.Resources.VSImageLibrary.Warning; }));
-      }
-    }
-
-    private double[][] FilterDataForPairwiseTest(int columnToRemove) {
-      double[][] newData = new double[data.Length - 1][];
-
-      int i = 0;
-      int l = 0;
-      while (i < data.Length) {
-        if (i != columnToRemove) {
-          double[] row = new double[data[i].Length - 1];
-          newData[l] = row;
-
-          int j = 0, k = 0;
-          while (j < row.Length) {
-            if (i != columnToRemove) {
-              newData[l][j] = data[i][k];
-              j++;
-              k++;
-            } else {
-              k++;
-            }
-          }
-          i++;
-          l++;
-        } else {
-          i++;
-        }
-      }
-      return newData;
-    }
-
-    private void CalculatePairwiseTestDetails(string groupName) {
-      int colIndex = 0;
-      IEnumerable<string> columnNames = null;
-      this.Invoke(new Action(() => { columnNames = stringConvertibleMatrixView.Content.ColumnNames; }));
-
-      foreach (string col in columnNames) {
-        if (col == groupName) {
-          break;
-        }
-        colIndex++;
-      }
-
-      double[][] newData = FilterDataForPairwiseTest(colIndex);
-
-      columnNames = columnNames.Where(x => x != groupName).ToList();
-
-      var rowNames = new string[] { "p-Value of Mann-Whitney U", "Adjusted p-Value of Mann-Whitney U", 
-            "p-Value of T-Test", "Adjusted p-Value of T-Test", "Cohen's d", "Hedges' g" };
-
-      DoubleMatrix pValsMatrix = new DoubleMatrix(rowNames.Length, columnNames.Count());
-      pValsMatrix.ColumnNames = columnNames;
-      pValsMatrix.RowNames = rowNames;
-
-      double mwuBothtails;
-      double tTestBothTails;
-      double[] mwuPValues = new double[newData.Length];
-      double[] tTestPValues = new double[newData.Length];
-      bool[] decision = null;
-      double[] adjustedMwuPValues = null;
-      double[] adjustedTtestPValues = null;
-
-      for (int i = 0; i < newData.Length; i++) {
-        mwuBothtails = PairwiseTest.MannWhitneyUTest(data[colIndex], newData[i]);
-        tTestBothTails = PairwiseTest.TTest(data[colIndex], newData[i]);
-        mwuPValues[i] = mwuBothtails;
-        tTestPValues[i] = tTestBothTails;
-      }
-
-      adjustedMwuPValues = BonferroniHolm.Calculate(significanceLevel, mwuPValues, out decision);
-      adjustedTtestPValues = BonferroniHolm.Calculate(significanceLevel, tTestPValues, out decision);
-
-      for (int i = 0; i < newData.Length; i++) {
-        pValsMatrix[0, i] = mwuPValues[i];
-        pValsMatrix[1, i] = adjustedMwuPValues[i];
-        pValsMatrix[2, i] = tTestPValues[i];
-        pValsMatrix[3, i] = adjustedTtestPValues[i];
-        pValsMatrix[4, i] = SampleSizeDetermination.CalculateCohensD(data[colIndex], newData[i]);
-        pValsMatrix[5, i] = SampleSizeDetermination.CalculateHedgesG(data[colIndex], newData[i]);
-      }
-
-      this.Invoke(new Action(() => {
-        pairwiseStringConvertibleMatrixView.Content = pValsMatrix;
-        pairwiseStringConvertibleMatrixView.DataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
-      }));
-    }
-
-    private void openBoxPlotToolStripMenuItem_Click(object sender, EventArgs e) {
-      RunCollectionBoxPlotView boxplotView = new RunCollectionBoxPlotView();
-      boxplotView.Content = Content;
-      // TODO: enable as soon as we move to HeuristicLab.Optimization.Views
-      // boxplotView.xAxisComboBox.SelectedItem = xAxisComboBox.SelectedItem;
-      // boxplotView.yAxisComboBox.SelectedItem = yAxisComboBox.SelectedItem;
-      boxplotView.Show();
-    }
-
-    private void groupCompComboBox_SelectedValueChanged(object sender, EventArgs e) {
-      string curItem = (string)groupCompComboBox.SelectedItem;
-      CalculatePairwise(curItem);
-    }
-  }
-}
Index: anches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.designer.cs
===================================================================
--- /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.designer.cs	(revision 11692)
+++ 	(revision )
@@ -1,524 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.Analysis.Statistics {
-  partial class StatisticalTestingView {
-    /// <summary>
-    /// Required designer variable.
-    /// </summary>
-    private System.ComponentModel.IContainer components = null;
-
-    /// <summary>
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing) {
-      if (disposing && (components != null)) {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Windows Form Designer generated code
-
-    /// <summary>
-    /// Required method for Designer support - do not modify
-    /// the contents of this method with the code editor.
-    /// </summary>
-    private void InitializeComponent() {
-      this.components = new System.ComponentModel.Container();
-      this.stringConvertibleMatrixView = new HeuristicLab.Data.Views.StringConvertibleMatrixView();
-      this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
-      this.openBoxPlotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-      this.groupByLabel = new System.Windows.Forms.Label();
-      this.label1 = new System.Windows.Forms.Label();
-      this.resultComboBox = new System.Windows.Forms.ComboBox();
-      this.lblPVal = new System.Windows.Forms.Label();
-      this.pValTextBox = new System.Windows.Forms.TextBox();
-      this.groupComboBox = new System.Windows.Forms.ComboBox();
-      this.splitContainer1 = new System.Windows.Forms.SplitContainer();
-      this.splitContainer3 = new System.Windows.Forms.SplitContainer();
-      this.pairwiseTestGroupBox = new System.Windows.Forms.GroupBox();
-      this.pairwiseStringConvertibleMatrixView = new HeuristicLab.Data.Views.StringConvertibleMatrixView();
-      this.pairwiseLabel = new System.Windows.Forms.Label();
-      this.label3 = new System.Windows.Forms.Label();
-      this.equalDistsTextBox = new System.Windows.Forms.TextBox();
-      this.label2 = new System.Windows.Forms.Label();
-      this.groupCompComboBox = new System.Windows.Forms.ComboBox();
-      this.allGroupTestGroupBox = new System.Windows.Forms.GroupBox();
-      this.groupCompLabel = new System.Windows.Forms.Label();
-      this.normalityGroupBox = new System.Windows.Forms.GroupBox();
-      this.label4 = new System.Windows.Forms.Label();
-      this.normalityStringConvertibleMatrixView = new HeuristicLab.Data.Views.StringConvertibleMatrixView();
-      this.normalityLabel = new System.Windows.Forms.Label();
-      this.selectDataGroupBox = new System.Windows.Forms.GroupBox();
-      this.tabControl = new System.Windows.Forms.TabControl();
-      this.tabPage1 = new System.Windows.Forms.TabPage();
-      this.tabPage2 = new System.Windows.Forms.TabPage();
-      this.histogramControl = new HeuristicLab.Analysis.Views.HistogramControl();
-      this.contextMenuStrip1.SuspendLayout();
-      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
-      this.splitContainer1.Panel1.SuspendLayout();
-      this.splitContainer1.Panel2.SuspendLayout();
-      this.splitContainer1.SuspendLayout();
-      ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
-      this.splitContainer3.Panel1.SuspendLayout();
-      this.splitContainer3.Panel2.SuspendLayout();
-      this.splitContainer3.SuspendLayout();
-      this.pairwiseTestGroupBox.SuspendLayout();
-      this.allGroupTestGroupBox.SuspendLayout();
-      this.normalityGroupBox.SuspendLayout();
-      this.selectDataGroupBox.SuspendLayout();
-      this.tabControl.SuspendLayout();
-      this.tabPage1.SuspendLayout();
-      this.tabPage2.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // stringConvertibleMatrixView
-      // 
-      this.stringConvertibleMatrixView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.stringConvertibleMatrixView.Caption = "StringConvertibleMatrix View";
-      this.stringConvertibleMatrixView.Content = null;
-      this.stringConvertibleMatrixView.ContextMenuStrip = this.contextMenuStrip1;
-      this.stringConvertibleMatrixView.Location = new System.Drawing.Point(3, 3);
-      this.stringConvertibleMatrixView.Name = "stringConvertibleMatrixView";
-      this.stringConvertibleMatrixView.ReadOnly = false;
-      this.stringConvertibleMatrixView.ShowRowsAndColumnsTextBox = false;
-      this.stringConvertibleMatrixView.ShowStatisticalInformation = true;
-      this.stringConvertibleMatrixView.Size = new System.Drawing.Size(567, 523);
-      this.stringConvertibleMatrixView.TabIndex = 0;
-      // 
-      // contextMenuStrip1
-      // 
-      this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.openBoxPlotToolStripMenuItem});
-      this.contextMenuStrip1.Name = "contextMenuStrip1";
-      this.contextMenuStrip1.Size = new System.Drawing.Size(175, 26);
-      // 
-      // openBoxPlotToolStripMenuItem
-      // 
-      this.openBoxPlotToolStripMenuItem.Name = "openBoxPlotToolStripMenuItem";
-      this.openBoxPlotToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
-      this.openBoxPlotToolStripMenuItem.Text = "Open BoxPlot View";
-      this.openBoxPlotToolStripMenuItem.Click += new System.EventHandler(this.openBoxPlotToolStripMenuItem_Click);
-      // 
-      // groupByLabel
-      // 
-      this.groupByLabel.AutoSize = true;
-      this.groupByLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.groupByLabel.Location = new System.Drawing.Point(3, 6);
-      this.groupByLabel.Name = "groupByLabel";
-      this.groupByLabel.Size = new System.Drawing.Size(53, 13);
-      this.groupByLabel.TabIndex = 7;
-      this.groupByLabel.Text = "Group by:";
-      // 
-      // label1
-      // 
-      this.label1.AutoSize = true;
-      this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.label1.Location = new System.Drawing.Point(3, 6);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(40, 13);
-      this.label1.TabIndex = 6;
-      this.label1.Text = "Result:";
-      // 
-      // resultComboBox
-      // 
-      this.resultComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.resultComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-      this.resultComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.resultComboBox.FormattingEnabled = true;
-      this.resultComboBox.Location = new System.Drawing.Point(62, 3);
-      this.resultComboBox.Name = "resultComboBox";
-      this.resultComboBox.Size = new System.Drawing.Size(250, 21);
-      this.resultComboBox.TabIndex = 5;
-      this.resultComboBox.SelectedValueChanged += new System.EventHandler(this.resultComboBox_SelectedValueChanged);
-      // 
-      // lblPVal
-      // 
-      this.lblPVal.AutoSize = true;
-      this.lblPVal.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.lblPVal.Location = new System.Drawing.Point(6, 22);
-      this.lblPVal.Name = "lblPVal";
-      this.lblPVal.Size = new System.Drawing.Size(46, 13);
-      this.lblPVal.TabIndex = 12;
-      this.lblPVal.Text = "p-Value:";
-      this.lblPVal.TextAlign = System.Drawing.ContentAlignment.TopRight;
-      // 
-      // pValTextBox
-      // 
-      this.pValTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.pValTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.pValTextBox.Location = new System.Drawing.Point(58, 19);
-      this.pValTextBox.Name = "pValTextBox";
-      this.pValTextBox.ReadOnly = true;
-      this.pValTextBox.Size = new System.Drawing.Size(241, 20);
-      this.pValTextBox.TabIndex = 13;
-      // 
-      // groupComboBox
-      // 
-      this.groupComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.groupComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-      this.groupComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.groupComboBox.FormattingEnabled = true;
-      this.groupComboBox.Location = new System.Drawing.Point(62, 3);
-      this.groupComboBox.Name = "groupComboBox";
-      this.groupComboBox.Size = new System.Drawing.Size(250, 21);
-      this.groupComboBox.TabIndex = 14;
-      this.groupComboBox.SelectedValueChanged += new System.EventHandler(this.groupComboBox_SelectedValueChanged);
-      // 
-      // splitContainer1
-      // 
-      this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.splitContainer1.Location = new System.Drawing.Point(6, 19);
-      this.splitContainer1.Name = "splitContainer1";
-      this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
-      // 
-      // splitContainer1.Panel1
-      // 
-      this.splitContainer1.Panel1.Controls.Add(this.resultComboBox);
-      this.splitContainer1.Panel1.Controls.Add(this.label1);
-      // 
-      // splitContainer1.Panel2
-      // 
-      this.splitContainer1.Panel2.Controls.Add(this.groupByLabel);
-      this.splitContainer1.Panel2.Controls.Add(this.groupComboBox);
-      this.splitContainer1.Size = new System.Drawing.Size(315, 54);
-      this.splitContainer1.SplitterDistance = 25;
-      this.splitContainer1.TabIndex = 18;
-      // 
-      // splitContainer3
-      // 
-      this.splitContainer3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.splitContainer3.Location = new System.Drawing.Point(6, 6);
-      this.splitContainer3.Name = "splitContainer3";
-      // 
-      // splitContainer3.Panel1
-      // 
-      this.splitContainer3.Panel1.Controls.Add(this.stringConvertibleMatrixView);
-      // 
-      // splitContainer3.Panel2
-      // 
-      this.splitContainer3.Panel2.Controls.Add(this.pairwiseTestGroupBox);
-      this.splitContainer3.Panel2.Controls.Add(this.allGroupTestGroupBox);
-      this.splitContainer3.Panel2.Controls.Add(this.normalityGroupBox);
-      this.splitContainer3.Panel2.Controls.Add(this.selectDataGroupBox);
-      this.splitContainer3.Size = new System.Drawing.Size(910, 529);
-      this.splitContainer3.SplitterDistance = 573;
-      this.splitContainer3.TabIndex = 20;
-      // 
-      // pairwiseTestGroupBox
-      // 
-      this.pairwiseTestGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.pairwiseTestGroupBox.Controls.Add(this.pairwiseStringConvertibleMatrixView);
-      this.pairwiseTestGroupBox.Controls.Add(this.pairwiseLabel);
-      this.pairwiseTestGroupBox.Controls.Add(this.label3);
-      this.pairwiseTestGroupBox.Controls.Add(this.equalDistsTextBox);
-      this.pairwiseTestGroupBox.Controls.Add(this.label2);
-      this.pairwiseTestGroupBox.Controls.Add(this.groupCompComboBox);
-      this.pairwiseTestGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.pairwiseTestGroupBox.Location = new System.Drawing.Point(3, 289);
-      this.pairwiseTestGroupBox.Name = "pairwiseTestGroupBox";
-      this.pairwiseTestGroupBox.Size = new System.Drawing.Size(327, 218);
-      this.pairwiseTestGroupBox.TabIndex = 22;
-      this.pairwiseTestGroupBox.TabStop = false;
-      this.pairwiseTestGroupBox.Text = "4. Pairwise Test for Inequalities in Distributions";
-      // 
-      // pairwiseStringConvertibleMatrixView
-      // 
-      this.pairwiseStringConvertibleMatrixView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.pairwiseStringConvertibleMatrixView.Caption = "StringConvertibleMatrix View";
-      this.pairwiseStringConvertibleMatrixView.Content = null;
-      this.pairwiseStringConvertibleMatrixView.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.pairwiseStringConvertibleMatrixView.Location = new System.Drawing.Point(6, 72);
-      this.pairwiseStringConvertibleMatrixView.Name = "pairwiseStringConvertibleMatrixView";
-      this.pairwiseStringConvertibleMatrixView.ReadOnly = false;
-      this.pairwiseStringConvertibleMatrixView.ShowRowsAndColumnsTextBox = false;
-      this.pairwiseStringConvertibleMatrixView.ShowStatisticalInformation = false;
-      this.pairwiseStringConvertibleMatrixView.Size = new System.Drawing.Size(315, 140);
-      this.pairwiseStringConvertibleMatrixView.TabIndex = 19;
-      // 
-      // pairwiseLabel
-      // 
-      this.pairwiseLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-      this.pairwiseLabel.AutoSize = true;
-      this.pairwiseLabel.Location = new System.Drawing.Point(305, 47);
-      this.pairwiseLabel.MaximumSize = new System.Drawing.Size(16, 16);
-      this.pairwiseLabel.MinimumSize = new System.Drawing.Size(16, 16);
-      this.pairwiseLabel.Name = "pairwiseLabel";
-      this.pairwiseLabel.Size = new System.Drawing.Size(16, 16);
-      this.pairwiseLabel.TabIndex = 18;
-      // 
-      // label3
-      // 
-      this.label3.AutoSize = true;
-      this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.label3.Location = new System.Drawing.Point(6, 49);
-      this.label3.Name = "label3";
-      this.label3.Size = new System.Drawing.Size(74, 13);
-      this.label3.TabIndex = 18;
-      this.label3.Text = "Equal Groups:";
-      this.label3.TextAlign = System.Drawing.ContentAlignment.TopRight;
-      // 
-      // equalDistsTextBox
-      // 
-      this.equalDistsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.equalDistsTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.equalDistsTextBox.Location = new System.Drawing.Point(123, 46);
-      this.equalDistsTextBox.Name = "equalDistsTextBox";
-      this.equalDistsTextBox.ReadOnly = true;
-      this.equalDistsTextBox.Size = new System.Drawing.Size(176, 20);
-      this.equalDistsTextBox.TabIndex = 18;
-      // 
-      // label2
-      // 
-      this.label2.AutoSize = true;
-      this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.label2.Location = new System.Drawing.Point(6, 22);
-      this.label2.Name = "label2";
-      this.label2.Size = new System.Drawing.Size(111, 13);
-      this.label2.TabIndex = 18;
-      this.label2.Text = "Group for comparison:";
-      // 
-      // groupCompComboBox
-      // 
-      this.groupCompComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.groupCompComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-      this.groupCompComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.groupCompComboBox.FormattingEnabled = true;
-      this.groupCompComboBox.Location = new System.Drawing.Point(123, 19);
-      this.groupCompComboBox.Name = "groupCompComboBox";
-      this.groupCompComboBox.Size = new System.Drawing.Size(198, 21);
-      this.groupCompComboBox.TabIndex = 17;
-      this.groupCompComboBox.SelectedValueChanged += new System.EventHandler(this.groupCompComboBox_SelectedValueChanged);
-      // 
-      // allGroupTestGroupBox
-      // 
-      this.allGroupTestGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.allGroupTestGroupBox.Controls.Add(this.groupCompLabel);
-      this.allGroupTestGroupBox.Controls.Add(this.lblPVal);
-      this.allGroupTestGroupBox.Controls.Add(this.pValTextBox);
-      this.allGroupTestGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.allGroupTestGroupBox.Location = new System.Drawing.Point(3, 237);
-      this.allGroupTestGroupBox.Name = "allGroupTestGroupBox";
-      this.allGroupTestGroupBox.Size = new System.Drawing.Size(327, 46);
-      this.allGroupTestGroupBox.TabIndex = 21;
-      this.allGroupTestGroupBox.TabStop = false;
-      this.allGroupTestGroupBox.Text = "3. Kruskal Wallis Test for Inequalities in Distributions";
-      // 
-      // groupCompLabel
-      // 
-      this.groupCompLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-      this.groupCompLabel.AutoSize = true;
-      this.groupCompLabel.Location = new System.Drawing.Point(305, 22);
-      this.groupCompLabel.MaximumSize = new System.Drawing.Size(16, 16);
-      this.groupCompLabel.MinimumSize = new System.Drawing.Size(16, 16);
-      this.groupCompLabel.Name = "groupCompLabel";
-      this.groupCompLabel.Size = new System.Drawing.Size(16, 16);
-      this.groupCompLabel.TabIndex = 17;
-      // 
-      // normalityGroupBox
-      // 
-      this.normalityGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.normalityGroupBox.Controls.Add(this.label4);
-      this.normalityGroupBox.Controls.Add(this.normalityStringConvertibleMatrixView);
-      this.normalityGroupBox.Controls.Add(this.normalityLabel);
-      this.normalityGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.normalityGroupBox.Location = new System.Drawing.Point(3, 88);
-      this.normalityGroupBox.Name = "normalityGroupBox";
-      this.normalityGroupBox.Size = new System.Drawing.Size(327, 143);
-      this.normalityGroupBox.TabIndex = 20;
-      this.normalityGroupBox.TabStop = false;
-      this.normalityGroupBox.Text = "2. Jarque-Bera Test for Normal Distribution";
-      // 
-      // label4
-      // 
-      this.label4.AutoSize = true;
-      this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.label4.Location = new System.Drawing.Point(6, 16);
-      this.label4.Name = "label4";
-      this.label4.Size = new System.Drawing.Size(135, 13);
-      this.label4.TabIndex = 18;
-      this.label4.Text = "Data is normally distributed:";
-      // 
-      // normalityStringConvertibleMatrixView
-      // 
-      this.normalityStringConvertibleMatrixView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.normalityStringConvertibleMatrixView.Caption = "StringConvertibleMatrix View";
-      this.normalityStringConvertibleMatrixView.Content = null;
-      this.normalityStringConvertibleMatrixView.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.normalityStringConvertibleMatrixView.Location = new System.Drawing.Point(6, 35);
-      this.normalityStringConvertibleMatrixView.Name = "normalityStringConvertibleMatrixView";
-      this.normalityStringConvertibleMatrixView.ReadOnly = false;
-      this.normalityStringConvertibleMatrixView.ShowRowsAndColumnsTextBox = false;
-      this.normalityStringConvertibleMatrixView.ShowStatisticalInformation = false;
-      this.normalityStringConvertibleMatrixView.Size = new System.Drawing.Size(312, 102);
-      this.normalityStringConvertibleMatrixView.TabIndex = 17;
-      // 
-      // normalityLabel
-      // 
-      this.normalityLabel.AutoSize = true;
-      this.normalityLabel.Location = new System.Drawing.Point(156, 16);
-      this.normalityLabel.MaximumSize = new System.Drawing.Size(16, 16);
-      this.normalityLabel.MinimumSize = new System.Drawing.Size(16, 16);
-      this.normalityLabel.Name = "normalityLabel";
-      this.normalityLabel.Size = new System.Drawing.Size(16, 16);
-      this.normalityLabel.TabIndex = 16;
-      // 
-      // selectDataGroupBox
-      // 
-      this.selectDataGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.selectDataGroupBox.Controls.Add(this.splitContainer1);
-      this.selectDataGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.selectDataGroupBox.Location = new System.Drawing.Point(3, 3);
-      this.selectDataGroupBox.Name = "selectDataGroupBox";
-      this.selectDataGroupBox.Size = new System.Drawing.Size(327, 79);
-      this.selectDataGroupBox.TabIndex = 19;
-      this.selectDataGroupBox.TabStop = false;
-      this.selectDataGroupBox.Text = "1. Select Data";
-      // 
-      // tabControl
-      // 
-      this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.tabControl.Controls.Add(this.tabPage1);
-      this.tabControl.Controls.Add(this.tabPage2);
-      this.tabControl.Location = new System.Drawing.Point(3, 3);
-      this.tabControl.Name = "tabControl";
-      this.tabControl.SelectedIndex = 0;
-      this.tabControl.Size = new System.Drawing.Size(930, 567);
-      this.tabControl.TabIndex = 21;
-      // 
-      // tabPage1
-      // 
-      this.tabPage1.Controls.Add(this.splitContainer3);
-      this.tabPage1.Location = new System.Drawing.Point(4, 22);
-      this.tabPage1.Name = "tabPage1";
-      this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
-      this.tabPage1.Size = new System.Drawing.Size(922, 541);
-      this.tabPage1.TabIndex = 0;
-      this.tabPage1.Text = "Tests";
-      this.tabPage1.UseVisualStyleBackColor = true;
-      // 
-      // tabPage2
-      // 
-      this.tabPage2.Controls.Add(this.histogramControl);
-      this.tabPage2.Location = new System.Drawing.Point(4, 22);
-      this.tabPage2.Name = "tabPage2";
-      this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
-      this.tabPage2.Size = new System.Drawing.Size(922, 541);
-      this.tabPage2.TabIndex = 1;
-      this.tabPage2.Text = "Histogram";
-      this.tabPage2.UseVisualStyleBackColor = true;
-      // 
-      // dataTableView
-      // 
-      this.histogramControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.histogramControl.Location = new System.Drawing.Point(6, 6);
-      this.histogramControl.Name = "dataTableView";
-      this.histogramControl.Size = new System.Drawing.Size(910, 529);
-      this.histogramControl.TabIndex = 0;
-      // 
-      // StatisticalTestingView
-      // 
-      this.Controls.Add(this.tabControl);
-      this.Name = "StatisticalTestingView";
-      this.Size = new System.Drawing.Size(936, 573);
-      this.contextMenuStrip1.ResumeLayout(false);
-      this.splitContainer1.Panel1.ResumeLayout(false);
-      this.splitContainer1.Panel1.PerformLayout();
-      this.splitContainer1.Panel2.ResumeLayout(false);
-      this.splitContainer1.Panel2.PerformLayout();
-      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
-      this.splitContainer1.ResumeLayout(false);
-      this.splitContainer3.Panel1.ResumeLayout(false);
-      this.splitContainer3.Panel2.ResumeLayout(false);
-      ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
-      this.splitContainer3.ResumeLayout(false);
-      this.pairwiseTestGroupBox.ResumeLayout(false);
-      this.pairwiseTestGroupBox.PerformLayout();
-      this.allGroupTestGroupBox.ResumeLayout(false);
-      this.allGroupTestGroupBox.PerformLayout();
-      this.normalityGroupBox.ResumeLayout(false);
-      this.normalityGroupBox.PerformLayout();
-      this.selectDataGroupBox.ResumeLayout(false);
-      this.tabControl.ResumeLayout(false);
-      this.tabPage1.ResumeLayout(false);
-      this.tabPage2.ResumeLayout(false);
-      this.ResumeLayout(false);
-
-    }
-    #endregion
-
-    private HeuristicLab.Data.Views.StringConvertibleMatrixView stringConvertibleMatrixView;
-    private System.Windows.Forms.Label groupByLabel;
-    private System.Windows.Forms.Label label1;
-    private System.Windows.Forms.ComboBox resultComboBox;
-    private System.Windows.Forms.Label lblPVal;
-    private System.Windows.Forms.TextBox pValTextBox;
-    private System.Windows.Forms.ComboBox groupComboBox;
-    private System.Windows.Forms.SplitContainer splitContainer1;
-    private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
-    private System.Windows.Forms.ToolStripMenuItem openBoxPlotToolStripMenuItem;
-    private System.Windows.Forms.SplitContainer splitContainer3;
-    private System.Windows.Forms.GroupBox selectDataGroupBox;
-    private System.Windows.Forms.GroupBox normalityGroupBox;
-    private System.Windows.Forms.GroupBox pairwiseTestGroupBox;
-    private System.Windows.Forms.GroupBox allGroupTestGroupBox;
-    private System.Windows.Forms.Label normalityLabel;
-    private System.Windows.Forms.Label groupCompLabel;
-    private System.Windows.Forms.Label label2;
-    private System.Windows.Forms.ComboBox groupCompComboBox;
-    private System.Windows.Forms.Label label3;
-    private System.Windows.Forms.TextBox equalDistsTextBox;
-    private System.Windows.Forms.Label pairwiseLabel;
-    private Data.Views.StringConvertibleMatrixView normalityStringConvertibleMatrixView;
-    private Data.Views.StringConvertibleMatrixView pairwiseStringConvertibleMatrixView;
-    private System.Windows.Forms.Label label4;
-    private System.Windows.Forms.TabControl tabControl;
-    private System.Windows.Forms.TabPage tabPage1;
-    private System.Windows.Forms.TabPage tabPage2;
-    private HeuristicLab.Analysis.Views.HistogramControl histogramControl;
-  }
-}
Index: anches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.resx
===================================================================
--- /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestingView.resx	(revision 11692)
+++ 	(revision )
@@ -1,126 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>28, 18</value>
-  </metadata>
-  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>50</value>
-  </metadata>
-</root>
Index: /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsConfigurationDialog.Designer.cs
===================================================================
--- /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsConfigurationDialog.Designer.cs	(revision 11693)
+++ /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsConfigurationDialog.Designer.cs	(revision 11693)
@@ -0,0 +1,114 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Data.Views;
+
+namespace HeuristicLab.Analysis.Statistics {
+  partial class StatisticalTestsConfigurationDialog {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.label1 = new System.Windows.Forms.Label();
+      this.significanceLevelTextBox = new HeuristicLab.Data.Views.StringConvertibleValueView();
+      this.okButton = new System.Windows.Forms.Button();
+      this.SuspendLayout();
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(12, 14);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(97, 13);
+      this.label1.TabIndex = 0;
+      this.label1.Text = "Significance Level:";
+      // 
+      // significanceLevelTextBox
+      // 
+      this.significanceLevelTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.significanceLevelTextBox.Caption = "StringConvertibleValue View";
+      this.significanceLevelTextBox.Content = null;
+      this.significanceLevelTextBox.LabelVisible = false;
+      this.significanceLevelTextBox.Location = new System.Drawing.Point(115, 12);
+      this.significanceLevelTextBox.Name = "significanceLevelTextBox";
+      this.significanceLevelTextBox.ReadOnly = false;
+      this.significanceLevelTextBox.Size = new System.Drawing.Size(121, 20);
+      this.significanceLevelTextBox.TabIndex = 1;
+      // 
+      // okButton
+      // 
+      this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+      this.okButton.Location = new System.Drawing.Point(242, 10);
+      this.okButton.Name = "okButton";
+      this.okButton.Size = new System.Drawing.Size(51, 23);
+      this.okButton.TabIndex = 2;
+      this.okButton.Text = "Ok";
+      this.okButton.UseVisualStyleBackColor = true;
+      this.okButton.Click += new System.EventHandler(this.okButton_Click);
+      // 
+      // StatisticalTestsConfigurationDialog
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.ClientSize = new System.Drawing.Size(305, 42);
+      this.Controls.Add(this.okButton);
+      this.Controls.Add(this.significanceLevelTextBox);
+      this.Controls.Add(this.label1);
+      this.MaximizeBox = false;
+      this.MinimizeBox = false;
+      this.Name = "StatisticalTestsConfigurationDialog";
+      this.ShowIcon = false;
+      this.ShowInTaskbar = false;
+      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+      this.Text = "Statistical Tests Configuration";
+      this.TopMost = true;
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Label label1;
+    private StringConvertibleValueView significanceLevelTextBox;
+    private System.Windows.Forms.Button okButton;
+  }
+}
Index: /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsConfigurationDialog.cs
===================================================================
--- /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsConfigurationDialog.cs	(revision 11693)
+++ /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsConfigurationDialog.cs	(revision 11693)
@@ -0,0 +1,49 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Windows.Forms;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Analysis.Statistics {
+  public partial class StatisticalTestsConfigurationDialog : Form {
+
+    private StatisticalTestsView view;
+
+    public StatisticalTestsConfigurationDialog(StatisticalTestsView view) {
+      InitializeComponent();
+      this.view = view;
+      significanceLevelTextBox.Content = new DoubleValue(view.SignificanceLevel);
+    }
+
+    private void okButton_Click(object sender, System.EventArgs e) {
+      double newVal;
+
+      newVal = ((DoubleValue)significanceLevelTextBox.Content).Value;
+      if (newVal > 0 && newVal < 1) {
+        view.SignificanceLevel = newVal;
+        Close();
+      } else {
+        MessageBox.Show("Please enter a correct value between 0 and 1 for the significance level.", "HeuristicLab",
+          MessageBoxButtons.OK);
+      }
+    }
+  }
+}
Index: /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsView.cs
===================================================================
--- /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsView.cs	(revision 11693)
+++ /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsView.cs	(revision 11693)
@@ -0,0 +1,496 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using HeuristicLab.Collections;
+using HeuristicLab.Common;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Data;
+using HeuristicLab.MainForm;
+using HeuristicLab.Optimization;
+using HeuristicLab.Optimization.Views;
+
+namespace HeuristicLab.Analysis.Statistics {
+  [View("Statistical Tests", "HeuristicLab.Analysis.Statistics.InfoResources.StatisticalTestsInfo.rtf")]
+  [Content(typeof(RunCollection), false)]
+  public sealed partial class StatisticalTestsView : ItemView, IConfigureableView {
+    private double significanceLevel = 0.05;
+    private const int requiredSampleSize = 5;
+    private double[][] data;
+
+    public double SignificanceLevel {
+      get { return significanceLevel; }
+      set {
+        if (!significanceLevel.IsAlmost(value)) {
+          significanceLevel = value;
+          ResetUI();
+          CalculateValues();
+        }
+      }
+    }
+
+    public new RunCollection Content {
+      get { return (RunCollection)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public override bool ReadOnly {
+      get { return true; }
+      set { /*not needed because results are always readonly */}
+    }
+
+    public StatisticalTestsView() {
+      InitializeComponent();
+    }
+
+    public void ShowConfiguration() {
+      using (StatisticalTestsConfigurationDialog dlg = new StatisticalTestsConfigurationDialog(this)) {
+        dlg.ShowDialog(this);
+      }
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+
+      if (Content != null) {
+        UpdateResultComboBox();
+        UpdateGroupsComboBox();
+        FillCompComboBox();
+        RebuildDataTable();
+      }
+      UpdateCaption();
+    }
+
+    private void UpdateCaption() {
+      Caption = Content != null ? Content.OptimizerName + " Statistical Tests" : ViewAttribute.GetViewName(GetType());
+    }
+
+    #region events
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.ItemsAdded += new CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
+      Content.ItemsRemoved += new CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
+      Content.CollectionReset += new CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
+      Content.UpdateOfRunsInProgressChanged += Content_UpdateOfRunsInProgressChanged;
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+      Content.ItemsAdded -= new CollectionItemsChangedEventHandler<IRun>(Content_ItemsAdded);
+      Content.ItemsRemoved -= new CollectionItemsChangedEventHandler<IRun>(Content_ItemsRemoved);
+      Content.CollectionReset -= new CollectionItemsChangedEventHandler<IRun>(Content_CollectionReset);
+      Content.UpdateOfRunsInProgressChanged -= Content_UpdateOfRunsInProgressChanged;
+    }
+
+    private void Content_CollectionReset(object sender, CollectionItemsChangedEventArgs<IRun> e) {
+      RebuildDataTable();
+    }
+
+    private void Content_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<IRun> e) {
+      RebuildDataTable();
+    }
+
+    private void Content_ItemsAdded(object sender, CollectionItemsChangedEventArgs<IRun> e) {
+      RebuildDataTable();
+    }
+
+    void Content_UpdateOfRunsInProgressChanged(object sender, EventArgs e) {
+      if (!Content.UpdateOfRunsInProgress) {
+        RebuildDataTable();
+      }
+    }
+    #endregion
+
+    private void UpdateGroupsComboBox() {
+      groupComboBox.Items.Clear();
+
+      var parameters = (from run in Content
+                        where run.Visible
+                        from param in run.Parameters
+                        select param.Key).Distinct().ToArray();
+
+      foreach (var p in parameters) {
+        var variations = (from run in Content
+                          where run.Visible && run.Parameters.ContainsKey(p) &&
+                          (run.Parameters[p] is IntValue || run.Parameters[p] is DoubleValue ||
+                          run.Parameters[p] is StringValue || run.Parameters[p] is BoolValue)
+                          select ((dynamic)run.Parameters[p]).Value).Distinct();
+
+        if (variations.Count() > 1) {
+          groupComboBox.Items.Add(p);
+        }
+      }
+
+      if (groupComboBox.Items.Count > 0) {
+        //try to select something different than "Seed" or "Algorithm Name" as this makes no sense
+        //and takes a long time to group
+        List<int> possibleIndizes = new List<int>();
+        for (int i = 0; i < groupComboBox.Items.Count; i++) {
+          if (groupComboBox.Items[i].ToString() != "Seed"
+            && groupComboBox.Items[i].ToString() != "Algorithm Name") {
+            possibleIndizes.Add(i);
+          }
+        }
+
+        if (possibleIndizes.Count > 0) {
+          groupComboBox.SelectedItem = groupComboBox.Items[possibleIndizes.First()];
+        } else {
+          groupComboBox.SelectedItem = groupComboBox.Items[0];
+        }
+      }
+    }
+
+    private string[] GetColumnNames(IEnumerable<IRun> runs) {
+      string parameterName = (string)groupComboBox.SelectedItem;
+      var r = runs.Where(x => x.Parameters.ContainsKey(parameterName));
+      return r.Select(x => ((dynamic)x.Parameters[parameterName]).Value).Distinct().Select(x => (string)x.ToString()).ToArray();
+    }
+
+    private void UpdateResultComboBox() {
+      resultComboBox.Items.Clear();
+      var results = (from run in Content
+                     where run.Visible
+                     from result in run.Results
+                     where result.Value is IntValue || result.Value is DoubleValue
+                     select result.Key).Distinct().ToArray();
+
+      resultComboBox.Items.AddRange(results);
+      if (resultComboBox.Items.Count > 0) resultComboBox.SelectedItem = resultComboBox.Items[0];
+    }
+
+    private void FillCompComboBox() {
+      string parameterName = (string)groupComboBox.SelectedItem;
+      if (parameterName != null) {
+        string resultName = (string)resultComboBox.SelectedItem;
+        if (resultName != null) {
+          var runs = Content.Where(x => x.Results.ContainsKey(resultName) && x.Visible);
+          var columnNames = GetColumnNames(runs).ToList();
+          groupCompComboBox.Items.Clear();
+          columnNames.ForEach(x => groupCompComboBox.Items.Add(x));
+          if (groupCompComboBox.Items.Count > 0) groupCompComboBox.SelectedItem = groupCompComboBox.Items[0];
+        }
+      }
+    }
+
+    private void RebuildDataTable() {
+      string parameterName = (string)groupComboBox.SelectedItem;
+      if (parameterName != null) {
+        string resultName = (string)resultComboBox.SelectedItem;
+
+        var runs = Content.Where(x => x.Results.ContainsKey(resultName) && x.Visible);
+        var columnNames = GetColumnNames(runs);
+        var groups = GetGroups(columnNames, runs);
+        data = new double[columnNames.Count()][];
+
+        DoubleMatrix dt = new DoubleMatrix(groups.Select(x => x.Count()).Max(), columnNames.Count());
+        dt.ColumnNames = columnNames;
+        DataTable histogramDataTable = new DataTable(resultName);
+
+        for (int i = 0; i < columnNames.Count(); i++) {
+          int j = 0;
+          data[i] = new double[groups[i].Count()];
+          DataRow row = new DataRow(columnNames[i]);
+          row.VisualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Histogram;
+          histogramDataTable.Rows.Add(row);
+
+          foreach (IRun run in groups[i]) {
+            dt[j, i] = (double)((dynamic)run.Results[resultName]).Value;
+            data[i][j] = dt[j, i];
+            row.Values.Add(dt[j, i]);
+            j++;
+          }
+        }
+
+        GenerateChart(histogramDataTable);
+        stringConvertibleMatrixView.Content = dt;
+      }
+    }
+
+    private void GenerateChart(DataTable histogramTable) {
+      foreach (var row in histogramTable.Rows) {
+        histogramControl.AddPoints(row.Name, row.Values, true);
+      }
+    }
+
+    private List<IEnumerable<IRun>> GetGroups(string[] columnNames, IEnumerable<IRun> runs) {
+      List<IEnumerable<IRun>> runCols = new List<IEnumerable<IRun>>();
+      string parameterName = (string)groupComboBox.SelectedItem;
+
+      foreach (string cn in columnNames) {
+        var tmpRuns = runs.Where(x => ((string)((dynamic)x.Parameters[parameterName]).Value.ToString()) == cn);
+        runCols.Add(tmpRuns);
+      }
+
+      return runCols;
+    }
+
+    private void ResetUI() {
+      normalityLabel.Image = null;
+      groupCompLabel.Image = null;
+      pairwiseLabel.Image = null;
+      pValTextBox.Text = string.Empty;
+      equalDistsTextBox.Text = string.Empty;
+    }
+
+    private void resultComboBox_SelectedValueChanged(object sender, EventArgs e) {
+      RebuildDataTable();
+      ResetUI();
+      CalculateValues();
+    }
+
+    private void groupComboBox_SelectedValueChanged(object sender, EventArgs e) {
+      FillCompComboBox();
+      RebuildDataTable();
+      ResetUI();
+      CalculateValues();
+    }
+
+    private bool VerifyDataLength(bool showMessage) {
+      if (data == null || data.Length == 0)
+        return false;
+
+      //alglib needs at least 5 samples for computation
+      if (data.Any(x => x.Length <= requiredSampleSize)) {
+        if (showMessage)
+          MessageBox.Show(this, "You need to choose samples with a size greater 5.", "HeuristicLab", MessageBoxButtons.OK,
+            MessageBoxIcon.Error);
+        return false;
+      }
+      return true;
+    }
+
+    private void CalculateValues() {
+      if (!VerifyDataLength(true))
+        return;
+
+      if (data != null) {
+        MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>()
+          .AddOperationProgressToView(this, "Calculating...");
+
+        string curItem = (string)groupCompComboBox.SelectedItem;
+        Task.Factory.StartNew(() => CalculateValuesAsync(curItem));
+      }
+    }
+
+    private void CalculateValuesAsync(string groupName) {
+      TestAllGroups();
+      CalculateNormality();
+      CalculateNormalityDetails();
+      CalculatePairwiseTest(groupName);
+      CalculatePairwiseTestDetails(groupName);
+
+      MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>().RemoveOperationProgressFromView(this);
+    }
+
+    private void CalculatePairwise(string groupName) {
+      if (!VerifyDataLength(false))
+        return;
+
+      MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>().AddOperationProgressToView(pairwiseTestGroupBox, "Calculating...");
+      Task.Factory.StartNew(() => CalculatePairwiseAsync(groupName));
+    }
+
+    private void CalculatePairwiseAsync(string groupName) {
+      CalculatePairwiseTest(groupName);
+      CalculatePairwiseTestDetails(groupName);
+
+      MainFormManager.GetMainForm<HeuristicLab.MainForm.WindowsForms.MainForm>().RemoveOperationProgressFromView(pairwiseTestGroupBox);
+    }
+
+    private void TestAllGroups() {
+      double pval = KruskalWallisTest.Test(data);
+      pValTextBox.Text = pval.ToString();
+      if (pval < significanceLevel) {
+        this.Invoke(new Action(() => { groupCompLabel.Image = HeuristicLab.Analysis.Statistics.Resources.Default; }));
+      } else {
+        this.Invoke(new Action(() => { groupCompLabel.Image = HeuristicLab.Common.Resources.VSImageLibrary.Warning; }));
+      }
+    }
+
+    private void CalculateNormality() {
+      double val;
+      List<double> res = new List<double>();
+
+      for (int i = 0; i < data.Length; i++) {
+        alglib.jarqueberatest(data[i], data[i].Length, out val);
+        res.Add(val);
+      }
+
+      // p-value is below significance level and thus the null hypothesis (data is normally distributed) is rejected. 
+      if (res.Any(x => x < significanceLevel)) {
+        this.Invoke(new Action(() => { normalityLabel.Image = HeuristicLab.Common.Resources.VSImageLibrary.Warning; }));
+      } else {
+        this.Invoke(new Action(() => { normalityLabel.Image = HeuristicLab.Analysis.Statistics.Resources.Default; }));
+      }
+    }
+
+    private void CalculateNormalityDetails() {
+      DoubleMatrix pValsMatrix = new DoubleMatrix(1, stringConvertibleMatrixView.Content.Columns);
+      pValsMatrix.ColumnNames = stringConvertibleMatrixView.Content.ColumnNames;
+      pValsMatrix.RowNames = new string[] { "p-Value" };
+
+      double val;
+      for (int i = 0; i < data.Length; i++) {
+        alglib.jarqueberatest(data[i], data[i].Length, out val);
+        pValsMatrix[0, i] = val;
+      }
+
+      this.Invoke(new Action(() => {
+        normalityStringConvertibleMatrixView.Content = pValsMatrix;
+        normalityStringConvertibleMatrixView.DataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
+      }));
+    }
+
+    private void CalculatePairwiseTest(string groupName) {
+      int colIndex = 0;
+      IEnumerable<string> columnNames = null;
+      this.Invoke(new Action(() => { columnNames = stringConvertibleMatrixView.Content.ColumnNames; }));
+
+      foreach (string col in columnNames) {
+        if (col == groupName) {
+          break;
+        }
+        colIndex++;
+      }
+
+      double[][] newData = FilterDataForPairwiseTest(colIndex);
+      int cnt = 0;
+      for (int i = 0; i < newData.Length; i++) {
+        double mwuBothtails = PairwiseTest.MannWhitneyUTest(data[colIndex], newData[i]);
+        if (mwuBothtails > significanceLevel) {
+          cnt++;
+        }
+      }
+
+      double ratio = ((double)cnt) / (data.Length - 1) * 100.0;
+      equalDistsTextBox.Text = ratio.ToString() + " %";
+
+      if (cnt == 0) {
+        this.Invoke(new Action(() => { pairwiseLabel.Image = HeuristicLab.Analysis.Statistics.Resources.Default; }));
+      } else {
+        this.Invoke(new Action(() => { pairwiseLabel.Image = HeuristicLab.Common.Resources.VSImageLibrary.Warning; }));
+      }
+    }
+
+    private double[][] FilterDataForPairwiseTest(int columnToRemove) {
+      double[][] newData = new double[data.Length - 1][];
+
+      int i = 0;
+      int l = 0;
+      while (i < data.Length) {
+        if (i != columnToRemove) {
+          double[] row = new double[data[i].Length - 1];
+          newData[l] = row;
+
+          int j = 0, k = 0;
+          while (j < row.Length) {
+            if (i != columnToRemove) {
+              newData[l][j] = data[i][k];
+              j++;
+              k++;
+            } else {
+              k++;
+            }
+          }
+          i++;
+          l++;
+        } else {
+          i++;
+        }
+      }
+      return newData;
+    }
+
+    private void CalculatePairwiseTestDetails(string groupName) {
+      int colIndex = 0;
+      IEnumerable<string> columnNames = null;
+      this.Invoke(new Action(() => { columnNames = stringConvertibleMatrixView.Content.ColumnNames; }));
+
+      foreach (string col in columnNames) {
+        if (col == groupName) {
+          break;
+        }
+        colIndex++;
+      }
+
+      double[][] newData = FilterDataForPairwiseTest(colIndex);
+
+      columnNames = columnNames.Where(x => x != groupName).ToList();
+
+      var rowNames = new string[] { "p-Value of Mann-Whitney U", "Adjusted p-Value of Mann-Whitney U", 
+            "p-Value of T-Test", "Adjusted p-Value of T-Test", "Cohen's d", "Hedges' g" };
+
+      DoubleMatrix pValsMatrix = new DoubleMatrix(rowNames.Length, columnNames.Count());
+      pValsMatrix.ColumnNames = columnNames;
+      pValsMatrix.RowNames = rowNames;
+
+      double mwuBothtails;
+      double tTestBothTails;
+      double[] mwuPValues = new double[newData.Length];
+      double[] tTestPValues = new double[newData.Length];
+      bool[] decision = null;
+      double[] adjustedMwuPValues = null;
+      double[] adjustedTtestPValues = null;
+
+      for (int i = 0; i < newData.Length; i++) {
+        mwuBothtails = PairwiseTest.MannWhitneyUTest(data[colIndex], newData[i]);
+        tTestBothTails = PairwiseTest.TTest(data[colIndex], newData[i]);
+        mwuPValues[i] = mwuBothtails;
+        tTestPValues[i] = tTestBothTails;
+      }
+
+      adjustedMwuPValues = BonferroniHolm.Calculate(significanceLevel, mwuPValues, out decision);
+      adjustedTtestPValues = BonferroniHolm.Calculate(significanceLevel, tTestPValues, out decision);
+
+      for (int i = 0; i < newData.Length; i++) {
+        pValsMatrix[0, i] = mwuPValues[i];
+        pValsMatrix[1, i] = adjustedMwuPValues[i];
+        pValsMatrix[2, i] = tTestPValues[i];
+        pValsMatrix[3, i] = adjustedTtestPValues[i];
+        pValsMatrix[4, i] = SampleSizeDetermination.CalculateCohensD(data[colIndex], newData[i]);
+        pValsMatrix[5, i] = SampleSizeDetermination.CalculateHedgesG(data[colIndex], newData[i]);
+      }
+
+      this.Invoke(new Action(() => {
+        pairwiseStringConvertibleMatrixView.Content = pValsMatrix;
+        pairwiseStringConvertibleMatrixView.DataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
+      }));
+    }
+
+    private void openBoxPlotToolStripMenuItem_Click(object sender, EventArgs e) {
+      RunCollectionBoxPlotView boxplotView = new RunCollectionBoxPlotView();
+      boxplotView.Content = Content;
+      // TODO: enable as soon as we move to HeuristicLab.Optimization.Views
+      // boxplotView.xAxisComboBox.SelectedItem = xAxisComboBox.SelectedItem;
+      // boxplotView.yAxisComboBox.SelectedItem = yAxisComboBox.SelectedItem;
+      boxplotView.Show();
+    }
+
+    private void groupCompComboBox_SelectedValueChanged(object sender, EventArgs e) {
+      string curItem = (string)groupCompComboBox.SelectedItem;
+      CalculatePairwise(curItem);
+    }
+  }
+}
Index: /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsView.designer.cs
===================================================================
--- /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsView.designer.cs	(revision 11693)
+++ /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsView.designer.cs	(revision 11693)
@@ -0,0 +1,524 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Analysis.Statistics {
+  partial class StatisticalTestsView {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
+      this.stringConvertibleMatrixView = new HeuristicLab.Data.Views.StringConvertibleMatrixView();
+      this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
+      this.openBoxPlotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.groupByLabel = new System.Windows.Forms.Label();
+      this.label1 = new System.Windows.Forms.Label();
+      this.resultComboBox = new System.Windows.Forms.ComboBox();
+      this.lblPVal = new System.Windows.Forms.Label();
+      this.pValTextBox = new System.Windows.Forms.TextBox();
+      this.groupComboBox = new System.Windows.Forms.ComboBox();
+      this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+      this.splitContainer3 = new System.Windows.Forms.SplitContainer();
+      this.pairwiseTestGroupBox = new System.Windows.Forms.GroupBox();
+      this.pairwiseStringConvertibleMatrixView = new HeuristicLab.Data.Views.StringConvertibleMatrixView();
+      this.pairwiseLabel = new System.Windows.Forms.Label();
+      this.label3 = new System.Windows.Forms.Label();
+      this.equalDistsTextBox = new System.Windows.Forms.TextBox();
+      this.label2 = new System.Windows.Forms.Label();
+      this.groupCompComboBox = new System.Windows.Forms.ComboBox();
+      this.allGroupTestGroupBox = new System.Windows.Forms.GroupBox();
+      this.groupCompLabel = new System.Windows.Forms.Label();
+      this.normalityGroupBox = new System.Windows.Forms.GroupBox();
+      this.label4 = new System.Windows.Forms.Label();
+      this.normalityStringConvertibleMatrixView = new HeuristicLab.Data.Views.StringConvertibleMatrixView();
+      this.normalityLabel = new System.Windows.Forms.Label();
+      this.selectDataGroupBox = new System.Windows.Forms.GroupBox();
+      this.tabControl = new System.Windows.Forms.TabControl();
+      this.tabPage1 = new System.Windows.Forms.TabPage();
+      this.tabPage2 = new System.Windows.Forms.TabPage();
+      this.histogramControl = new HeuristicLab.Analysis.Views.HistogramControl();
+      this.contextMenuStrip1.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+      this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
+      this.splitContainer1.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
+      this.splitContainer3.Panel1.SuspendLayout();
+      this.splitContainer3.Panel2.SuspendLayout();
+      this.splitContainer3.SuspendLayout();
+      this.pairwiseTestGroupBox.SuspendLayout();
+      this.allGroupTestGroupBox.SuspendLayout();
+      this.normalityGroupBox.SuspendLayout();
+      this.selectDataGroupBox.SuspendLayout();
+      this.tabControl.SuspendLayout();
+      this.tabPage1.SuspendLayout();
+      this.tabPage2.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // stringConvertibleMatrixView
+      // 
+      this.stringConvertibleMatrixView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.stringConvertibleMatrixView.Caption = "StringConvertibleMatrix View";
+      this.stringConvertibleMatrixView.Content = null;
+      this.stringConvertibleMatrixView.ContextMenuStrip = this.contextMenuStrip1;
+      this.stringConvertibleMatrixView.Location = new System.Drawing.Point(3, 3);
+      this.stringConvertibleMatrixView.Name = "stringConvertibleMatrixView";
+      this.stringConvertibleMatrixView.ReadOnly = false;
+      this.stringConvertibleMatrixView.ShowRowsAndColumnsTextBox = false;
+      this.stringConvertibleMatrixView.ShowStatisticalInformation = true;
+      this.stringConvertibleMatrixView.Size = new System.Drawing.Size(567, 523);
+      this.stringConvertibleMatrixView.TabIndex = 0;
+      // 
+      // contextMenuStrip1
+      // 
+      this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.openBoxPlotToolStripMenuItem});
+      this.contextMenuStrip1.Name = "contextMenuStrip1";
+      this.contextMenuStrip1.Size = new System.Drawing.Size(175, 26);
+      // 
+      // openBoxPlotToolStripMenuItem
+      // 
+      this.openBoxPlotToolStripMenuItem.Name = "openBoxPlotToolStripMenuItem";
+      this.openBoxPlotToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
+      this.openBoxPlotToolStripMenuItem.Text = "Open BoxPlot View";
+      this.openBoxPlotToolStripMenuItem.Click += new System.EventHandler(this.openBoxPlotToolStripMenuItem_Click);
+      // 
+      // groupByLabel
+      // 
+      this.groupByLabel.AutoSize = true;
+      this.groupByLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.groupByLabel.Location = new System.Drawing.Point(3, 6);
+      this.groupByLabel.Name = "groupByLabel";
+      this.groupByLabel.Size = new System.Drawing.Size(53, 13);
+      this.groupByLabel.TabIndex = 7;
+      this.groupByLabel.Text = "Group by:";
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.label1.Location = new System.Drawing.Point(3, 6);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(40, 13);
+      this.label1.TabIndex = 6;
+      this.label1.Text = "Result:";
+      // 
+      // resultComboBox
+      // 
+      this.resultComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.resultComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.resultComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.resultComboBox.FormattingEnabled = true;
+      this.resultComboBox.Location = new System.Drawing.Point(62, 3);
+      this.resultComboBox.Name = "resultComboBox";
+      this.resultComboBox.Size = new System.Drawing.Size(250, 21);
+      this.resultComboBox.TabIndex = 5;
+      this.resultComboBox.SelectedValueChanged += new System.EventHandler(this.resultComboBox_SelectedValueChanged);
+      // 
+      // lblPVal
+      // 
+      this.lblPVal.AutoSize = true;
+      this.lblPVal.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.lblPVal.Location = new System.Drawing.Point(6, 22);
+      this.lblPVal.Name = "lblPVal";
+      this.lblPVal.Size = new System.Drawing.Size(46, 13);
+      this.lblPVal.TabIndex = 12;
+      this.lblPVal.Text = "p-Value:";
+      this.lblPVal.TextAlign = System.Drawing.ContentAlignment.TopRight;
+      // 
+      // pValTextBox
+      // 
+      this.pValTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.pValTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.pValTextBox.Location = new System.Drawing.Point(58, 19);
+      this.pValTextBox.Name = "pValTextBox";
+      this.pValTextBox.ReadOnly = true;
+      this.pValTextBox.Size = new System.Drawing.Size(241, 20);
+      this.pValTextBox.TabIndex = 13;
+      // 
+      // groupComboBox
+      // 
+      this.groupComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.groupComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.groupComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.groupComboBox.FormattingEnabled = true;
+      this.groupComboBox.Location = new System.Drawing.Point(62, 3);
+      this.groupComboBox.Name = "groupComboBox";
+      this.groupComboBox.Size = new System.Drawing.Size(250, 21);
+      this.groupComboBox.TabIndex = 14;
+      this.groupComboBox.SelectedValueChanged += new System.EventHandler(this.groupComboBox_SelectedValueChanged);
+      // 
+      // splitContainer1
+      // 
+      this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.splitContainer1.Location = new System.Drawing.Point(6, 19);
+      this.splitContainer1.Name = "splitContainer1";
+      this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
+      // 
+      // splitContainer1.Panel1
+      // 
+      this.splitContainer1.Panel1.Controls.Add(this.resultComboBox);
+      this.splitContainer1.Panel1.Controls.Add(this.label1);
+      // 
+      // splitContainer1.Panel2
+      // 
+      this.splitContainer1.Panel2.Controls.Add(this.groupByLabel);
+      this.splitContainer1.Panel2.Controls.Add(this.groupComboBox);
+      this.splitContainer1.Size = new System.Drawing.Size(315, 54);
+      this.splitContainer1.SplitterDistance = 25;
+      this.splitContainer1.TabIndex = 18;
+      // 
+      // splitContainer3
+      // 
+      this.splitContainer3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.splitContainer3.Location = new System.Drawing.Point(6, 6);
+      this.splitContainer3.Name = "splitContainer3";
+      // 
+      // splitContainer3.Panel1
+      // 
+      this.splitContainer3.Panel1.Controls.Add(this.stringConvertibleMatrixView);
+      // 
+      // splitContainer3.Panel2
+      // 
+      this.splitContainer3.Panel2.Controls.Add(this.pairwiseTestGroupBox);
+      this.splitContainer3.Panel2.Controls.Add(this.allGroupTestGroupBox);
+      this.splitContainer3.Panel2.Controls.Add(this.normalityGroupBox);
+      this.splitContainer3.Panel2.Controls.Add(this.selectDataGroupBox);
+      this.splitContainer3.Size = new System.Drawing.Size(910, 529);
+      this.splitContainer3.SplitterDistance = 573;
+      this.splitContainer3.TabIndex = 20;
+      // 
+      // pairwiseTestGroupBox
+      // 
+      this.pairwiseTestGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.pairwiseTestGroupBox.Controls.Add(this.pairwiseStringConvertibleMatrixView);
+      this.pairwiseTestGroupBox.Controls.Add(this.pairwiseLabel);
+      this.pairwiseTestGroupBox.Controls.Add(this.label3);
+      this.pairwiseTestGroupBox.Controls.Add(this.equalDistsTextBox);
+      this.pairwiseTestGroupBox.Controls.Add(this.label2);
+      this.pairwiseTestGroupBox.Controls.Add(this.groupCompComboBox);
+      this.pairwiseTestGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.pairwiseTestGroupBox.Location = new System.Drawing.Point(3, 289);
+      this.pairwiseTestGroupBox.Name = "pairwiseTestGroupBox";
+      this.pairwiseTestGroupBox.Size = new System.Drawing.Size(327, 218);
+      this.pairwiseTestGroupBox.TabIndex = 22;
+      this.pairwiseTestGroupBox.TabStop = false;
+      this.pairwiseTestGroupBox.Text = "4. Pairwise Test for Inequalities in Distributions";
+      // 
+      // pairwiseStringConvertibleMatrixView
+      // 
+      this.pairwiseStringConvertibleMatrixView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.pairwiseStringConvertibleMatrixView.Caption = "StringConvertibleMatrix View";
+      this.pairwiseStringConvertibleMatrixView.Content = null;
+      this.pairwiseStringConvertibleMatrixView.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.pairwiseStringConvertibleMatrixView.Location = new System.Drawing.Point(6, 72);
+      this.pairwiseStringConvertibleMatrixView.Name = "pairwiseStringConvertibleMatrixView";
+      this.pairwiseStringConvertibleMatrixView.ReadOnly = false;
+      this.pairwiseStringConvertibleMatrixView.ShowRowsAndColumnsTextBox = false;
+      this.pairwiseStringConvertibleMatrixView.ShowStatisticalInformation = false;
+      this.pairwiseStringConvertibleMatrixView.Size = new System.Drawing.Size(315, 140);
+      this.pairwiseStringConvertibleMatrixView.TabIndex = 19;
+      // 
+      // pairwiseLabel
+      // 
+      this.pairwiseLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+      this.pairwiseLabel.AutoSize = true;
+      this.pairwiseLabel.Location = new System.Drawing.Point(305, 47);
+      this.pairwiseLabel.MaximumSize = new System.Drawing.Size(16, 16);
+      this.pairwiseLabel.MinimumSize = new System.Drawing.Size(16, 16);
+      this.pairwiseLabel.Name = "pairwiseLabel";
+      this.pairwiseLabel.Size = new System.Drawing.Size(16, 16);
+      this.pairwiseLabel.TabIndex = 18;
+      // 
+      // label3
+      // 
+      this.label3.AutoSize = true;
+      this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.label3.Location = new System.Drawing.Point(6, 49);
+      this.label3.Name = "label3";
+      this.label3.Size = new System.Drawing.Size(74, 13);
+      this.label3.TabIndex = 18;
+      this.label3.Text = "Equal Groups:";
+      this.label3.TextAlign = System.Drawing.ContentAlignment.TopRight;
+      // 
+      // equalDistsTextBox
+      // 
+      this.equalDistsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.equalDistsTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.equalDistsTextBox.Location = new System.Drawing.Point(123, 46);
+      this.equalDistsTextBox.Name = "equalDistsTextBox";
+      this.equalDistsTextBox.ReadOnly = true;
+      this.equalDistsTextBox.Size = new System.Drawing.Size(176, 20);
+      this.equalDistsTextBox.TabIndex = 18;
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.label2.Location = new System.Drawing.Point(6, 22);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(111, 13);
+      this.label2.TabIndex = 18;
+      this.label2.Text = "Group for comparison:";
+      // 
+      // groupCompComboBox
+      // 
+      this.groupCompComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.groupCompComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.groupCompComboBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.groupCompComboBox.FormattingEnabled = true;
+      this.groupCompComboBox.Location = new System.Drawing.Point(123, 19);
+      this.groupCompComboBox.Name = "groupCompComboBox";
+      this.groupCompComboBox.Size = new System.Drawing.Size(198, 21);
+      this.groupCompComboBox.TabIndex = 17;
+      this.groupCompComboBox.SelectedValueChanged += new System.EventHandler(this.groupCompComboBox_SelectedValueChanged);
+      // 
+      // allGroupTestGroupBox
+      // 
+      this.allGroupTestGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.allGroupTestGroupBox.Controls.Add(this.groupCompLabel);
+      this.allGroupTestGroupBox.Controls.Add(this.lblPVal);
+      this.allGroupTestGroupBox.Controls.Add(this.pValTextBox);
+      this.allGroupTestGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.allGroupTestGroupBox.Location = new System.Drawing.Point(3, 237);
+      this.allGroupTestGroupBox.Name = "allGroupTestGroupBox";
+      this.allGroupTestGroupBox.Size = new System.Drawing.Size(327, 46);
+      this.allGroupTestGroupBox.TabIndex = 21;
+      this.allGroupTestGroupBox.TabStop = false;
+      this.allGroupTestGroupBox.Text = "3. Kruskal Wallis Test for Inequalities in Distributions";
+      // 
+      // groupCompLabel
+      // 
+      this.groupCompLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+      this.groupCompLabel.AutoSize = true;
+      this.groupCompLabel.Location = new System.Drawing.Point(305, 22);
+      this.groupCompLabel.MaximumSize = new System.Drawing.Size(16, 16);
+      this.groupCompLabel.MinimumSize = new System.Drawing.Size(16, 16);
+      this.groupCompLabel.Name = "groupCompLabel";
+      this.groupCompLabel.Size = new System.Drawing.Size(16, 16);
+      this.groupCompLabel.TabIndex = 17;
+      // 
+      // normalityGroupBox
+      // 
+      this.normalityGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.normalityGroupBox.Controls.Add(this.label4);
+      this.normalityGroupBox.Controls.Add(this.normalityStringConvertibleMatrixView);
+      this.normalityGroupBox.Controls.Add(this.normalityLabel);
+      this.normalityGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.normalityGroupBox.Location = new System.Drawing.Point(3, 88);
+      this.normalityGroupBox.Name = "normalityGroupBox";
+      this.normalityGroupBox.Size = new System.Drawing.Size(327, 143);
+      this.normalityGroupBox.TabIndex = 20;
+      this.normalityGroupBox.TabStop = false;
+      this.normalityGroupBox.Text = "2. Jarque-Bera Test for Normal Distribution";
+      // 
+      // label4
+      // 
+      this.label4.AutoSize = true;
+      this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.label4.Location = new System.Drawing.Point(6, 16);
+      this.label4.Name = "label4";
+      this.label4.Size = new System.Drawing.Size(135, 13);
+      this.label4.TabIndex = 18;
+      this.label4.Text = "Data is normally distributed:";
+      // 
+      // normalityStringConvertibleMatrixView
+      // 
+      this.normalityStringConvertibleMatrixView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.normalityStringConvertibleMatrixView.Caption = "StringConvertibleMatrix View";
+      this.normalityStringConvertibleMatrixView.Content = null;
+      this.normalityStringConvertibleMatrixView.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.normalityStringConvertibleMatrixView.Location = new System.Drawing.Point(6, 35);
+      this.normalityStringConvertibleMatrixView.Name = "normalityStringConvertibleMatrixView";
+      this.normalityStringConvertibleMatrixView.ReadOnly = false;
+      this.normalityStringConvertibleMatrixView.ShowRowsAndColumnsTextBox = false;
+      this.normalityStringConvertibleMatrixView.ShowStatisticalInformation = false;
+      this.normalityStringConvertibleMatrixView.Size = new System.Drawing.Size(312, 102);
+      this.normalityStringConvertibleMatrixView.TabIndex = 17;
+      // 
+      // normalityLabel
+      // 
+      this.normalityLabel.AutoSize = true;
+      this.normalityLabel.Location = new System.Drawing.Point(156, 16);
+      this.normalityLabel.MaximumSize = new System.Drawing.Size(16, 16);
+      this.normalityLabel.MinimumSize = new System.Drawing.Size(16, 16);
+      this.normalityLabel.Name = "normalityLabel";
+      this.normalityLabel.Size = new System.Drawing.Size(16, 16);
+      this.normalityLabel.TabIndex = 16;
+      // 
+      // selectDataGroupBox
+      // 
+      this.selectDataGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.selectDataGroupBox.Controls.Add(this.splitContainer1);
+      this.selectDataGroupBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.selectDataGroupBox.Location = new System.Drawing.Point(3, 3);
+      this.selectDataGroupBox.Name = "selectDataGroupBox";
+      this.selectDataGroupBox.Size = new System.Drawing.Size(327, 79);
+      this.selectDataGroupBox.TabIndex = 19;
+      this.selectDataGroupBox.TabStop = false;
+      this.selectDataGroupBox.Text = "1. Select Data";
+      // 
+      // tabControl
+      // 
+      this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.tabControl.Controls.Add(this.tabPage1);
+      this.tabControl.Controls.Add(this.tabPage2);
+      this.tabControl.Location = new System.Drawing.Point(3, 3);
+      this.tabControl.Name = "tabControl";
+      this.tabControl.SelectedIndex = 0;
+      this.tabControl.Size = new System.Drawing.Size(930, 567);
+      this.tabControl.TabIndex = 21;
+      // 
+      // tabPage1
+      // 
+      this.tabPage1.Controls.Add(this.splitContainer3);
+      this.tabPage1.Location = new System.Drawing.Point(4, 22);
+      this.tabPage1.Name = "tabPage1";
+      this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
+      this.tabPage1.Size = new System.Drawing.Size(922, 541);
+      this.tabPage1.TabIndex = 0;
+      this.tabPage1.Text = "Tests";
+      this.tabPage1.UseVisualStyleBackColor = true;
+      // 
+      // tabPage2
+      // 
+      this.tabPage2.Controls.Add(this.histogramControl);
+      this.tabPage2.Location = new System.Drawing.Point(4, 22);
+      this.tabPage2.Name = "tabPage2";
+      this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
+      this.tabPage2.Size = new System.Drawing.Size(922, 541);
+      this.tabPage2.TabIndex = 1;
+      this.tabPage2.Text = "Histogram";
+      this.tabPage2.UseVisualStyleBackColor = true;
+      // 
+      // dataTableView
+      // 
+      this.histogramControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.histogramControl.Location = new System.Drawing.Point(6, 6);
+      this.histogramControl.Name = "dataTableView";
+      this.histogramControl.Size = new System.Drawing.Size(910, 529);
+      this.histogramControl.TabIndex = 0;
+      // 
+      // StatisticalTestingView
+      // 
+      this.Controls.Add(this.tabControl);
+      this.Name = "StatisticalTestsView";
+      this.Size = new System.Drawing.Size(936, 573);
+      this.contextMenuStrip1.ResumeLayout(false);
+      this.splitContainer1.Panel1.ResumeLayout(false);
+      this.splitContainer1.Panel1.PerformLayout();
+      this.splitContainer1.Panel2.ResumeLayout(false);
+      this.splitContainer1.Panel2.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+      this.splitContainer1.ResumeLayout(false);
+      this.splitContainer3.Panel1.ResumeLayout(false);
+      this.splitContainer3.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();
+      this.splitContainer3.ResumeLayout(false);
+      this.pairwiseTestGroupBox.ResumeLayout(false);
+      this.pairwiseTestGroupBox.PerformLayout();
+      this.allGroupTestGroupBox.ResumeLayout(false);
+      this.allGroupTestGroupBox.PerformLayout();
+      this.normalityGroupBox.ResumeLayout(false);
+      this.normalityGroupBox.PerformLayout();
+      this.selectDataGroupBox.ResumeLayout(false);
+      this.tabControl.ResumeLayout(false);
+      this.tabPage1.ResumeLayout(false);
+      this.tabPage2.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+    #endregion
+
+    private HeuristicLab.Data.Views.StringConvertibleMatrixView stringConvertibleMatrixView;
+    private System.Windows.Forms.Label groupByLabel;
+    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.ComboBox resultComboBox;
+    private System.Windows.Forms.Label lblPVal;
+    private System.Windows.Forms.TextBox pValTextBox;
+    private System.Windows.Forms.ComboBox groupComboBox;
+    private System.Windows.Forms.SplitContainer splitContainer1;
+    private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
+    private System.Windows.Forms.ToolStripMenuItem openBoxPlotToolStripMenuItem;
+    private System.Windows.Forms.SplitContainer splitContainer3;
+    private System.Windows.Forms.GroupBox selectDataGroupBox;
+    private System.Windows.Forms.GroupBox normalityGroupBox;
+    private System.Windows.Forms.GroupBox pairwiseTestGroupBox;
+    private System.Windows.Forms.GroupBox allGroupTestGroupBox;
+    private System.Windows.Forms.Label normalityLabel;
+    private System.Windows.Forms.Label groupCompLabel;
+    private System.Windows.Forms.Label label2;
+    private System.Windows.Forms.ComboBox groupCompComboBox;
+    private System.Windows.Forms.Label label3;
+    private System.Windows.Forms.TextBox equalDistsTextBox;
+    private System.Windows.Forms.Label pairwiseLabel;
+    private Data.Views.StringConvertibleMatrixView normalityStringConvertibleMatrixView;
+    private Data.Views.StringConvertibleMatrixView pairwiseStringConvertibleMatrixView;
+    private System.Windows.Forms.Label label4;
+    private System.Windows.Forms.TabControl tabControl;
+    private System.Windows.Forms.TabPage tabPage1;
+    private System.Windows.Forms.TabPage tabPage2;
+    private HeuristicLab.Analysis.Views.HistogramControl histogramControl;
+  }
+}
Index: /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsView.resx
===================================================================
--- /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsView.resx	(revision 11693)
+++ /branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/StatisticalTestsView.resx	(revision 11693)
@@ -0,0 +1,126 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>28, 18</value>
+  </metadata>
+  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>50</value>
+  </metadata>
+</root>
