Exemplo n.º 1
0
            public void ReturnsExpectedResults()
            {
                WordHexagon hexagon = new WordHexagon(4)
                {
                    Lines =
                    {
                        // ReSharper disable StringLiteralTypo
                        [0] = "abcd",
                        [1] = "efghi",
                        [2] = "jklmno",
                        [3] = "p9q*rst",
                        [4] = "uvwxyz",
                        [5] = "01234",
                        [6] = "5678"
                    }
                };

                Assert.AreEqual("pu05", hexagon.CalculateDiagonalWordPattern(0));
                Assert.AreEqual("j9v16", hexagon.CalculateDiagonalWordPattern(1));
                Assert.AreEqual("ekqw27", hexagon.CalculateDiagonalWordPattern(2));
                Assert.AreEqual("afl", hexagon.CalculateDiagonalWordPattern(3));
                Assert.AreEqual("x38", hexagon.CalculateDiagonalWordPattern(4));
                Assert.AreEqual("bgmry4", hexagon.CalculateDiagonalWordPattern(5));
                Assert.AreEqual("chnsz", hexagon.CalculateDiagonalWordPattern(6));
                Assert.AreEqual("diot", hexagon.CalculateDiagonalWordPattern(7));
                // ReSharper restore StringLiteralTypo
            }
Exemplo n.º 2
0
            public void KNIGHTS_ARGENT_Example()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetHorizontalLineAtIndex(2, "knight");
                Assert.IsTrue(hexagon.SetDiagonalLineAtIndex(5, "argent"));
            }
Exemplo n.º 3
0
            public void CreatesExpectedUniqueWords()
            {
                WordHexagon hexagon = new WordHexagon();

                hexagon.SetDiagonalLineAtIndex(0, "nib");
                hexagon.SetDiagonalLineAtIndex(1, "visa");
                hexagon.SetDiagonalLineAtIndex(2, "bigly");
                hexagon.SetDiagonalLineAtIndex(3, "ache");
                hexagon.SetDiagonalLineAtIndex(4, "net");

                Console.WriteLine(hexagon);
                List <string> expectedWords = new List <string>
                {
                    "ban",
                    "vice",
                    "night",
                    "isle",
                    "bay",
                    "nib",
                    "visa",
                    "bigly",
                    "ache",
                    "net"
                };

                CollectionAssert.AreEquivalent(expectedWords, hexagon.UniqueWords);
            }
Exemplo n.º 4
0
            public void CreatesExpectedUniqueWords()
            {
                WordHexagon hexagon = new WordHexagon();

                hexagon.SetHorizontalLineAtIndex(0, "war");
                hexagon.SetHorizontalLineAtIndex(1, "taco");
                hexagon.SetHorizontalLineAtIndex(2, "night");
                hexagon.SetHorizontalLineAtIndex(3, "aloe");
                hexagon.SetHorizontalLineAtIndex(4, "pen");

                Console.WriteLine(hexagon);
                List <string> expectedWords = new List <string>
                {
                    "war",
                    "taco",
                    "night",
                    "aloe",
                    "pen",
                    "wagon",
                    "tile",
                    "rot",
                    "ache",
                    "nap"
                };

                CollectionAssert.AreEquivalent(expectedWords, hexagon.UniqueWords);
            }
Exemplo n.º 5
0
            public void SingleInvalidLine_ReturnsFalse(int index, string line)
            {
                WordHexagon hexagon = new WordHexagon(4);

                Assert.IsTrue(hexagon.ValidateHorizontalLines());

                hexagon.Lines[index] = line;
                Assert.IsFalse(hexagon.ValidateHorizontalLines(), $"After setting {line} at index {index}, it should be invalid.");
            }
Exemplo n.º 6
0
            public void SingleInvalidLine_ReturnsFalse(int index, string word)
            {
                WordHexagon hexagon = new WordHexagon(4);

                Assert.IsTrue(hexagon.ValidateHorizontalLines());

                hexagon.SetDiagonalLineAtIndex(index, word);
                Assert.IsFalse(hexagon.ValidateDiagonalLines(), $"After setting {word} at index {index}, it should be invalid.");
            }
Exemplo n.º 7
0
            public void NIGHT_FindsExpectedLines()
            {
                WordHexagon hexagon = new WordHexagon();

                hexagon.SetHorizontalLineAtIndex(2, "night");

                List <string> results = hexagon.FindDiagonalLineAtIndex(2);

                Assert.AreEqual("aegis", results[0]);
            }
Exemplo n.º 8
0
            public void KNIGHT_KABOO_ASHED_FindsExpectedLines()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetHorizontalLineAtIndex(2, "knight");
                hexagon.SetDiagonalLineAtIndex(1, "kaboo");
                hexagon.SetDiagonalLineAtIndex(6, "ashed");

                List <string> results = hexagon.FindHorizontalLineAtIndex(0);

                foreach (var result in results)
                {
                    Assert.AreEqual('a', result[2], $"Expected 'a' as the third character in {result}");
                }
                Assert.AreEqual("agar", results[0]);

                results = hexagon.FindHorizontalLineAtIndex(1);
                foreach (var result in results)
                {
                    Assert.AreEqual('s', result[3], $"Expected 's' as the fourth character in {result}");
                }
                Assert.AreEqual("abase", results[0]);

                //index 2 is KNIGHT, already placed.
                //index 3 tested above.

                results = hexagon.FindHorizontalLineAtIndex(4);
                foreach (var result in results)
                {
                    Assert.AreEqual('e', result[1], $"Expected 'e' as the middle character in {result}");
                }
                //Assert.AreEqual("bed", results[0]);

                results = hexagon.FindHorizontalLineAtIndex(5);
                foreach (var result in results)
                {
                    Assert.AreEqual('b', result[1], $"Expected 'b' as the second character in {result}");
                    Assert.AreEqual('d', result[5], $"Expected 'd' as the last character in {result}");
                }
                Assert.AreEqual("abound", results[0]);

                results = hexagon.FindHorizontalLineAtIndex(6);
                foreach (var result in results)
                {
                    Assert.AreEqual('o', result[1], $"Expected 'o' as the second character in {result}");
                }
                //Assert.AreEqual("aorta", results[0]);

                results = hexagon.FindHorizontalLineAtIndex(7);
                foreach (var result in results)
                {
                    Assert.AreEqual('o', result[1], $"Expected 'o' as the second character in {result}");
                }
                //Assert.AreEqual("boar", results[0]);
            }
Exemplo n.º 9
0
            public void NIGHT_ANGEL_ANTE_FindsExpectedLines()
            {
                WordHexagon hexagon = new WordHexagon();

                hexagon.SetHorizontalLineAtIndex(2, "night");
                hexagon.SetDiagonalLineAtIndex(2, "angel");
                hexagon.SetHorizontalLineAtIndex(1, "ante");

                List <string> results = hexagon.FindHorizontalLineAtIndex(3);

                Assert.AreEqual("axes", results[0]);
            }
Exemplo n.º 10
0
            public void NIGHT_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon();

                hexagon.SetHorizontalLineAtIndex(2, "night");

                Assert.AreEqual("___", hexagon.Lines[0]);
                Assert.AreEqual("____", hexagon.Lines[1]);
                Assert.AreEqual("night", hexagon.Lines[2]);
                Assert.AreEqual("____", hexagon.Lines[3]);
                Assert.AreEqual("___", hexagon.Lines[4]);
            }
Exemplo n.º 11
0
            public void CAT_Index_0_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon();

                hexagon.SetDiagonalLineAtIndex(0, "cat");

                Assert.AreEqual("___", hexagon.Lines[0]);
                Assert.AreEqual("____", hexagon.Lines[1]);
                Assert.AreEqual("c____", hexagon.Lines[2]);
                Assert.AreEqual("a___", hexagon.Lines[3]);
                Assert.AreEqual("t__", hexagon.Lines[4]);
            }
Exemplo n.º 12
0
            public void TURN_Index_3_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon();

                hexagon.SetDiagonalLineAtIndex(3, "turn");

                Assert.AreEqual("_t_", hexagon.Lines[0]);
                Assert.AreEqual("__u_", hexagon.Lines[1]);
                Assert.AreEqual("___r_", hexagon.Lines[2]);
                Assert.AreEqual("___n", hexagon.Lines[3]);
                Assert.AreEqual("___", hexagon.Lines[4]);
            }
Exemplo n.º 13
0
            public void CreatesSameDescription()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetHorizontalLineAtIndex(2, "knight");
                hexagon.SetDiagonalLineAtIndex(1, "kaboo");
                hexagon.SetDiagonalLineAtIndex(6, "ashed");

                WordHexagon hexagonCopy = new WordHexagon(hexagon);

                Assert.AreEqual(hexagon.ToString(), hexagonCopy.ToString());
            }
Exemplo n.º 14
0
            public void NIGHT_Index_6_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetDiagonalLineAtIndex(6, "night");

                Assert.AreEqual("__n_", hexagon.Lines[0]);
                Assert.AreEqual("___i_", hexagon.Lines[1]);
                Assert.AreEqual("____g_", hexagon.Lines[2]);
                Assert.AreEqual("___*_h_", hexagon.Lines[3]);
                Assert.AreEqual("_____t", hexagon.Lines[4]);
                Assert.AreEqual("_____", hexagon.Lines[5]);
                Assert.AreEqual("____", hexagon.Lines[6]);
            }
Exemplo n.º 15
0
            public void DAWN_Index_7_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetDiagonalLineAtIndex(7, "dawn");

                Assert.AreEqual("___d", hexagon.Lines[0]);
                Assert.AreEqual("____a", hexagon.Lines[1]);
                Assert.AreEqual("_____w", hexagon.Lines[2]);
                Assert.AreEqual("___*__n", hexagon.Lines[3]);
                Assert.AreEqual("______", hexagon.Lines[4]);
                Assert.AreEqual("_____", hexagon.Lines[5]);
                Assert.AreEqual("____", hexagon.Lines[6]);
            }
Exemplo n.º 16
0
            public void DOG_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetHorizontalLineAtIndex(4, "dog");

                Assert.AreEqual("____", hexagon.Lines[0]);
                Assert.AreEqual("_____", hexagon.Lines[1]);
                Assert.AreEqual("______", hexagon.Lines[2]);
                Assert.AreEqual("___*dog", hexagon.Lines[3]);
                Assert.AreEqual("______", hexagon.Lines[4]);
                Assert.AreEqual("_____", hexagon.Lines[5]);
                Assert.AreEqual("____", hexagon.Lines[6]);
            }
Exemplo n.º 17
0
            public void TURNIP_Index_5_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetDiagonalLineAtIndex(5, "turnip");

                Assert.AreEqual("_t__", hexagon.Lines[0]);
                Assert.AreEqual("__u__", hexagon.Lines[1]);
                Assert.AreEqual("___r__", hexagon.Lines[2]);
                Assert.AreEqual("___*n__", hexagon.Lines[3]);
                Assert.AreEqual("____i_", hexagon.Lines[4]);
                Assert.AreEqual("____p", hexagon.Lines[5]);
                Assert.AreEqual("____", hexagon.Lines[6]);
            }
Exemplo n.º 18
0
            public void TURNS_Index_1_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetDiagonalLineAtIndex(1, "turns");

                Assert.AreEqual("____", hexagon.Lines[0]);
                Assert.AreEqual("_____", hexagon.Lines[1]);
                Assert.AreEqual("t_____", hexagon.Lines[2]);
                Assert.AreEqual("_u_*___", hexagon.Lines[3]);
                Assert.AreEqual("_r____", hexagon.Lines[4]);
                Assert.AreEqual("_n___", hexagon.Lines[5]);
                Assert.AreEqual("_s__", hexagon.Lines[6]);
            }
Exemplo n.º 19
0
            public void DOG_Index_4_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetDiagonalLineAtIndex(4, "dog");

                Assert.AreEqual("____", hexagon.Lines[0]);
                Assert.AreEqual("_____", hexagon.Lines[1]);
                Assert.AreEqual("______", hexagon.Lines[2]);
                Assert.AreEqual("___*___", hexagon.Lines[3]);
                Assert.AreEqual("___d__", hexagon.Lines[4]);
                Assert.AreEqual("___o_", hexagon.Lines[5]);
                Assert.AreEqual("___g", hexagon.Lines[6]);
            }
Exemplo n.º 20
0
            public void NIGHT_ANGEL_Index_2_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon();

                hexagon.SetHorizontalLineAtIndex(2, "night");

                hexagon.SetDiagonalLineAtIndex(2, "angel");

                Assert.AreEqual("a__", hexagon.Lines[0]);
                Assert.AreEqual("_n__", hexagon.Lines[1]);
                Assert.AreEqual("night", hexagon.Lines[2]);
                Assert.AreEqual("__e_", hexagon.Lines[3]);
                Assert.AreEqual("__l", hexagon.Lines[4]);
            }
Exemplo n.º 21
0
            public void CAT_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetHorizontalLineAtIndex(3, "cat");

                Assert.AreEqual("____", hexagon.Lines[0]);
                Assert.AreEqual("_____", hexagon.Lines[1]);
                Assert.AreEqual("______", hexagon.Lines[2]);
                Assert.AreEqual("cat*___", hexagon.Lines[3]);
                Assert.AreEqual("______", hexagon.Lines[4]);
                Assert.AreEqual("_____", hexagon.Lines[5]);
                Assert.AreEqual("____", hexagon.Lines[6]);
            }
Exemplo n.º 22
0
            public void NIGHT_Index7_CreatesExpectedPuzzle()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetHorizontalLineAtIndex(7, "dawn");

                Assert.AreEqual("____", hexagon.Lines[0]);
                Assert.AreEqual("_____", hexagon.Lines[1]);
                Assert.AreEqual("______", hexagon.Lines[2]);
                Assert.AreEqual("___*___", hexagon.Lines[3]);
                Assert.AreEqual("______", hexagon.Lines[4]);
                Assert.AreEqual("_____", hexagon.Lines[5]);
                Assert.AreEqual("dawn", hexagon.Lines[6]);
            }
Exemplo n.º 23
0
            public void KNIGHT_KABOB_FindsExpectedLines()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetHorizontalLineAtIndex(2, "knight");
                hexagon.SetDiagonalLineAtIndex(1, "kabob");

                List <string> results = hexagon.FindHorizontalLineAtIndex(3);

                Assert.AreEqual("bah", results[0]);
                foreach (var result in results)
                {
                    Assert.AreEqual('a', result[1], $"Expected 'a' as the middle character in {result}");
                }
            }
Exemplo n.º 24
0
            public void KNIGHT_FindsExpectedLines()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetHorizontalLineAtIndex(2, "knight");

                List <string> results = hexagon.FindDiagonalLineAtIndex(1);

                //should start with K
                Assert.AreEqual("kabob", results[0]);
                foreach (var result in results)
                {
                    StringAssert.StartsWith("k", result, $"Expected {result} to start with k.");
                }
            }
Exemplo n.º 25
0
            public void ExcludesSingleVersionsOfWords()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetHorizontalLineAtIndex(1, "rocks");

                var  candidates = hexagon.FindDiagonalLineAtIndex(0);
                bool foundRock  = false;

                foreach (string candidate in candidates)
                {
                    if (candidate == "rock")
                    {
                        foundRock = true;
                    }
                }
                Assert.IsFalse(foundRock, "Should not have found ROCK because ROCKS is already in the puzzle.");
            }
Exemplo n.º 26
0
            public void NoAssertions()
            {
                WordHexagon hexagon = new WordHexagon();

                hexagon.SetHorizontalLineAtIndex(0, "ban");
                hexagon.SetHorizontalLineAtIndex(1, "vice");
                hexagon.SetHorizontalLineAtIndex(2, "night");
                hexagon.SetHorizontalLineAtIndex(3, "isle");
                hexagon.SetHorizontalLineAtIndex(4, "bay");

                const string FILE_NAME = "test.xml";

                if (File.Exists(FILE_NAME))
                {
                    File.Delete(FILE_NAME);
                }
                hexagon.Serialize(FILE_NAME);
            }
Exemplo n.º 27
0
            public void ReturnsExpectedString()
            {
                WordHexagon hexagon = new WordHexagon();

                hexagon.SetHorizontalLineAtIndex(2, "night");
                hexagon.SetDiagonalLineAtIndex(2, "angel");
                hexagon.SetHorizontalLineAtIndex(1, "ante");

                const string EXPECTED_STRING =
                    @"  A _ _
 A N T E
N I G H T
 _ _ E _
  _ _ L
Unique words: night, angel, ante
";

                Assert.AreEqual(EXPECTED_STRING, hexagon.ToString());
            }
Exemplo n.º 28
0
            public void ReturnsExpectedString()
            {
                WordHexagon hexagon = new WordHexagon(4);

                hexagon.SetHorizontalLineAtIndex(2, "knight");
                hexagon.SetDiagonalLineAtIndex(1, "kaboo");
                hexagon.SetDiagonalLineAtIndex(6, "ashed");

                const string EXPECTED_STRING =
                    @"   _ _ A _
  _ _ _ S _
 K N I G H T
_ A _ * _ E _
 _ B _ _ _ D
  _ O _ _ _
   _ O _ _
Unique words: knight, kaboo, ashed
";

                Assert.AreEqual(EXPECTED_STRING, hexagon.ToString());
            }
Exemplo n.º 29
0
            public void ReturnsExpectedResults()
            {
                WordHexagon hexagon = new WordHexagon
                {
                    Lines =
                    {
                        // ReSharper disable StringLiteralTypo
                        [0] = "abc",
                        [1] = "defg",
                        [2] = "hijkl",
                        [3] = "mnop",
                        [4] = "qrs"
                    }
                };

                Assert.AreEqual("hmq", hexagon.CalculateDiagonalWordPattern(0));
                Assert.AreEqual("dinr", hexagon.CalculateDiagonalWordPattern(1));
                Assert.AreEqual("aejos", hexagon.CalculateDiagonalWordPattern(2));
                Assert.AreEqual("bfkp", hexagon.CalculateDiagonalWordPattern(3));
                Assert.AreEqual("cgl", hexagon.CalculateDiagonalWordPattern(4));
                // ReSharper restore StringLiteralTypo
            }