Example #1
0
        public void Clear_Matrix_Successful()
        {
            bool[,] matrixA = new bool[, ] //// 1 2
            {
                { false, true },           // 1 O X
                { false, false }           // 2 O O
            };

            Matrix <bool> m = new Matrix <bool>(matrixA);

            Node n1 = new Node("Step1", new FlowIdentifier(FlowType.Basic, 1));
            Node n2 = new Node("Step2", new FlowIdentifier(FlowType.Basic, 1));

            List <Node> nodes = new List <Node>();

            nodes.Add(n1);
            nodes.Add(n2);

            TestUseCase uc = new TestUseCase();

            uc.SetNodes(nodes);
            uc.SetEdgeMatrix(m);
            uc.BasicFlow = new Flow(new FlowIdentifier(FlowType.Basic, 1), "egal", nodes, new List <ReferenceStep>());

            ScenarioMatrix sm = new ScenarioMatrix(uc, 1);

            sm.CreateScenarios();

            Assert.AreEqual(sm.GetScenarios().Count, 1);

            sm.ClearMatrix();

            Assert.AreEqual(sm.GetScenarios().Count, 0);
        }
Example #2
0
        public void Export_Path_IsNull()
        {
            ScenarioMatrix s   = new ScenarioMatrix(new TestUseCase(), 1);
            bool           ret = s.Export(null);

            Assert.IsFalse(ret);
        }
Example #3
0
        public void ScenarioMatrix_Set_UseCase()
        {
            Node n1 = new Node("Schritt 1", new FlowIdentifier(FlowType.Basic, 1));
            Node n2 = new Node("Schritt 2", new FlowIdentifier(FlowType.Basic, 1));

            TestUseCase uc1   = new TestUseCase();
            List <Node> nodes = new List <Node>();

            nodes.Add(n1);
            uc1.SetNodes(nodes);

            ScenarioMatrix sm = new ScenarioMatrix(uc1);

            Assert.AreEqual(sm.UC.Nodes.Count, 1);

            TestUseCase uc2 = new TestUseCase();

            nodes = new List <Node>();
            nodes.Add(n1);
            nodes.Add(n2);
            uc2.SetNodes(nodes);

            sm.UC = uc2;

            Assert.AreEqual(sm.UC.Nodes.Count, 2);
        }
Example #4
0
        public void ScenarioMatrix_UseCase_IsNull()
        {
            ScenarioMatrix sm     = new ScenarioMatrix(null, 1);
            bool           retVal = sm.CreateScenarios();

            Assert.IsFalse(retVal);
            Assert.AreEqual(sm.GetScenarios().Count, 0);
        }
Example #5
0
        public void Export_Scenario_WithComment()
        {
            bool[,] matrixA = new bool[, ] //// 1 2
            {
                { false, true },           // 1 O X
                { false, false }           // 2 O O
            };

            Matrix <bool> m = new Matrix <bool>(matrixA);

            Node n1 = new Node("Step1", new FlowIdentifier(FlowType.Basic, 1));
            Node n2 = new Node("Step2", new FlowIdentifier(FlowType.Basic, 1));

            List <Node> nodes = new List <Node>();

            nodes.Add(n1);
            nodes.Add(n2);

            TestUseCase uc = new TestUseCase();

            uc.SetNodes(nodes);
            uc.SetEdgeMatrix(m);
            uc.BasicFlow = new Flow(new FlowIdentifier(FlowType.Basic, 1), "egal", nodes, new List <ReferenceStep>());

            ScenarioMatrix sm = new ScenarioMatrix(uc, 1);

            sm.CreateScenarios();

            Assert.AreEqual(sm.GetScenarios().Count, 1);

            Scenario s1 = new Scenario(sm.GetScenarios()[0]);

            s1.Comment = "Apfelkuchen";
            s1.ID      = sm.GetScenarios()[0].ID;

            sm.UpdateScenarioComment(s1);


            string filename = this.GetTmpFile();

            bool retVal = sm.Export(filename);



            try
            {
                Assert.IsTrue(File.Exists(filename));
                Assert.IsTrue(retVal);
                string text = File.ReadAllText(filename);
                Assert.IsTrue(text.Contains("Apfelkuchen"));
            }
            finally
            {
                File.Delete(filename);
            }
        }
Example #6
0
        public void ScenarioMatrix_Export_Fail()
        {
            bool[,] matrixA = new bool[, ]                      //// 1 2 3 4 5 6
            {
                { false, true, false, false, false, false },    // 1 O X O O O O
                { false, false, true, false, false, true },     // 2 O O X O O X
                { false, false, false, true, true, false },     // 3 O O O X X O
                { false, false, false, false, false, false },   // 4 O O O O O O
                { false, true, false, false, false, false },    // 5 O X O O O O
                { false, false, false, false, false, false }    // 6 O O O O O O
            };

            uint cycleDepth = 1;

            Matrix <bool> m = new Matrix <bool>(matrixA);

            Node n1 = new Node("Schritt 1", new FlowIdentifier(FlowType.Basic, 1));
            Node n2 = new Node("Schritt 2", new FlowIdentifier(FlowType.Basic, 1));
            Node n3 = new Node("Schritt 3", new FlowIdentifier(FlowType.Basic, 1));
            Node n4 = new Node("Schritt 4", new FlowIdentifier(FlowType.Basic, 1));
            Node n5 = new Node("Schritt 5", new FlowIdentifier(FlowType.SpecificAlternative, 2));
            Node n6 = new Node("Schritt 6", new FlowIdentifier(FlowType.SpecificAlternative, 3));

            List <Node> nodes = new List <Node>();

            nodes.Add(n1);
            nodes.Add(n2);
            nodes.Add(n3);
            nodes.Add(n4);
            nodes.Add(n5);
            nodes.Add(n6);

            List <Node> basicFlow = new List <Node>();

            basicFlow.Add(n1);
            basicFlow.Add(n2);
            basicFlow.Add(n3);
            basicFlow.Add(n4);

            TestUseCase uc = new TestUseCase();

            uc.SetEdgeMatrix(m);
            uc.SetNodes(nodes);
            uc.BasicFlow = new Flow(new FlowIdentifier(FlowType.Basic, 1), "egal", basicFlow, new List <ReferenceStep>());

            ScenarioMatrix sm = new ScenarioMatrix(uc, cycleDepth);

            sm.CreateScenarios();

            string filename = "abcdefg:\\";

            bool retVal = sm.Export(filename);

            Assert.IsFalse(File.Exists(filename));
            Assert.IsFalse(retVal);
        }
Example #7
0
        public void ScenarioMatrix_Change_CycleDepth()
        {
            TestUseCase uc = new TestUseCase();

            uc.SetNodes(new List <Node>());
            ScenarioMatrix sm = new ScenarioMatrix(uc, 1);

            sm.CycleDepth = 5;

            Assert.AreEqual(sm.CycleDepth, 5);
        }
Example #8
0
        public void ScenarioMatrix_UseCase_IsEmpty()
        {
            TestUseCase uc = new TestUseCase();

            uc.SetNodes(new List <Node>());

            ScenarioMatrix sm     = new ScenarioMatrix(uc);
            bool           retVal = sm.CreateScenarios();

            Assert.AreEqual(sm.GetScenarios().Count, 0);
            Assert.IsFalse(retVal);
        }
Example #9
0
 /// <summary>
 /// BackgroundWorker to generate the matrix
 /// </summary>
 /// <param name="sender">The sender</param>
 /// <param name="e">The e</param>
 private void BackgroundWorkerGenerateMatrix_DoWork(object sender, DoWorkEventArgs e)
 {
     if ((!this.backgroundWorkerGenerateMatrix.CancellationPending) && (!this.backgroundWorkerValidFile.CancellationPending) && (!this.backgroundWorkerLoadFile.CancellationPending))
     {
         this.matrix = new ScenarioMatrix(this.useCase, this.currentCycleDepth);
         this.matrix.ScenariosCreated += this.Matrix_scenariosCreated;
         if (this.matrix.CreateScenarios())
         {
             this.BackgroundColor3        = Brushes.LimeGreen;
             this.MatrixCycleDepthEnabled = true;
         }
         else
         {
             this.BackgroundColor3 = Brushes.Red;
             MessageBox.Show("Fehler beim Erstellen der Szenariomatrix aufgetreten.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
Example #10
0
        public void ScenarioMatrix_ChangeCycleDepth_MatrixA()
        {
            bool[,] matrixA = new bool[, ]                      //// 1 2 3 4 5 6
            {
                { false, true, false, false, false, false },    // 1 O X O O O O
                { false, false, true, false, false, true },     // 2 O O X O O X
                { false, false, false, true, true, false },     // 3 O O O X X O
                { false, false, false, false, false, false },   // 4 O O O O O O
                { false, true, false, false, false, false },    // 5 O X O O O O
                { false, false, false, false, false, false }    // 6 O O O O O O
            };

            uint cycleDepth = 1;

            Matrix <bool> m = new Matrix <bool>(matrixA);

            Node n1 = new Node("Schritt 1", new FlowIdentifier(FlowType.Basic, 1));
            Node n2 = new Node("Schritt 2", new FlowIdentifier(FlowType.Basic, 1));
            Node n3 = new Node("Schritt 3", new FlowIdentifier(FlowType.Basic, 1));
            Node n4 = new Node("Schritt 4", new FlowIdentifier(FlowType.Basic, 1));
            Node n5 = new Node("Schritt 5", new FlowIdentifier(FlowType.SpecificAlternative, 2));
            Node n6 = new Node("Schritt 6", new FlowIdentifier(FlowType.SpecificAlternative, 3));

            List <Node> nodes = new List <Node>();

            nodes.Add(n1);
            nodes.Add(n2);
            nodes.Add(n3);
            nodes.Add(n4);
            nodes.Add(n5);
            nodes.Add(n6);

            List <Node> basicFlow = new List <Node>();

            basicFlow.Add(n1);
            basicFlow.Add(n2);
            basicFlow.Add(n3);
            basicFlow.Add(n4);

            List <Node> expectedScenario1 = new List <Node>();

            expectedScenario1.Add(n1);
            expectedScenario1.Add(n2);
            expectedScenario1.Add(n6);

            List <Node> expectedScenario2 = new List <Node>();

            expectedScenario2.Add(n1);
            expectedScenario2.Add(n2);
            expectedScenario2.Add(n3);
            expectedScenario2.Add(n4);

            List <Node> expectedScenario3 = new List <Node>();

            expectedScenario3.Add(n1);
            expectedScenario3.Add(n2);
            expectedScenario3.Add(n3);
            expectedScenario3.Add(n5);
            expectedScenario3.Add(n2);
            expectedScenario3.Add(n3);
            expectedScenario3.Add(n4);

            List <Node> expectedScenario4 = new List <Node>();

            expectedScenario4.Add(n1);
            expectedScenario4.Add(n2);
            expectedScenario4.Add(n3);
            expectedScenario4.Add(n5);
            expectedScenario4.Add(n2);
            expectedScenario4.Add(n6);

            TestUseCase uc = new TestUseCase();

            uc.SetEdgeMatrix(m);
            uc.SetNodes(nodes);
            uc.BasicFlow = new Flow(new FlowIdentifier(FlowType.Basic, 1), "egal", basicFlow, new List <ReferenceStep>());

            ScenarioMatrix sm = new ScenarioMatrix(uc, cycleDepth);

            sm.CreateScenarios();
            List <Scenario> foundScenarios = sm.GetScenarios();

            Assert.AreEqual(foundScenarios.Count, 2);
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario1));
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario2));

            sm.CycleDepth  = 2;
            foundScenarios = sm.GetScenarios();

            Assert.AreEqual(foundScenarios.Count, 4);
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario1));
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario2));
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario3));
            Assert.IsTrue(this.ContainsScenario(foundScenarios, expectedScenario4));
        }