Example #1
0
        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);
        }
Example #2
0
        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];
                }
            }
        }