From 5b429b82facf38ec922f6aa2bd12b8a6f2160ed2 Mon Sep 17 00:00:00 2001 From: MarcUs7i <96580944+MarcUs7i@users.noreply.github.com> Date: Wed, 27 Nov 2024 17:30:10 +0100 Subject: [PATCH] Added Tests. Added Contains method --- FlexArray.Test/FlexArrayStringTests.cs | 47 ++++++++++++++++++++++++++ FlexArray/FlexArrayString.cs | 22 ++++++++++-- 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/FlexArray.Test/FlexArrayStringTests.cs b/FlexArray.Test/FlexArrayStringTests.cs index a6aaa3c..89bf184 100644 --- a/FlexArray.Test/FlexArrayStringTests.cs +++ b/FlexArray.Test/FlexArrayStringTests.cs @@ -83,4 +83,51 @@ public class FlexArrayStringTests array.Capacity.Should().BeGreaterThan(FlexArrayString.DefaultStartSize, "capacity exceeded, had to grow"); array.Count.Should().Be(FlexArrayString.DefaultStartSize + 2); } + + // Contains tests + [Fact] + public void Contains_Success() + { + var array = new FlexArrayString(); + array.Add("Goodbye"); + array.Add("World"); + array.Add("!"); + array.Add("bye..."); + + array.Contains("!") + .Should().BeTrue(); + } + + [Fact] + public void Contains_Success_AfterGrowth() + { + var array = new FlexArrayString(); + for (var i = 0; i <= FlexArrayString.DefaultStartSize; i++) + { + array.Add(i.ToString()); + } + + array.Contains(array[FlexArrayString.DefaultStartSize - 1]) + .Should().BeTrue(); + } + + [Fact] + public void Contains_Empty() + { + var array = new FlexArrayString(); + + array.Contains("Hi!") + .Should().BeFalse("collection is empty"); + } + + [Fact] + public void Contains_NotFound() + { + var array = new FlexArrayString(); + array.Add("Hello"); + array.Add("World"); + + array.Contains("!") + .Should().BeFalse("not contained in list"); + } } diff --git a/FlexArray/FlexArrayString.cs b/FlexArray/FlexArrayString.cs index d5d5828..9e10465 100644 --- a/FlexArray/FlexArrayString.cs +++ b/FlexArray/FlexArrayString.cs @@ -28,14 +28,32 @@ public class FlexArrayString _data = new string[size]; } - public void Add(string input) + public void Add(string value) { if (Capacity == Count) { Grow(); } - _data[Count++] = input; + _data[Count++] = value; + } + + public bool Contains(string value) + { + if (Count == 0) + { + return false; + } + + for (var i = 0; i < Count; i++) + { + if (_data[i] == value) + { + return true; + } + } + + return false; } private void Grow()