예제 #1
0
        public void Construct_FromRows_SetsPropertyValues()
        {
            Word4[]   rows = new Word4[] { new Word4("abcd"), new Word4("efgh"), new Word4("ijkl"), new Word4("mnop") };
            Word4Grid grid = new Word4Grid(rows[0], rows[1], rows[2], rows[3]);

            Assert.Equal('a', grid.A00);
            Assert.Equal('b', grid.A01);
            Assert.Equal('c', grid.A02);
            Assert.Equal('d', grid.A03);
            Assert.Equal('e', grid.A10);
            Assert.Equal('f', grid.A11);
            Assert.Equal('g', grid.A12);
            Assert.Equal('h', grid.A13);
            Assert.Equal('i', grid.A20);
            Assert.Equal('j', grid.A21);
            Assert.Equal('k', grid.A22);
            Assert.Equal('l', grid.A23);
            Assert.Equal('m', grid.A30);
            Assert.Equal('n', grid.A31);
            Assert.Equal('o', grid.A32);
            Assert.Equal('p', grid.A33);

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

            Assert.Equal(new Word4("aeim"), grid.Column1);
            Assert.Equal(new Word4("bfjn"), grid.Column2);
            Assert.Equal(new Word4("cgko"), grid.Column3);
            Assert.Equal(new Word4("dhlp"), grid.Column4);
        }
예제 #2
0
        public void WriteBlocks_CallsFuncForEachBlock()
        {
            Word4Grid grid = new Word4Grid(new Word4("abcd"), new Word4("efgh"), new Word4("ijkl"), new Word4("mnop"));

            List <string> blocks = new List <string>();

            grid.WriteBlocks(b => blocks.Add(b));

            Assert.Equal(new string[] { "abcd", "efgh", "ijkl", "mnop" }, blocks.ToArray());
        }
예제 #3
0
        public void Transpose_CreatesRowAndColumnSwappedGrid()
        {
            Word4[]   rows = new Word4[] { new Word4("abcd"), new Word4("efgh"), new Word4("ijkl"), new Word4("mnop") };
            Word4Grid grid = new Word4Grid(rows[0], rows[1], rows[2], rows[3]);

            Word4Grid gridT = grid.Transpose();

            Assert.Equal(new Word4("aeim"), gridT.Row1);
            Assert.Equal(new Word4("bfjn"), gridT.Row2);
            Assert.Equal(new Word4("cgko"), gridT.Row3);
            Assert.Equal(new Word4("dhlp"), gridT.Row4);
        }
예제 #4
0
        public void Equals_ComparesCorrectly()
        {
            Word4[]   rows   = new Word4[] { new Word4("abcd"), new Word4("efgh"), new Word4("ijkl"), new Word4("mnop") };
            Word4Grid grid1a = new Word4Grid(rows[0], rows[1], rows[2], rows[3]);
            Word4Grid grid1b = new Word4Grid(rows[0], rows[1], rows[2], rows[3]);
            Word4Grid grid2  = new Word4Grid(rows[0], rows[1], rows[2], rows[2]);

            Assert.True(grid1a.Equals(grid1b));
            Assert.True(grid1b.Equals(grid1a));
            Assert.False(grid1b.Equals(grid2));
            Assert.False(grid2.Equals(grid1a));
        }
예제 #5
0
        public void Crunch_FirstAndSecondColumnAndRowEqualButThirdRowGreater_ReturnsColumnIndexesFirst()
        {
            Word4Grid           grid  = new Word4Grid(new Word4("abcd"), new Word4("bcde"), new Word4("cdaz"), new Word4("deaa"));
            SortedTable <Word4> table = new SortedTable <Word4>();

            table.Add(new Word4("abcd"));
            table.Add(new Word4("bcde"));
            table.Add(new Word4("cdaa"));
            table.Add(new Word4("cdaz"));
            table.Add(new Word4("deaa"));
            table.Add(new Word4("deza"));

            Word4GridCruncher cruncher     = new Word4GridCruncher(table);
            CrunchedWord4Grid crunchedGrid = cruncher.Crunch(grid);

            CrunchedWord4Grid expectedGrid = new CrunchedWord4Grid(Idx(1), Idx(2), Idx(3), Idx(6), Idx(1), Idx(2), Idx(4), Idx(5));

            Assert.Equal(expectedGrid, crunchedGrid);
        }
예제 #6
0
        public void Crunch_FirstColumnAndRowEqualButSecondColumnGreater_ReturnsRowIndexesFirst()
        {
            Word4Grid           grid  = new Word4Grid(new Word4("abcd"), new Word4("baaa"), new Word4("czaa"), new Word4("dzaa"));
            SortedTable <Word4> table = new SortedTable <Word4>();

            table.Add(new Word4("abcd"));
            table.Add(new Word4("baaa"));
            table.Add(new Word4("bazz"));
            table.Add(new Word4("caaa"));
            table.Add(new Word4("czaa"));
            table.Add(new Word4("daaa"));
            table.Add(new Word4("dzaa"));

            Word4GridCruncher cruncher     = new Word4GridCruncher(table);
            CrunchedWord4Grid crunchedGrid = cruncher.Crunch(grid);

            CrunchedWord4Grid expectedGrid = new CrunchedWord4Grid(Idx(1), Idx(2), Idx(5), Idx(7), Idx(1), Idx(3), Idx(4), Idx(6));

            Assert.Equal(expectedGrid, crunchedGrid);
        }
예제 #7
0
        public void Crunch_ColumnsLessThanRows_ReturnsColumnIndexesFirst()
        {
            Word4Grid           grid  = new Word4Grid(new Word4("zbcd"), new Word4("aefg"), new Word4("ahij"), new Word4("aklm"));
            SortedTable <Word4> table = new SortedTable <Word4>();

            table.Add(new Word4("aefg"));
            table.Add(new Word4("ahij"));
            table.Add(new Word4("aklm"));
            table.Add(new Word4("behk"));
            table.Add(new Word4("cfil"));
            table.Add(new Word4("dgjm"));
            table.Add(new Word4("zaaa"));
            table.Add(new Word4("zbcd"));

            Word4GridCruncher cruncher     = new Word4GridCruncher(table);
            CrunchedWord4Grid crunchedGrid = cruncher.Crunch(grid);

            CrunchedWord4Grid expectedGrid = new CrunchedWord4Grid(Idx(7), Idx(4), Idx(5), Idx(6), Idx(8), Idx(1), Idx(2), Idx(3));

            Assert.Equal(expectedGrid, crunchedGrid);
        }
예제 #8
0
        public void ToString_OutputsRowsToString()
        {
            Word4Grid grid = new Word4Grid(new Word4("abcd"), new Word4("efgh"), new Word4("ijkl"), new Word4("mnop"));

            Assert.Equal("abcd\r\nefgh\r\nijkl\r\nmnop", grid.ToString());
        }