Пример #1
0
        public void Should_Delete_Element_At_First_Occurence_Typeof_Prepend()
        {
            LinkedListHelpers <char> .Clear();

            LinkedListHelpers <char> .Prepend('A'); //head

            LinkedListHelpers <char> .Prepend('C'); //head.next

            LinkedListHelpers <char> .Prepend('Z'); //head.next.next

            LinkedListHelpers <char> .Prepend('Z'); //head.next.next.next

            LinkedListHelpers <char> .Prepend('A'); //head.next.next.next.next

            LinkedListHelpers <char> .Prepend('C'); //head.next.next.next.next.next

            LinkedListHelpers <char> .Remove('Z');

            Assert.Equal(5, LinkedListHelpers <char> .Count);
            Assert.Equal(new char[] { 'A', 'C', 'Z', 'A', 'C' }, LinkedListHelpers <char> .ToArray());

            LinkedListHelpers <char> .Remove('A');

            Assert.Equal(4, LinkedListHelpers <char> .Count);

            Assert.Equal(new char[] { 'C', 'Z', 'A', 'C' }, LinkedListHelpers <char> .ToArray());
        }
        public void ShouldRemoveValuesAppearingMoreThanTwice()
        {
            // Arrange
            DynamicList <char> shoppingList = new DynamicList <char>();

            shoppingList.Add('E');
            shoppingList.Add('B');
            shoppingList.Add('E');
            shoppingList.Add('E');
            shoppingList.Add('B');
            shoppingList.Add('A');
            shoppingList.Add('B');

            //Act
            LinkedListHelpers.RemoveNodesRepeatingMoreThanTwoTimes(shoppingList);

            //Assert
            int expectedCount = 5;

            Assert.AreEqual(expectedCount, shoppingList.Count);

            //Assert individual values
            Assert.AreEqual(shoppingList[0], 'E');
            Assert.AreEqual(shoppingList[1], 'B');
            Assert.AreEqual(shoppingList[2], 'E');
            Assert.AreEqual(shoppingList[3], 'B');
            Assert.AreEqual(shoppingList[4], 'A');
        }
Пример #3
0
        public static void Main()
        {
            Node linked_list = LinkedListHelpers.createLinkedList(
                new string[] { "E", "B", "E", "E", "B", "A", "B" });
            Node filteredList = LinkedListHelpers.removeDuplicate(linked_list);

            LinkedListHelpers.print(filteredList);
        }
Пример #4
0
        public void Should_Not_Throw_When_Appending_At_Empty_Position()
        {
            LinkedListHelpers <char> .Clear();

            LinkedListHelpers <char> .InsertAt('B', 10);

            Assert.Equal(0, LinkedListHelpers <char> .Count);
        }
Пример #5
0
        public void Should_Delete_Element_From_Single_Element_List_With_Index()
        {
            LinkedListHelpers <char> .Clear();

            LinkedListHelpers <char> .Append('A');

            LinkedListHelpers <char> .RemoveAt(0);

            Assert.Equal(0, LinkedListHelpers <char> .Count);
            Assert.Equal(new char[] { }, LinkedListHelpers <char> .ToArray());//empty
        }
Пример #6
0
        public void Should_Not_Find_First()
        {
            LinkedListHelpers <char> .Clear();

            Predicate <char> prediction = p => p == 'A';

            char ch = 'A';

            Assert.False(LinkedListHelpers <char> .TryFindFirst(prediction, out ch));

            Assert.Equal(0, LinkedListHelpers <char> .Count);
        }
Пример #7
0
        public void Should_Append_To_Empty_List()
        {
            LinkedListHelpers <char> .Clear();

            LinkedListHelpers <char> .Append('A');

            Assert.Equal('A', LinkedListHelpers <char> ._getElementAt(0));
            Assert.Equal(1, LinkedListHelpers <char> .Count);

            LinkedListHelpers <char> .RemoveAt(0);

            Assert.Equal(0, LinkedListHelpers <char> .Count);
        }
Пример #8
0
        public void Should_Append_To_NonEmpty_List()
        {
            LinkedListHelpers <char> .Clear();

            LinkedListHelpers <char> .Append('A');

            LinkedListHelpers <char> .Append('B');

            Assert.Equal(2, LinkedListHelpers <char> .Count);

            Assert.NotEqual(new char[] { 'A', 'B' }, LinkedListHelpers <char> .ToArray());
            Assert.Equal(new char[] { 'B', 'A' }, LinkedListHelpers <char> .ToArray());
        }
Пример #9
0
        public void Should_Not_Throw_When_Deleting_From_Empty_List_After_Appending_Some_Data()
        {
            LinkedListHelpers <char> .Clear();

            LinkedListHelpers <char> .Append('A');

            LinkedListHelpers <char> .Remove('A');

            LinkedListHelpers <char> .Remove('A');

            Assert.Equal(0, LinkedListHelpers <char> .Count);

            Assert.Equal(new char[] { }, LinkedListHelpers <char> .ToArray());
        }
Пример #10
0
        public void TestLinkedListContainsTheCorrectLengthof2()
        {
            LinkedList <char> myList = new LinkedList <char>();

            myList.AddFirst('a');
            myList.AddFirst('a');
            myList.AddFirst('a');
            myList.AddFirst('a');
            myList.AddFirst('a');
            myList.AddFirst('a');
            myList.AddFirst('a');
            myList.AddFirst('a');
            Assert.AreEqual(2, LinkedListHelpers.deletedDuplicateChar(myList).Count);
        }
Пример #11
0
        public void LinkedListHelper_creates_linked_list()
        {
            //Test using the provided question
            Node linkedList = LinkedListHelpers.createLinkedList(
                new string[] { "E", "B", "E", "E", "B", "A", "B" });

            using (var sw = new StringWriter())
            {
                Console.SetOut(sw);
                LinkedListHelpers.print(linkedList);
                var result = sw.ToString().Trim();
                Assert.AreEqual(result, "E->B->E->E->B->A->B");
            }
        }
Пример #12
0
        public void LinkedListHelper_removes_duplicates_where_its_words()
        {
            Node linkedList = LinkedListHelpers.createLinkedList(
                new string[] { "BA", "BA", "BA", "BE", "BI", "BE", "BE" });
            Node filtered = LinkedListHelpers.removeDuplicate(linkedList);

            using (var sw = new StringWriter())
            {
                Console.SetOut(sw);
                LinkedListHelpers.print(filtered);
                var result = sw.ToString().Trim();
                Assert.AreEqual("BA->BA->BE->BI->BE", result);
            }
        }
Пример #13
0
        public void LinkedListHelper_remove_duplicates_for_provided_test_case()
        {
            //Test using the provided question
            Node linkedList = LinkedListHelpers.createLinkedList(
                new string[] { "E", "B", "E", "E", "B", "A", "B" });
            Node filtered = LinkedListHelpers.removeDuplicate(linkedList);

            using (var sw = new StringWriter())
            {
                Console.SetOut(sw);
                LinkedListHelpers.print(filtered);
                var result = sw.ToString().Trim();
                Assert.AreEqual("E->B->E->B->A", result);
            }
        }
Пример #14
0
        public void LinkedListHelper_maintains_list_where_no_duplicates()
        {
            //Test using the provided question
            Node linkedList = LinkedListHelpers.createLinkedList(
                new string[] { "BA", "BA", "BE", "BI", "BE", });
            Node filtered = LinkedListHelpers.removeDuplicate(linkedList);

            using (var sw = new StringWriter())
            {
                Console.SetOut(sw);
                LinkedListHelpers.print(filtered);
                var result = sw.ToString().Trim();
                Assert.AreEqual("BA->BA->BE->BI->BE", result);
            }
        }
Пример #15
0
        public void Should_Delete_Element_At_The_End_Typeof_Int()
        {
            LinkedListHelpers <char> .Clear();

            LinkedListHelpers <char> .Append('A'); //head.next.next

            LinkedListHelpers <char> .Append('B'); //head.next

            LinkedListHelpers <char> .Append('C'); //head

            LinkedListHelpers <char> .RemoveAt(2);

            Assert.Equal(2, LinkedListHelpers <char> .Count);
            Assert.Equal(new char[] { 'C', 'B' }, LinkedListHelpers <char> .ToArray());
        }
Пример #16
0
        public void Should_Find_First_Assign_CH_A_()
        {
            LinkedListHelpers <char> .Clear();

            LinkedListHelpers <char> .Prepend('A');

            Predicate <char> prediction = p => p == 'A';

            char ch = '0';

            Assert.True(LinkedListHelpers <char> .TryFindFirst(prediction, out ch));

            Assert.Equal(1, LinkedListHelpers <char> .Count);

            Assert.Equal('A', ch);
        }
Пример #17
0
        public void LinkedListHelper_LinkedListWithNoDuplicates_ReturnsList()
        {
            var linkedList = new SinglyLinkedList();

            linkedList.Add("A");
            linkedList.Add("E");
            linkedList.Add("B");

            LinkedListHelpers.RemoveNodesWithMoreThanTwoInstances(linkedList.Head);

            using (var sw = new StringWriter())
            {
                Console.SetOut(sw);
                linkedList.PrintList();
                var result = sw.ToString().Trim();
                Assert.AreEqual(result, "B->E->A->");
            }
        }
Пример #18
0
        public void Should_Do_Nothing_No_Duplicates_Greater_Than_3()
        {
            LinkedListHelpers <char> .Clear();

            LinkedListHelpers <char> .Append('A');

            LinkedListHelpers <char> .Append('B');

            LinkedListHelpers <char> .Append('E');

            LinkedListHelpers <char> .Append('B');

            LinkedListHelpers <char> .Append('E');

            LinkedListHelpers <char> .removeDuplicates();//removes duplicates leaving two if any

            Assert.Equal(5, LinkedListHelpers <char> .Count);
            Assert.Equal(new char[] { 'E', 'B', 'E', 'B', 'A' }, LinkedListHelpers <char> .ToArray());
        }
Пример #19
0
        public void Should_Not_Add_Elements_of_Type_Int_or_Any__To_Char()
        {
            LinkedListHelpers <char> .Clear();

            LinkedListHelpers <char> .Append('A');

            LinkedListHelpers <char> .Append('B');

            LinkedListHelpers <char> .Append('E');

            LinkedListHelpers <char> .Append('B');

            LinkedListHelpers <char> .Append('E');

            LinkedListHelpers <int> .Append(1);           //this is not added

            LinkedListHelpers <char> .removeDuplicates(); //removes duplicates leaving two if any

            Assert.Equal(5, LinkedListHelpers <char> .Count);
            Assert.Equal(new char[] { 'E', 'B', 'E', 'B', 'A' }, LinkedListHelpers <char> .ToArray());
        }