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"); }
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. }
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"); }
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); }
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); }
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); } } }
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."); } }); }); }