private void bw_DoWork(object sender, DoWorkEventArgs e) { //BackgroundWorker worker = sender as BackgroundWorker; TestGenerator tg = new TestGenerator(); List <object> genericlist = e.Argument as List <object>; //this.label5.Text = "0%"; //MessageBox.Show("0%"); label5.Invoke((MethodInvoker) delegate { label5.Text = "0%"; }); //this.timer1.Start(); milisecons = 0.0; aTimer.Start(); BeginInvoke(new Action(() => timer1.Start()), null); //MessageBox.Show(((Variable[])genericlist[0]).Length.ToString()); e.Result = tg.GetPairwiseTests((Variable[])genericlist[0], (bool)genericlist[1], (int)genericlist[2], sender); }
private void GenerateButton_Click(object sender, EventArgs e) // <--- { TestGenerator tg = new TestGenerator(); int numTests = 0; int numInput = dataGridView1.Rows.Count; int rows = 0; string rangeStr = ""; string[] range = new string[2]; char cSplitInterval = '_'; char cSplitIntervals = ';'; if (dataGridView1.Rows.Count == 0) // error handling { return; } // error handling if (XMLChoice.Checked) { rows = dataGridView1.Rows.Count - 1; } else { rows = dataGridView1.Rows.Count; } numInput = rows; // <--- varList = new Variable[numInput]; for (int row = 0; row < rows; row++) // read information from GUI <--- { varList[row].name = dataGridView1.Rows[row].Cells[0].Value.ToString(); // name is in first column varList[row].datatype = dataGridView1.Rows[row].Cells[1].Value.ToString(); // datatype in second rangeStr = dataGridView1.Rows[row].Cells[2].Value.ToString(); // interval string[] i_vals = rangeStr.Split(cSplitIntervals); int numIntervals = i_vals.Length; //MessageBox.Show("Number of intervals: " + i_vals.Length); varList[row].intervals = new Interval[numIntervals]; for (int i = 0; i < numIntervals; i++) // set all the intervals to the Variable { if (Regex.Matches(i_vals[i], @"_").Count <= 0) { if (varList[row].datatype == "BOOL") { range[0] = "0"; range[1] = "1"; } else { range[0] = range[1] = i_vals[i]; } } else { range = i_vals[i].Split(cSplitInterval); } varList[row].intervals[i].interval_a = range[0]; // start of interval varList[row].intervals[i].interval_b = range[1]; // end of interval //MessageBox.Show("Interval start: " + varList[row].intervals[i].interval_a + ""); } } if (comboBox1.SelectedIndex == 0) // Base choice { VariableBC[] varListBC; varListBC = new VariableBC[numInput]; for (int row = 0; row < rows; row++) // <--- { varListBC[row].variable = varList[row]; // add Variable to VariableBC list varListBC[row].baseChoice = dataGridView1.Rows[row].Cells[3].Value.ToString(); // add base value to VariableBC list } tableTests = tg.GetBaseChoiceTests(varListBC); // generate base choice test cases numTests = tg.GetNumTestCases(); // get number of tests, which i calculated in GetBaseChoiceTests } else if (comboBox1.SelectedIndex == 1) // Random { numTests = Decimal.ToInt32(numericUpDown1.Value); // get number of tests from GUI tableTests = tg.GetRandomTests(numTests, varList); // generate random test cases } else if (comboBox1.SelectedIndex == 2) // Pairwise { //tableTests = tg.GetPairwiseTests(varList, checkBox1.Checked); // generate random test cases List <object> arguments = new List <object>(); arguments.Add(varList); arguments.Add(checkBox1.Checked); arguments.Add(2); bw.RunWorkerAsync(arguments); GenerateButton.Enabled = false; return; // MessageBox.Show( numTests.ToString()); } dataGridView2.Columns.Clear(); // empty dataGridView dataGridView2.Rows.Clear(); for (int i = 0; i < numInput; i++) // add a column for each input { dataGridView2.Columns.Add("Column", varList[i].name + "(" + varList[i].datatype + ")"); } for (int row = 0; row < numTests; row++) // set test to each cell in the dataGridView (one test case per row) { dataGridView2.Rows.Add(); dataGridView2.Rows[row].HeaderCell.Value = row.ToString(); for (int col = 0; col < numInput; col++) { dataGridView2.Rows[row].Cells[col].Value = tableTests[row, col]; } } }