public TestCaseExecutionWorker(FaultModel fm)
     : base()
 {
     this.fm = fm;
     this.WorkerReportsProgress = true;
     this.DoWork += tceWorker_DoWork;
 }
        public TestGenerationWindow(FaultModel faultModel, IList<TestCase.FaultModelTesterTestCase> testCases, Action<string> logFunction)
        {
            InitializeComponent();

            this.log = logFunction;
            this.testCases = testCases;
            this.faultModel = faultModel as ControllerComparisonFaultModel;
            this.EnableDWMDropShadow = true;

            this.Title = "Test Case Generation - Controller Comparison Fault Model";

            requirements = (IList<string>)faultModel.FaultModelConfiguration.GetValue("Requirements", "complex");

            int i = 0;
            foreach (string requirement in requirements)
            {
                if (i == 0)
                {
                    this.RequirementComboBox.Items.Add("Max deviation");
                }
                else if (i == 1)
                {
                    this.RequirementComboBox.Items.Add("Mean deviation");
                }
                else
                {
                    this.RequirementComboBox.Items.Add(requirement + " difference");
                }
                i++;
            }

            InvestigateWorstCaseRadioButton.IsChecked = true;

        }
        public TestGenerationWindow(FaultModel faultModel, IList<TestCase.FaultModelTesterTestCase> testCases, Action<string> logFunction)
        {
            InitializeComponent();

            this.log = logFunction;
            this.testCases = testCases;
            this.faultModel = faultModel as AllowedOscillationFaultModel;
            this.EnableDWMDropShadow = true;
            
            this.Title = "Test Case Generation - Allowed Oscillation Fault Model";
        }
        public TestGenerationWindow(FaultModel faultModel, IList<TestCase.FaultModelTesterTestCase> testCases, Action<string> logFunction)
        {
            InitializeComponent();

            this.log = logFunction;
            this.testCases = testCases;
            this.faultModel = faultModel as StepFaultModel;
            this.EnableDWMDropShadow = true;

            this.Title = "Test Case Generation - Step Fault Model";

            requirements = (IList<string>)faultModel.FaultModelConfiguration.GetValue("Requirements", "complex");

            foreach (string requirement in requirements)
            {
                this.RequirementComboBox.Items.Add(requirement);
            }

            InvestigateWorstCaseRadioButton.IsChecked = true;

        }
        public TestGenerationWindow(FaultModel faultModel, IList<TestCase.FaultModelTesterTestCase> testCases, Action<string> logFunction)
        {
            InitializeComponent();

            this.log = logFunction;
            this.testCases = testCases;
            this.faultModel = faultModel as DisturbanceFaultModel;
            this.EnableDWMDropShadow = true;

            this.Title = "Test Case Generation - Disturbance Fault Model";

            requirements = (IList<string>)faultModel.FaultModelConfiguration.GetValue("Requirements", "complex");
            int signalType = (int)this.faultModel.FaultModelConfiguration.GetValue("DisturbanceSignalType");

            if (signalType <= 3)
            {
                // Trapezoidal Ramp, Pulse & Step
                requirements.Add("Smoothness Pre-Disturbance");
                requirements.Add("Responsiveness Pre-Disturbance");
            }

            if (signalType < 3)
            {
                // Trapezoidal Ramp & Pulse
                requirements.Add("Smoothness Post-Disturbance");
                requirements.Add("Responsiveness Post-Disturbance");
            }

            foreach (string requirement in requirements)
            {
                this.RequirementComboBox.Items.Add(requirement);
            }

            InvestigateWorstCaseRadioButton.IsChecked = true;

        }