Ejemplo n.º 1
0
        public void PrependValueToEmptyList_ListContainsValue_ReturnsTrue()
        {
            T value = this.CreateSampleValue();

            DLList <T> list = new DLList <T>();

            list.Prepend(value);

            T valueToSeek = this.CreateSampleValue();

            bool listContains = list.Contains(valueToSeek);

            Assert.IsTrue(listContains);
        }
Ejemplo n.º 2
0
        public void TestMethodAddToHead1()
        {
            DLLNode p   = new DLLNode("1");
            DLList  dll = new DLList();

            dll.addToHead(p);
            p = new DLLNode("2");
            dll.addToHead(p);
            p = new DLLNode("3");
            dll.addToHead(p);
            //Head should be 3, Tail should be 1, and tail.next and head.previous should be null
            Assert.AreEqual(true, (dll.head.str == "3" && dll.tail.str == "1"));
            Assert.AreEqual(true, (dll.head.previous == null && dll.tail.next == null));
        }//End of TestMethodAddToHead1
Ejemplo n.º 3
0
        AppendTwoElements_GetTailOfFirstElementInTwoElementsList_ReturnsArrayWithOneElementSecondInList()
        {
            DLList <T> list          = new DLList <T>();
            T          firsElement   = this.CreateDifferentValue();
            T          secondElement = this.CreateSampleValue();

            list.Append(firsElement);
            list.Append(secondElement);

            T[] resultTail   = list.GetTail(firsElement);
            T[] expectedTail = new T[] { secondElement };

            CollectionAssert.AreEqual(expectedTail, resultTail);
        }
Ejemplo n.º 4
0
        public void Testremovetail2()
        {
            string[]   str  = new string[30];
            int        i    = 0;
            FileStream f    = new FileStream("C:/Users/edgu1/Desktop/222525.txt", FileMode.Open, FileAccess.Read);
            DLList     pDLL = new DLList();
            string     line;

            try
            {
                StreamReader m_streamReader = new StreamReader(f);
                //StreamReader read txt
                m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
                //read from head to tail by lines
                while ((line = m_streamReader.ReadLine()) != null)
                {
                    DLLNode d = new DLLNode(line);
                    pDLL.addToTail(d);
                    str[i] = line;
                    i++;
                }
                m_streamReader.Close();
            }
            catch (FileNotFoundException e)
            {
                Console.WriteLine("errors" + e.ToString());
            }
            pDLL.removeTail();
            ////////////////////////
            string[] str2 = new string[20];
            int      j    = 0;
            DLLNode  tail = pDLL.tail;

            while (tail.previous != null)
            {
                str2[j] = tail.str;
                j++;
                tail = tail.previous;
            }
            str2[j] = tail.str;
            /// /////////////////////////////////////
            string dd = null;

            if (str2[0] == "6")
            {
                dd = str[j + 1];
            }
            Assert.AreEqual("54", dd);
        }
Ejemplo n.º 5
0
        public void TestMethodRemovHead2()
        {
            DLLNode p   = new DLLNode("1");
            DLList  dll = new DLList();

            dll.addToHead(p);
            p = new DLLNode("2");
            dll.addToHead(p);
            p = new DLLNode("3");
            dll.addToHead(p);
            dll.removHead();
            //Before removal, order should be 3,2,1
            //After, should be null -> 2 -> 1 -> null
            Assert.AreEqual(true, (dll.head.previous == null && dll.head.str == "2" && dll.head.next.str == "1" && dll.head.next.next == null));
        }//End of TestMethodRemovHead2
Ejemplo n.º 6
0
        public void TestMethodRemoveTail3()
        {
            DLLNode p   = new DLLNode("1");
            DLList  dll = new DLList();

            dll.addToHead(p);
            p = new DLLNode("2");
            dll.addToHead(p);
            p = new DLLNode("3");
            dll.addToHead(p);
            dll.removeTail();
            //Before removal, order should be 3,2,1
            //After, should be null <- 3 <- 2 <- null
            Assert.AreEqual(true, (dll.tail.next == null && dll.tail.str == "1" && dll.tail.previous.str == "2" && dll.tail.previous.previous == null));
        }//End of TestMethodRemoveTail3
Ejemplo n.º 7
0
    public void Put(int key, int value)
    {
        if (capacity == 0)
        {
            return;
        }
        Node node;

        if (nodeDict.ContainsKey(key))
        {
            node       = nodeDict[key];
            node.value = value;
            Update(node);
        }
        else
        {
            node = new Node(key, value);
            nodeDict.Add(key, node);
            if (size == capacity)
            {
                DLList lastList = countDict[min];
                nodeDict.Remove(lastList.RemoveLast().key);
                size--;
            }
            size++;
            min = 1;

            DLList newList = null;
            if (countDict.ContainsKey(node.cnt))
            {
                newList = countDict[node.cnt];
            }
            else
            {
                newList = new DLList();
            }

            newList.Add(node);
            if (countDict.ContainsKey(node.cnt))
            {
                countDict[node.cnt] = newList;
            }
            else
            {
                countDict.Add(node.cnt, newList);
            }
        }
    }
Ejemplo n.º 8
0
        public void testRemoveNode4()
        {
            DLList  list  = new DLList();
            DLLNode node1 = new DLLNode(12);
            DLLNode node2 = new DLLNode(5);
            DLLNode node3 = new DLLNode(7);

            list.addToHead(node1);
            list.addToHead(node2);
            list.addToHead(node3);

            list.removeNode(node3);

            Assert.AreEqual(list.total(), 2);
            Assert.AreEqual(list.head, node2);
        }
Ejemplo n.º 9
0
        public void testSearch2()
        {
            DLList  list  = new DLList();
            DLLNode node1 = new DLLNode(5);
            DLLNode node2 = new DLLNode(7);
            DLLNode node3 = new DLLNode(1);
            DLLNode node4 = new DLLNode(16);


            list.addToHead(node1);
            list.addToHead(node2);
            list.addToHead(node3);
            list.addToHead(node4);

            Assert.IsNull(list.search(20));
        }
Ejemplo n.º 10
0
        public void TestMethodRemovTail1()
        {
            DLLNode p   = new DLLNode("1");
            DLList  dll = new DLList();

            dll.addToHead(p);
            p = new DLLNode("2");
            dll.addToHead(p);
            p = new DLLNode("3");
            dll.addToHead(p);
            dll.removeTail();
            //Before removal, order should be 3,2,1
            //After, should be 3,2, with head.previous null, and tail.next null
            Assert.AreEqual(true, (dll.head.str == "3" && dll.tail.str == "2"));
            Assert.AreEqual(true, (dll.head.previous == null && dll.tail.next == null));
        }//End of TestMethodRemovTail1
Ejemplo n.º 11
0
        public void TestMethodRemoveNode4()
        {
            DLLNode p   = new DLLNode("3");
            DLList  dll = new DLList();

            dll.addToHead(p);
            p = new DLLNode("2");
            dll.addToHead(p);
            p = new DLLNode("1");
            dll.addToHead(p);
            //DLL order == 1,2,3
            dll.removeNode(dll.head.next.next);
            //"4" should not be found, and should return null
            Assert.AreEqual(true, (dll.head.str == "1" && dll.tail.str == "3"));
            Assert.AreEqual(true, (dll.head.next.str == "2" && dll.head.next.next.str == "3" && dll.tail.previous.str == "2" && dll.tail.previous.previous.str == "1"));
            Assert.AreEqual(true, (dll.head.previous == null && dll.tail.next == null));
        } //End of TestMethodRemoveNode4
        public void TestSearch3()
        {
            DLList list = new DLList();

            DLLNode node1 = new DLLNode(5);
            DLLNode node2 = new DLLNode(4);
            DLLNode node3 = new DLLNode(3);
            DLLNode node4 = new DLLNode(2);
            DLLNode node5 = new DLLNode(7);

            list.addToHead(node1);
            list.addToHead(node2);
            list.addToHead(node3);
            list.addToHead(node4);
            list.addToHead(node5);

            Assert.IsNull(list.search(1));
        }
        public void TestRemoveTail2()
        {
            DLList  myDLL = new DLList();
            DLLNode p     = new DLLNode(1);

            myDLL.addToHead(p);
            DLLNode q = new DLLNode(2);

            myDLL.addToHead(q);
            DLLNode r = new DLLNode(3);

            myDLL.addToHead(r);

            myDLL.removeTail();

            // When removing tail (1) from DLL (3,2,1) new head should be 2
            Assert.AreEqual(myDLL.tail.num, 2);
        }
Ejemplo n.º 14
0
        public void testAddToHead2()
        {
            DLList  list  = new DLList();
            DLLNode node1 = new DLLNode(12);
            DLLNode node2 = new DLLNode(5);
            DLLNode node3 = new DLLNode(6);
            DLLNode node4 = new DLLNode(8);
            DLLNode node5 = new DLLNode(1);

            list.addToHead(node1);
            list.addToHead(node2);
            list.addToHead(node3);
            list.addToHead(node4);
            list.addToHead(node5);

            Assert.AreEqual(list.total(), 5);
            Assert.AreEqual(node5, list.head);
        }
        public void TestSearch1()
        {
            DLList  list  = new DLList();
            DLLNode node1 = new DLLNode(5);
            DLLNode node2 = new DLLNode(4);
            DLLNode node3 = new DLLNode(3);
            DLLNode node4 = new DLLNode(2);
            DLLNode node5 = new DLLNode(7);

            list.addToHead(node1);
            list.addToHead(node2);
            list.addToHead(node3);
            list.addToHead(node4);
            list.addToHead(node5);

            //Searching value 7 should == pointer to node5
            Assert.AreEqual(list.search(7), node5);
        }
        public void TestTotal2()
        {
            DLList  myDLL = new DLList();
            DLLNode p     = new DLLNode(1);

            myDLL.addToTail(p);
            DLLNode q = new DLLNode(2);

            myDLL.addToTail(q);
            DLLNode r = new DLLNode(3);

            myDLL.addToTail(r);
            DLLNode s = new DLLNode(4);

            myDLL.addToTail(s);
            DLLNode t = new DLLNode(-7);

            myDLL.addToTail(t);

            Assert.AreEqual(myDLL.total(), 5);
        }
        public void TestRemoveNode1()
        {
            DLList list = new DLList();

            DLLNode node1 = new DLLNode(5);
            DLLNode node2 = new DLLNode(4);
            DLLNode node3 = new DLLNode(3);
            DLLNode node4 = new DLLNode(2);
            DLLNode node5 = new DLLNode(7);

            list.addToHead(node1);
            list.addToHead(node2);
            list.addToHead(node3);
            list.addToHead(node4);
            list.addToHead(node5);

            list.removeNode(node3);

            // there should only be 4 nodes left and value
            // of 7 should not be present
            Assert.AreEqual(list.total(), 4);
            Assert.IsNull(list.search(3));
        }
Ejemplo n.º 18
0
        public void GetHeadElementFromEmptyList_ThrowsInvalidOperationException()
        {
            DLList <T> list = new DLList <T>();

            list.GetHead();
        }
Ejemplo n.º 19
0
        public void Testaddtotail()
        {
            //Program ss = new Program();
            /// Read the txt and insert into dllist
            string[]   str  = new string[30];
            int        i    = 0;
            FileStream f    = new FileStream("C:/Users/edgu1/Desktop/222525.txt", FileMode.Open, FileAccess.Read);
            DLList     pDLL = new DLList();
            string     line;

            try
            {
                StreamReader m_streamReader = new StreamReader(f);
                //StreamReader read txt
                m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
                //read from head to tail by lines
                while ((line = m_streamReader.ReadLine()) != null)
                {
                    DLLNode d = new DLLNode(line);
                    pDLL.addToTail(d);
                    str[i] = line;
                    i++;
                }
                m_streamReader.Close();
            }
            catch (FileNotFoundException e)
            {
                Console.WriteLine("errors" + e.ToString());
            }

            ////////////////////////
            string[] str2 = new string[20];
            int      j    = 0;
            DLLNode  head = pDLL.head;

            while (head.next != null)
            {
                str2[j] = head.str;
                j++;
                head = head.next;
            }
            Console.WriteLine(head.str);
            str2[j] = head.str;


            /// /////////////////////////////////////
            bool match = false;

            for (int k = 0; k < i; k++)
            {
                if (str[k] == str2[k])
                {
                    match = true;
                }
                else
                {
                    match = false; break;
                }
            }
            Assert.AreEqual(true, match);
        }
Ejemplo n.º 20
0
        public void testTotal1()
        {
            DLList list = new DLList();

            Assert.AreEqual(list.total(), 0);
        }
        public void TestTotal1()
        {
            DLList myDLL = new DLList();

            Assert.AreEqual(myDLL.total(), 0);
        }
        public void TestSearch2()
        {
            DLList list = new DLList();

            Assert.IsNull(list.search(1));
        }