示例#1
0
        public void Question01ShouldRemoveDuplicatesWithNoBuffer()
        {
            var linkedList = new LinkedList <int>();

            linkedList.AppendToTail(1);
            linkedList.AppendToTail(2);
            linkedList.AppendToTail(2);
            linkedList.AppendToTail(3);
            linkedList.AppendToTail(3);

            Question01 <int> .RemoveDuplicatesNoBuffer(linkedList);

            var expected = new LinkedList <int>();

            expected.AppendToTail(1);
            expected.AppendToTail(2);
            expected.AppendToTail(3);

            int expectedFirst  = expected.Head.Value;
            int expectedSecond = expected.Head.Next.Value;
            int expectedThird  = expected.Head.Next.Next.Value;

            int actualFirst  = linkedList.Head.Value;
            int actualSecond = linkedList.Head.Next.Value;
            int actualThird  = linkedList.Head.Next.Next.Value;

            Assert.Equal(expectedFirst, actualFirst);
            Assert.Equal(expectedSecond, actualSecond);
            Assert.Equal(expectedThird, actualThird);
        }
示例#2
0
        public void Q01TestUniques()
        {
            var q = new Question01();

            // Should return true
            Assert.IsTrue(q.IsUniqueAscii("abc"));
            Assert.IsTrue(q.IsUniqueAscii(""));

            // Should return false
            Assert.IsFalse(q.IsUniqueAscii("aa"));
            Assert.IsFalse(q.IsUniqueAscii("abcdefghijklmnopqrstuvwxyza"));
        }
示例#3
0
        public void Question01ShouldMergeSortWithEqualNumbers()
        {
            int[] first = new int[] {
                10, 25, 43, 199
            };

            int[] second = new int[] {
                10, 25, 43, 199
            };

            int[] merged = Question01.MergeAndSort(first, second);

            int[] expected = new int[] {
                10, 10, 25, 25, 43, 43, 199, 199
            };

            Assert.Equal(expected, merged);
        }
示例#4
0
        public void Question01ShouldMergeSort()
        {
            int[] first = new int[] {
                10, 25, 43, 199
            };

            int[] second = new int[] {
                1, 14, 22, 2000
            };

            int[] merged = Question01.MergeAndSort(first, second);

            int[] expected = new int[] {
                1, 10, 14, 22, 25, 43, 199, 2000
            };

            Assert.Equal(expected, merged);
        }
示例#5
0
        public void Question01ShouldFindUniqueCharacters()
        {
            Assert.False(Question01.HasUniqueCharacters("aa"));
            Assert.False(Question01.HasUniqueCharacters2("aa"));

            Assert.False(Question01.HasUniqueCharacters("This is just a string"));
            Assert.False(Question01.HasUniqueCharacters2("This is just a string"));

            Assert.True(Question01.HasUniqueCharacters("aA"));
            Assert.True(Question01.HasUniqueCharacters2("aA"));

            Assert.True(Question01.HasUniqueCharacters("abcdefg"));
            Assert.True(Question01.HasUniqueCharacters2("abcdefg"));

            Assert.False(Question01.HasUniqueCharacters("  "));
            Assert.False(Question01.HasUniqueCharacters2("  "));

            Assert.True(Question01.HasUniqueCharacters(null));
            Assert.True(Question01.HasUniqueCharacters2(null));

            // Add all ascii characters to a string to check
            string allAsciiCharacters = "";

            for (int i = 0; i <= 255; i++)
            {
                char c = (char)i;
                allAsciiCharacters += c;
            }

            Assert.True(Question01.HasUniqueCharacters(allAsciiCharacters));
            Assert.True(Question01.HasUniqueCharacters2(allAsciiCharacters));

            // Add a duplicate character to check again
            allAsciiCharacters += (char)0;

            Assert.False(Question01.HasUniqueCharacters(allAsciiCharacters));
            Assert.False(Question01.HasUniqueCharacters2(allAsciiCharacters));
        }