示例#1
0
        public void NawArrayOrdered_Add_FillWholeArray_ShouldFit()
        {
            // Arrange
            var expectedSize = 10;
            var expectedNaws = RandomNawGenerator.NewArray(expectedSize);

            var array = new NawArrayOrdered(expectedSize);

            // Act

            Alg1_Practicum_Utils.Globals.Alg1NawArrayMethodCalled = false;
            for (int i = 0; i < expectedSize; i++)
            {
                try
                {
                    array.Add(expectedNaws[i]);
                    Assert.AreEqual(i + 1, array.Count, "\n\nNawArrayOrdered.Add(): Het aantal elementen in de array komt niet overeen met het aantal toegevoegde items.");
                }
                catch (NawArrayOrderedOutOfBoundsException)
                {
                    // Assert
                    Assert.Fail("\n\nNawArrayOrdered.Add(): Er konden maar {0} NAW-objecten aan een array die met omvang {1} is geinitialiseerd worden toegevoegd", i, expectedSize);
                }
            }
            Assert.IsFalse(Alg1_Practicum_Utils.Globals.Alg1NawArrayMethodCalled, "\n\nEr wordt een methode van Alg1NawArray gebruikt!\n\n");
        }
示例#2
0
        public void NawArrayOrdered_Add_Valid_ShouldMoveTheRightNumberOfItems()
        {
            // Arrange
            char[] woonplaatsen = "acegi".ToCharArray();
            NAW[]  testSet      = RandomNawGenerator.NewArray(5);
            testSet[0].Woonplaats = woonplaatsen[3].ToString();
            testSet[1].Woonplaats = woonplaatsen[2].ToString();
            testSet[2].Woonplaats = woonplaatsen[4].ToString();
            testSet[3].Woonplaats = woonplaatsen[0].ToString();
            testSet[4].Woonplaats = woonplaatsen[1].ToString();

            var array = new NawArrayOrdered(20);

            for (int i = 0; i < testSet.Length; i++)
            {
                // Act
                array.Add(testSet[i]);
            }

            Logger.Instance.ClearLog();
            array.Add(new NAW()
            {
                Woonplaats = "f"
            });

            var setters = Logger.Instance.LogItems.Where(li => li.ArrayAction == ArrayAction.SET);

            Assert.AreEqual(3, setters.Count(), "NawArrayOrdered.Add(): Er worden teveel elementen verschoven om ruimte te maken voor het nieuwe element.");
            Assert.IsTrue(setters.Any(li => li.NewNaw1.Woonplaats == "f"));
            Assert.IsTrue(setters.Any(li => li.NewNaw1.Woonplaats == "g"));
            Assert.IsTrue(setters.Any(li => li.NewNaw1.Woonplaats == "i"));
            //     Assert.IsTrue(array.CheckIsGesorteerd()); Wordt al bij andere testcase beoordeeld.
        }
示例#3
0
        public void NawArrayOrdered_Add_Valid_ShouldAddInOrder()
        {
            // Arrange
            char[] woonplaatsen = "abcde".ToCharArray();
            NAW[]  testSet      = RandomNawGenerator.NewArray(5);
            testSet[0].Woonplaats = woonplaatsen[3].ToString();
            testSet[1].Woonplaats = woonplaatsen[2].ToString();
            testSet[2].Woonplaats = woonplaatsen[4].ToString();
            testSet[3].Woonplaats = woonplaatsen[0].ToString();
            testSet[4].Woonplaats = woonplaatsen[1].ToString();

            var array = new NawArrayOrdered(20);

            Alg1_Practicum_Utils.Globals.Alg1NawArrayMethodCalled = false;

            for (int i = 0; i < testSet.Length; i++)
            {
                // Act
                array.Add(testSet[i]);

                // Assert
                Assert.IsTrue(array.CheckIsGesorteerd(), "NawArrayOrdered.Add(): Na het toevoegen van het element is de array niet langer goed gesorteerd.");
            }
            Assert.IsFalse(Alg1_Practicum_Utils.Globals.Alg1NawArrayMethodCalled, "\n\nEr wordt een methode van Alg1NawArray gebruikt!\n\n");
        }
示例#4
0
        private static INawArrayUnordered InitializeTestsubject(int maxSize, int initialFilledSize, out NAW[] testSet, int?maxStringLenght = null)
        {
            testSet = RandomNawGenerator.NewArray(initialFilledSize);
            var array = new NawArrayUnordered(maxSize);

            Array.ForEach(testSet, naw => array.Add(naw));

            // We have to clear the log because adding to the array will cause the logger to log as well.
            Logger.Instance.ClearLog();
            return(array);
        }
示例#5
0
        public static void WithOrderedArray(int capacity, int filled, Action <INawArrayOrdered> f)
        {
            var array = OrderedArrayOfSize(capacity);

            WithoutLogging(() =>
            {
                var testSet = RandomNawGenerator.NewArray(filled);
                foreach (var i in testSet)
                {
                    array.Add(i);
                }
            });
            f(array);
        }
        public void NawArrayUnordered_Add_FillWholeArray_ShouldFit()
        {
            const int capacity = 10;

            WithUnordenedArray(capacity, 0, arr =>
            {
                var expectedNaws = RandomNawGenerator.NewArray(capacity);
                WithoutCallingArrayMethods(() =>
                {
                    Assert.DoesNotThrow(() =>
                    {
                        foreach (var item in expectedNaws)
                        {
                            arr.Add(item);
                        }
                    }, $"Bij het invoegen van {capacity} items in een NawArrayUnordered met een grootte van {capacity} mogen geen exceptions optreden. Bij jouw NawArrayUnordered gebeurt dit wel.");
                });
            });
        }
        public void NawArrayOrdered_Add_Valid_ShouldMoveTheRightNumberOfItems()
        {
            // Arrange
            char[] woonplaatsen = "acegi".ToCharArray();
            NAW[]  testSet      = RandomNawGenerator.NewArray(5);
            testSet[0].Woonplaats = woonplaatsen[3].ToString();
            testSet[1].Woonplaats = woonplaatsen[2].ToString();
            testSet[2].Woonplaats = woonplaatsen[4].ToString();
            testSet[3].Woonplaats = woonplaatsen[0].ToString();
            testSet[4].Woonplaats = woonplaatsen[1].ToString();

            var array = ArrayOfSize(20);

            Alg1.Practica.Utils.Globals.Alg1NawArrayMethodCalled = false;

            for (int i = 0; i < testSet.Length; i++)
            {
                // Act
                array.Add(testSet[i]);
            }

            Logger.Instance.ClearLog();
            array.Add(new NAW()
            {
                Woonplaats = "f"
            });

            var setters = Logger.Instance.LogItems.Where(li => li.ArrayAction == ArrayAction.SET);

            Assert.AreEqual(3, setters.Count(),
                            "\n\nNawArrayOrdered.Add(): Er worden te veel of te weinig elementen verschoven ({0}, i.p.v. {1}) om ruimte te maken voor het nieuwe element.",
                            setters.Count(), 3);
            Assert.IsTrue(setters.Any(li => li.NewNaw1.Woonplaats == "f"),
                          "Naw met woonplaats f had verplaatst moeten worden, dit is niet gebeurd.");
            Assert.IsTrue(setters.Any(li => li.NewNaw1.Woonplaats == "g"),
                          "Naw met woonplaats g had verplaatst moeten worden, dit is niet gebeurd.");
            Assert.IsTrue(setters.Any(li => li.NewNaw1.Woonplaats == "i"),
                          "Naw met woonplaats i had verplaatst moeten worden, dit is niet gebeurd.");
            //     Assert.IsTrue(array.CheckIsGesorteerd()); Wordt al bij andere testcase beoordeeld.
            Assert.IsFalse(Alg1.Practica.Utils.Globals.Alg1NawArrayMethodCalled,
                           "\n\nEr wordt een methode van Alg1NawArray gebruikt!\n\n");
        }
        public static NAW[] GenerateAndFill <T>(T subject, int n, DesiredOrdering ordering = DesiredOrdering.None)
            where T : INawArray
        {
            var             tmp = RandomNawGenerator.NewArray(n);
            Func <NAW, NAW> id  = (naw) => naw;

            if (ordering == DesiredOrdering.Ascending)
            {
                tmp = tmp.OrderBy(id).ToArray();
            }
            else if (ordering == DesiredOrdering.Descending)
            {
                tmp = tmp.OrderByDescending(id).ToArray();
            }
            Helpers.WithoutLogging(() =>
            {
                subject.Array.SetValues((NAW[])tmp.Clone());
                subject.Count = tmp.Length;
            });
            // We have to clear the log because adding to the array will cause the logger to log as well.
            return(tmp);
        }
示例#9
0
        public void NawArrayUnordered_Add_FillWholeArray_ShouldFit()
        {
            // Arrange
            var expectedSize = 10;
            var expectedNaws = RandomNawGenerator.NewArray(expectedSize);

            var array = new NawArrayUnordered(expectedSize);

            // Act
            for (int i = 0; i < expectedSize; i++)
            {
                try
                {
                    array.Add(expectedNaws[i]);
                    Assert.AreEqual(i + 1, array.Count, "\n\nNawArrayUnordered.Add(): Het aantal elementen in de array komt niet overeen met het aantal toegevoegde items.");
                }
                catch (NawArrayUnorderedOutOfBoundsException)
                {
                    // Assert
                    Assert.Fail("\n\nNawArrayUnordered.Add(): Er konden maar {0} NAW-objecten aan een array die met omvang {1} is geinitialiseerd worden toegevoegd", i, expectedSize);
                }
            }
        }
示例#10
0
        public void NawArrayOrdered_Add_Valid_ShouldAddInOrder()
        {
            // Arrange
            char[] woonplaatsen = "abcde".ToCharArray();
            NAW[]  testSet      = RandomNawGenerator.NewArray(5);
            testSet[0].Woonplaats = woonplaatsen[3].ToString();
            testSet[1].Woonplaats = woonplaatsen[2].ToString();
            testSet[2].Woonplaats = woonplaatsen[4].ToString();
            testSet[3].Woonplaats = woonplaatsen[0].ToString();
            testSet[4].Woonplaats = woonplaatsen[1].ToString();

            var array = new NawArrayOrdered(20);


            for (int i = 0; i < testSet.Length; i++)
            {
                // Act
                array.Add(testSet[i]);

                // Assert
                Assert.IsTrue(array.CheckIsGesorteerd(), "NawArrayOrdered.Add(): Na het toevoegen van het element is de array niet langer goed gesorteerd.");
            }
        }
        public void NawArrayOrdered_Add_Valid_ShouldAddInOrder()
        {
            // Arrange
            char[] woonplaatsen = "abcde".ToCharArray();
            NAW[]  testSet      = RandomNawGenerator.NewArray(5);
            testSet[0].Woonplaats = woonplaatsen[3].ToString();
            testSet[1].Woonplaats = woonplaatsen[2].ToString();
            testSet[2].Woonplaats = woonplaatsen[4].ToString();
            testSet[3].Woonplaats = woonplaatsen[0].ToString();
            testSet[4].Woonplaats = woonplaatsen[1].ToString();

            WithOrderedArray(capacity: 20, filled: 0, f: array =>
            {
                WithoutCallingArrayMethods(() =>
                {
                    foreach (var naw in testSet)
                    {
                        array.Add(naw);
                        Assert.IsTrue(array.CheckIsGesorteerd(),
                                      "De Add-methode van NawArrayOrdered moet ervoor zorgen dat de elementen in de array altijd in de juiste volgorde staan. Jouw methode doet dit niet.");
                    }
                });
            });
        }