예제 #1
0
        public void CompareTo_ComparesCorrectly()
        {
            Word3 one   = new Word3("aaa");
            Word3 two   = new Word3("aab");
            Word3 three = new Word3("baa");
            Word3 four  = new Word3("bba");

            Assert.True(one.CompareTo(one) == 0);
            Assert.True(one.CompareTo(two) < 0);
            Assert.True(one.CompareTo(three) < 0);
            Assert.True(one.CompareTo(four) < 0);

            Assert.True(two.CompareTo(one) > 0);
            Assert.True(two.CompareTo(two) == 0);
            Assert.True(two.CompareTo(three) < 0);
            Assert.True(two.CompareTo(four) < 0);

            Assert.True(three.CompareTo(one) > 0);
            Assert.True(three.CompareTo(two) > 0);
            Assert.True(three.CompareTo(three) == 0);
            Assert.True(three.CompareTo(four) < 0);

            Assert.True(four.CompareTo(one) > 0);
            Assert.True(four.CompareTo(two) > 0);
            Assert.True(four.CompareTo(three) > 0);
            Assert.True(four.CompareTo(four) == 0);
        }
예제 #2
0
        public void Construct_FromChars_SetsPropertyValues()
        {
            Word3 c = new Word3('a', 'b', 'c');

            Assert.Equal('a', c.L1);
            Assert.Equal('b', c.L2);
            Assert.Equal('c', c.L3);
        }
예제 #3
0
        public void Construct_FromString_SetsPropertyValues()
        {
            Word3 c = new Word3("abc");

            Assert.Equal('a', c.L1);
            Assert.Equal('b', c.L2);
            Assert.Equal('c', c.L3);
        }
예제 #4
0
        public void Construct_WordSequence_AddsToTrie()
        {
            Word3 w1 = new Word3("aaa");
            Word3 w2 = new Word3("zzz");

            Word3Trie trie = new Word3Trie(new Word3[] { w1, w2 });

            Assert.True(trie.Contains(w1));
            Assert.True(trie.Contains(w2));
        }
예제 #5
0
        public void Transpose_CreatesRowAndColumnSwappedGrid()
        {
            Word3[]   rows = new Word3[] { new Word3("abc"), new Word3("efg"), new Word3("ijk") };
            Word3Grid grid = new Word3Grid(rows[0], rows[1], rows[2]);

            Word3Grid gridT = grid.Transpose();

            Assert.Equal(new Word3("aei"), gridT.Row1);
            Assert.Equal(new Word3("bfj"), gridT.Row2);
            Assert.Equal(new Word3("cgk"), gridT.Row3);
        }
예제 #6
0
        public void Equals_ComparesCorrectly()
        {
            Word3[]   rows   = new Word3[] { new Word3("abc"), new Word3("efg"), new Word3("ijk") };
            Word3Grid grid1a = new Word3Grid(rows[0], rows[1], rows[2]);
            Word3Grid grid1b = new Word3Grid(rows[0], rows[1], rows[2]);
            Word3Grid grid2  = new Word3Grid(rows[0], rows[1], rows[1]);

            Assert.True(grid1a.Equals(grid1b));
            Assert.True(grid1b.Equals(grid1a));
            Assert.False(grid1b.Equals(grid2));
            Assert.False(grid2.Equals(grid1a));
        }
예제 #7
0
        public void GetHashCode_UniqueUnlessValuesAreEqual()
        {
            Word3 one  = new Word3("one");
            Word3 oneA = new Word3("one");
            Word3 two  = new Word3("two");
            Word3 twoA = new Word3("two");

            int c1  = one.GetHashCode();
            int c2  = two.GetHashCode();
            int c1a = oneA.GetHashCode();
            int c2a = twoA.GetHashCode();

            Assert.Equal(c1, c1a);
            Assert.Equal(c2, c2a);
            Assert.NotEqual(c1, c2);
        }
예제 #8
0
        public void Equals_ComparesCorrectly()
        {
            Word3  one  = new Word3("one");
            Word3  oneA = new Word3("one");
            Word3  two  = new Word3("two");
            Word3  twoA = new Word3("two");
            object twoO = two;

            Assert.True(one.Equals(oneA));
            Assert.True(oneA.Equals(one));
            Assert.True(two.Equals(twoA));
            Assert.True(twoA.Equals(two));
            Assert.True(two.Equals(twoO));

            Assert.False(one.Equals(two));
            Assert.False(two.Equals(one));
            Assert.False(two.Equals(null));
        }
예제 #9
0
        public void Construct_FromRows_SetsPropertyValues()
        {
            Word3[]   rows = new Word3[] { new Word3("abc"), new Word3("efg"), new Word3("ijk") };
            Word3Grid grid = new Word3Grid(rows[0], rows[1], rows[2]);

            Assert.Equal('a', grid.A00);
            Assert.Equal('b', grid.A01);
            Assert.Equal('c', grid.A02);
            Assert.Equal('e', grid.A10);
            Assert.Equal('f', grid.A11);
            Assert.Equal('g', grid.A12);
            Assert.Equal('i', grid.A20);
            Assert.Equal('j', grid.A21);
            Assert.Equal('k', grid.A22);

            Assert.Equal(rows[0], grid.Row1);
            Assert.Equal(rows[1], grid.Row2);
            Assert.Equal(rows[2], grid.Row3);

            Assert.Equal(new Word3("aei"), grid.Column1);
            Assert.Equal(new Word3("bfj"), grid.Column2);
            Assert.Equal(new Word3("cgk"), grid.Column3);
        }
예제 #10
0
        public void ToString_ReturnsWord()
        {
            Word3 word = new Word3("abc");

            Assert.Equal("abc", word.ToString());
        }