Exemplo n.º 1
0
        public static void Main(string[] args)
        {
            PrintInitMessage();
            var inputStr = ReadMatrix();

            try
            {
                var isDelimiterUsedInInput = inputStr.Contains(COLUMN_DELIMITER);
                var parser = new StringInputParser(
                    isDelimiterUsedInInput ? COLUMN_DELIMITER : " ");
                var grid = parser.Parse(inputStr);

                PrintCostMatrix(grid);

                var pathProvider = new SmartPathProvider(MAX_COST);
                var lowestPath   = pathProvider.GetLowestTraversalPath(grid);

                PrintTraversalPath(lowestPath);
            }
            catch (Exception ex)
            {
                PrintErrorMessage(ex.Message);
            }

            WaitForKeyPress();
        }
        public void Parse_WhenInputTextIsNullOrWhiteSpace_ReturnNull(string input)
        {
            var parser = new StringInputParser() as IInputParser;

            var result = parser.Parse(input);

            Assert.IsNull(result);
        }
Exemplo n.º 3
0
        public void Parse_WhenInputTextIsNullOrWhiteSpace_ReturnNull(string input)
        {
            var parser = new StringInputParser() as IInputParser;

            var result = parser.Parse(input);

            Assert.IsNull(result);
        }
        public void Parse_GetFirstWordAsUserName(string input)
        {
            var parser = new StringInputParser() as IInputParser;

            var result = parser.Parse(input);

            Assert.IsNotNull(result);
            Assert.AreEqual("frantisek", result.UserName);
        }
Exemplo n.º 5
0
        public void Parse_GetFirstWordAsUserName(string input)
        {
            var parser = new StringInputParser() as IInputParser;

            var result = parser.Parse(input);

            Assert.IsNotNull(result);
            Assert.AreEqual("frantisek", result.UserName);
        }
        public void Parse_WhenThereIsJustOneWord_ReturnCommandAndDataAsNull()
        {
            var parser = new StringInputParser() as IInputParser;

            var result = parser.Parse("frantisek");

            Assert.IsNotNull(result);
            Assert.AreEqual("frantisek", result.UserName);
            Assert.IsNull(result.CommandText);
            Assert.IsNull(result.Data);
        }
        public void Parse_GetTheRestAfterSecondWordAsData(string input, string expectedData)
        {
            var parser = new StringInputParser() as IInputParser;

            var result = parser.Parse(input);

            Assert.IsNotNull(result);
            Assert.AreEqual("frantisek", result.UserName);
            Assert.AreEqual("wall", result.CommandText);
            Assert.AreEqual(expectedData, result.Data);
        }
        public void Parse_GetSecondWordAsCommand()
        {
            var parser = new StringInputParser() as IInputParser;

            var result = parser.Parse("frantisek command");

            Assert.IsNotNull(result);
            Assert.AreEqual("frantisek", result.UserName);
            Assert.AreEqual("command", result.CommandText);
            Assert.IsNull(result.Data);
        }
Exemplo n.º 9
0
        public void Parse_GetTheRestAfterSecondWordAsData(string input, string expectedData)
        {
            var parser = new StringInputParser() as IInputParser;

            var result = parser.Parse(input);

            Assert.IsNotNull(result);
            Assert.AreEqual("frantisek", result.UserName);
            Assert.AreEqual("wall", result.CommandText);
            Assert.AreEqual(expectedData, result.Data);
        }
Exemplo n.º 10
0
        public void Parse_GetSecondWordAsCommand()
        {
            var parser = new StringInputParser() as IInputParser;

            var result = parser.Parse("frantisek command");

            Assert.IsNotNull(result);
            Assert.AreEqual("frantisek", result.UserName);
            Assert.AreEqual("command", result.CommandText);
            Assert.IsNull(result.Data);
        }
Exemplo n.º 11
0
        public void Parse_WhenThereIsJustOneWord_ReturnCommandAndDataAsNull()
        {
            var parser = new StringInputParser() as IInputParser;

            var result = parser.Parse("frantisek");

            Assert.IsNotNull(result);
            Assert.AreEqual("frantisek", result.UserName);
            Assert.IsNull(result.CommandText);
            Assert.IsNull(result.Data);
        }
Exemplo n.º 12
0
        public void SolveCaptchasWithSimpleSolver()
        {
            SimpleCaptchaSolver solver  = new SimpleCaptchaSolver();
            StringInputParser   parser  = new StringInputParser();
            CaptchaService      service = new CaptchaService(parser, solver);

            Assert.Equal(3, service.SolveCaptcha("1122"));
            Assert.Equal(4, service.SolveCaptcha("1111"));
            Assert.Equal(0, service.SolveCaptcha("1234"));
            Assert.Equal(9, service.SolveCaptcha("91212129"));
        }
Exemplo n.º 13
0
        public void SolveCaptchasWithCircularSolver()
        {
            CircularCaptchaSolver solver  = new CircularCaptchaSolver();
            StringInputParser     parser  = new StringInputParser();
            CaptchaService        service = new CaptchaService(parser, solver);

            Assert.Equal(6, service.SolveCaptcha("1212"));
            Assert.Equal(0, service.SolveCaptcha("1221"));
            Assert.Equal(4, service.SolveCaptcha("123425"));
            Assert.Equal(12, service.SolveCaptcha("123123"));
            Assert.Equal(4, service.SolveCaptcha("12131415"));
        }
        public void RunMultipleAnalyzers()
        {
            StringInputParser parser = new StringInputParser();
            IEnumerable <IPassphraseAnalyzer> analyzers = new IPassphraseAnalyzer[]
            {
                new UniqueWordsAnalyzer(),
                new NoAnagramsAnalyzer()
            };

            PassphraseListChecker checker = new PassphraseListChecker(parser, analyzers);
            var input = "abcde fghij\naa bb cc dd aa\noiii ioii iioi iiio";

            Assert.Equal(1, checker.CountValidPassphrases(input));
        }
        public void CountValidPassphrasesFromList()
        {
            StringInputParser parser = new StringInputParser();
            IEnumerable <IPassphraseAnalyzer> analyzers = new IPassphraseAnalyzer[]
            {
                new UniqueWordsAnalyzer()
            };

            PassphraseListChecker checker = new PassphraseListChecker(parser, analyzers);

            var input = "aa bb cc dd ee\naa bb cc dd aa\naa bb cc dd aaa";

            Assert.Equal(2, checker.CountValidPassphrases(input));
        }
        public void Ensure_PathIsCalculatedSwiftly_OnLargeDataInput()
        {
            var inputStr = @"7, -35, -6, 0, -7, -10, -16, 27, 3, -29, 49, -24, -49, -13, -41, 25, 8, -33, -12, 24, 16, 13, -44, 22, -19, -18, 9, -26, -48, 5, 32, 50, 41, -38, -8, 46, -42, -30, 39, -14, -4, 31, -1, 12, -21, 34, 20, 44, 14, -2, 23, 15, 40, 45, -23, -25, 36, -9, 43, -32, 47, -27, -20, -5, -36, -34, 26, -43, 17, 29, 6, 38, -22, -39, 10, 19, 28, -37, -3, -45, 42, 33, -50, 37, -31, -40, 1, -47, -15, -28, 30, 2, 21, -17, 4, -46, 11, 18, 48, 35
-46, -45, -27, 1, 47, 19, 41, -22, -8, 6, -31, 21, -9, 32, -24, 15, -7, -33, -39, -15, -11, 40, 26, -40, -44, -42, -49, 49, 10, 24, -35, -47, 11, -18, -26, -5, -4, 42, -12, 33, 0, -23, 45, 48, 44, -13, -16, 43, 35, 46, 25, -36, 22, -50, -43, -28, 20, 13, -48, 4, -10, -17, 30, 38, 16, -25, 37, 2, 29, 27, 12, 14, 5, 17, -21, 31, -30, 39, -3, -2, 7, 18, -14, 3, -20, 34, -34, -38, -29, 36, 8, 28, -37, 9, -1, 50, 23, -41, -6, -32
47, 2, -4, -42, -29, -20, 4, -14, 29, 20, -21, 30, 32, 45, -19, -16, 35, 12, 1, 33, -47, 46, 16, 7, 3, 9, -34, 22, 43, -41, 6, 27, -8, -17, -37, 21, -35, -23, -9, -43, 26, -26, -5, -6, -48, 13, -46, 5, 39, 50, 11, 36, 41, 23, 25, 34, -24, 17, -39, 42, 14, -33, -27, -40, 15, 19, -15, -2, -13, -3, 48, -30, 24, -38, 0, 10, -12, 18, -1, -22, -36, -45, 38, -28, -44, 37, -11, 31, -31, 8, 44, 40, 49, -50, -7, -32, -25, 28, -18, -10
36, -13, -24, 28, -14, 1, -23, 40, -34, -31, -47, 25, 17, 8, 41, 12, -36, 24, -33, 46, 31, 15, 30, 29, -37, 49, -1, -26, -20, -43, -10, -3, 9, 43, -9, -38, -25, -44, 45, 14, -2, 27, 34, 11, -15, -41, 5, 32, -32, 19, -11, 47, 10, 39, -50, -49, 38, 48, 20, -39, -45, 22, -30, 42, 13, -6, 37, 4, -40, -19, 18, -21, 21, 6, -7, -17, -29, 3, -5, -18, -28, -22, 50, -46, 33, 44, 7, 23, 26, -42, -35, -48, -12, 35, -8, 2, -27, -4, 16, 0
-47, -1, 38, 18, -23, 47, 10, -15, 20, -46, 46, -7, -13, 34, 3, -12, -42, 4, 27, -28, -32, -38, -5, 7, -20, -26, -16, 49, -49, 39, 13, 16, 19, -10, 12, -40, 17, 48, 43, -29, 1, -41, -39, 25, -30, 37, 36, -17, 22, 33, 44, 26, -45, 42, 5, 45, -34, 6, -50, -3, 40, 32, 30, 35, -35, -21, 8, -8, 23, -37, 2, -22, -9, -14, -4, -48, -43, 29, -11, -44, -33, 21, -36, 28, -25, -27, 9, 14, 50, -19, -2, 0, 24, -31, -18, -24, 11, 41, -6, 15
15, 8, -23, 5, -46, -8, 39, -10, 38, -38, -41, 41, -15, 24, 40, -18, 3, 29, -16, -25, 45, -50, -32, -1, -37, -22, -7, 34, -44, 47, -40, -42, 32, -29, 2, 18, 23, 43, -12, -34, 16, -39, 12, 48, -17, 50, 11, 9, 6, -31, 35, -2, 20, -9, -21, -27, 37, 25, -47, -35, 46, -13, -30, -48, 19, -33, 1, -11, 17, -24, -19, 36, 28, 4, -5, -4, -43, -28, 21, 26, -3, -49, 44, -26, 0, 49, 22, -14, -45, -6, 10, 31, 42, 13, 27, 33, 14, 7, -36, 30
29, 10, 12, -40, -7, 16, -5, -8, 41, -37, -11, -30, 24, 0, 13, 6, 23, 36, 19, 11, -49, 2, 8, 46, 28, -22, -17, -9, 26, 5, -36, -25, -42, -41, 30, 39, -44, -21, -12, -34, 37, -50, 18, -20, -39, -2, -31, -10, 21, -43, 20, 17, 35, 3, -45, 42, 50, -48, -29, 33, 31, -24, 40, 34, 49, 7, -28, -1, 9, -3, 1, -47, -19, -4, -13, -27, 22, -26, -46, 44, -35, 15, 45, -33, 38, -14, -38, 48, -16, 4, 32, 27, -18, -6, -15, 47, 43, -32, -23, 14
32, 7, 28, 34, 31, 27, 35, -33, -45, -3, -16, 44, -12, 3, -40, -2, 36, -10, -38, -25, 15, 14, 12, 4, -20, -48, 1, -37, -28, 49, 10, -30, -35, -21, -31, -27, -39, -6, -29, 9, 20, 30, 25, 22, 5, -49, 8, 21, 19, -43, -18, -22, 50, -47, 17, 41, 38, -24, 33, -17, 39, 13, -13, -11, -34, 37, -9, 11, 16, 29, -46, -42, 6, -41, 47, 2, 46, -44, -15, -23, -19, 40, 43, 18, -50, 23, -26, -32, 0, 45, -7, 26, -1, -8, 42, -14, 48, -5, 24, -36
-18, 18, 21, 44, -45, 1, -31, -11, -47, -5, 28, -17, -10, -16, 32, 34, -4, 12, 39, 9, -48, -32, -41, 45, 24, -22, 14, -7, 42, 20, -39, -27, -9, 19, 38, 25, 23, 46, 43, -29, -33, -14, 13, -34, 4, -12, 26, -23, 49, -8, 5, 30, -42, 10, 6, -30, -6, -25, 3, 17, -36, -38, 40, -20, -13, 29, 0, -50, -1, -46, 48, -21, -44, 8, 22, -15, 27, -26, -35, 11, -2, -40, 2, 36, 33, -28, 35, -24, 50, 37, 7, -37, -49, -43, -19, 15, 41, 16, 47, -3
-23, 43, -8, -3, 23, 41, 26, 19, 14, 34, 6, 4, 2, 50, 7, 10, 46, -21, 9, 29, -6, 21, 12, -24, -17, -22, -46, -32, -34, -35, -11, -19, -28, -1, 48, 28, 27, 3, 20, -42, -2, -25, -45, 30, -47, 13, -18, -30, 37, 5, -26, 36, -33, 32, -7, 24, -50, 22, 25, -39, -27, 42, 31, -9, -13, -5, 18, 39, -20, -14, 8, 11, 45, 35, -16, -37, 16, 40, -12, 38, -40, 49, -38, -41, 47, 44, 33, -44, -10, -4, -15, 15, 17, -48, -49, -29, 1, -31, -43, -36
7, -35, -6, 0, -7, -10, -16, 27, 3, -29, 49, -24, -49, -13, -41, 25, 8, -33, -12, 24, 16, 13, -44, 22, -19, -18, 9, -26, -48, 5, 32, 50, 41, -38, -8, 46, -42, -30, 39, -14, -4, 31, -1, 12, -21, 34, 20, 44, 14, -2, 23, 15, 40, 45, -23, -25, 36, -9, 43, -32, 47, -27, -20, -5, -36, -34, 26, -43, 17, 29, 6, 38, -22, -39, 10, 19, 28, -37, -3, -45, 42, 33, -50, 37, -31, -40, 1, -47, -15, -28, 30, 2, 21, -17, 4, -46, 11, 18, 48, 35
-46, -45, -27, 1, 47, 19, 41, -22, -8, 6, -31, 21, -9, 32, -24, 15, -7, -33, -39, -15, -11, 40, 26, -40, -44, -42, -49, 49, 10, 24, -35, -47, 11, -18, -26, -5, -4, 42, -12, 33, 0, -23, 45, 48, 44, -13, -16, 43, 35, 46, 25, -36, 22, -50, -43, -28, 20, 13, -48, 4, -10, -17, 30, 38, 16, -25, 37, 2, 29, 27, 12, 14, 5, 17, -21, 31, -30, 39, -3, -2, 7, 18, -14, 3, -20, 34, -34, -38, -29, 36, 8, 28, -37, 9, -1, 50, 23, -41, -6, -32
47, 2, -4, -42, -29, -20, 4, -14, 29, 20, -21, 30, 32, 45, -19, -16, 35, 12, 1, 33, -47, 46, 16, 7, 3, 9, -34, 22, 43, -41, 6, 27, -8, -17, -37, 21, -35, -23, -9, -43, 26, -26, -5, -6, -48, 13, -46, 5, 39, 50, 11, 36, 41, 23, 25, 34, -24, 17, -39, 42, 14, -33, -27, -40, 15, 19, -15, -2, -13, -3, 48, -30, 24, -38, 0, 10, -12, 18, -1, -22, -36, -45, 38, -28, -44, 37, -11, 31, -31, 8, 44, 40, 49, -50, -7, -32, -25, 28, -18, -10
36, -13, -24, 28, -14, 1, -23, 40, -34, -31, -47, 25, 17, 8, 41, 12, -36, 24, -33, 46, 31, 15, 30, 29, -37, 49, -1, -26, -20, -43, -10, -3, 9, 43, -9, -38, -25, -44, 45, 14, -2, 27, 34, 11, -15, -41, 5, 32, -32, 19, -11, 47, 10, 39, -50, -49, 38, 48, 20, -39, -45, 22, -30, 42, 13, -6, 37, 4, -40, -19, 18, -21, 21, 6, -7, -17, -29, 3, -5, -18, -28, -22, 50, -46, 33, 44, 7, 23, 26, -42, -35, -48, -12, 35, -8, 2, -27, -4, 16, 0
-47, -1, 38, 18, -23, 47, 10, -15, 20, -46, 46, -7, -13, 34, 3, -12, -42, 4, 27, -28, -32, -38, -5, 7, -20, -26, -16, 49, -49, 39, 13, 16, 19, -10, 12, -40, 17, 48, 43, -29, 1, -41, -39, 25, -30, 37, 36, -17, 22, 33, 44, 26, -45, 42, 5, 45, -34, 6, -50, -3, 40, 32, 30, 35, -35, -21, 8, -8, 23, -37, 2, -22, -9, -14, -4, -48, -43, 29, -11, -44, -33, 21, -36, 28, -25, -27, 9, 14, 50, -19, -2, 0, 24, -31, -18, -24, 11, 41, -6, 15
15, 8, -23, 5, -46, -8, 39, -10, 38, -38, -41, 41, -15, 24, 40, -18, 3, 29, -16, -25, 45, -50, -32, -1, -37, -22, -7, 34, -44, 47, -40, -42, 32, -29, 2, 18, 23, 43, -12, -34, 16, -39, 12, 48, -17, 50, 11, 9, 6, -31, 35, -2, 20, -9, -21, -27, 37, 25, -47, -35, 46, -13, -30, -48, 19, -33, 1, -11, 17, -24, -19, 36, 28, 4, -5, -4, -43, -28, 21, 26, -3, -49, 44, -26, 0, 49, 22, -14, -45, -6, 10, 31, 42, 13, 27, 33, 14, 7, -36, 30
29, 10, 12, -40, -7, 16, -5, -8, 41, -37, -11, -30, 24, 0, 13, 6, 23, 36, 19, 11, -49, 2, 8, 46, 28, -22, -17, -9, 26, 5, -36, -25, -42, -41, 30, 39, -44, -21, -12, -34, 37, -50, 18, -20, -39, -2, -31, -10, 21, -43, 20, 17, 35, 3, -45, 42, 50, -48, -29, 33, 31, -24, 40, 34, 49, 7, -28, -1, 9, -3, 1, -47, -19, -4, -13, -27, 22, -26, -46, 44, -35, 15, 45, -33, 38, -14, -38, 48, -16, 4, 32, 27, -18, -6, -15, 47, 43, -32, -23, 14
32, 7, 28, 34, 31, 27, 35, -33, -45, -3, -16, 44, -12, 3, -40, -2, 36, -10, -38, -25, 15, 14, 12, 4, -20, -48, 1, -37, -28, 49, 10, -30, -35, -21, -31, -27, -39, -6, -29, 9, 20, 30, 25, 22, 5, -49, 8, 21, 19, -43, -18, -22, 50, -47, 17, 41, 38, -24, 33, -17, 39, 13, -13, -11, -34, 37, -9, 11, 16, 29, -46, -42, 6, -41, 47, 2, 46, -44, -15, -23, -19, 40, 43, 18, -50, 23, -26, -32, 0, 45, -7, 26, -1, -8, 42, -14, 48, -5, 24, -36
-18, 18, 21, 44, -45, 1, -31, -11, -47, -5, 28, -17, -10, -16, 32, 34, -4, 12, 39, 9, -48, -32, -41, 45, 24, -22, 14, -7, 42, 20, -39, -27, -9, 19, 38, 25, 23, 46, 43, -29, -33, -14, 13, -34, 4, -12, 26, -23, 49, -8, 5, 30, -42, 10, 6, -30, -6, -25, 3, 17, -36, -38, 40, -20, -13, 29, 0, -50, -1, -46, 48, -21, -44, 8, 22, -15, 27, -26, -35, 11, -2, -40, 2, 36, 33, -28, 35, -24, 50, 37, 7, -37, -49, -43, -19, 15, 41, 16, 47, -3
-23, 43, -8, -3, 23, 41, 26, 19, 14, 34, 6, 4, 2, 50, 7, 10, 46, -21, 9, 29, -6, 21, 12, -24, -17, -22, -46, -32, -34, -35, -11, -19, -28, -1, 48, 28, 27, 3, 20, -42, -2, -25, -45, 30, -47, 13, -18, -30, 37, 5, -26, 36, -33, 32, -7, 24, -50, 22, 25, -39, -27, 42, 31, -9, -13, -5, 18, 39, -20, -14, 8, 11, 45, 35, -16, -37, 16, 40, -12, 38, -40, 49, -38, -41, 47, 44, 33, -44, -10, -4, -15, 15, 17, -48, -49, -29, 1, -31, -43, -36
7, -35, -6, 0, -7, -10, -16, 27, 3, -29, 49, -24, -49, -13, -41, 25, 8, -33, -12, 24, 16, 13, -44, 22, -19, -18, 9, -26, -48, 5, 32, 50, 41, -38, -8, 46, -42, -30, 39, -14, -4, 31, -1, 12, -21, 34, 20, 44, 14, -2, 23, 15, 40, 45, -23, -25, 36, -9, 43, -32, 47, -27, -20, -5, -36, -34, 26, -43, 17, 29, 6, 38, -22, -39, 10, 19, 28, -37, -3, -45, 42, 33, -50, 37, -31, -40, 1, -47, -15, -28, 30, 2, 21, -17, 4, -46, 11, 18, 48, 35
-46, -45, -27, 1, 47, 19, 41, -22, -8, 6, -31, 21, -9, 32, -24, 15, -7, -33, -39, -15, -11, 40, 26, -40, -44, -42, -49, 49, 10, 24, -35, -47, 11, -18, -26, -5, -4, 42, -12, 33, 0, -23, 45, 48, 44, -13, -16, 43, 35, 46, 25, -36, 22, -50, -43, -28, 20, 13, -48, 4, -10, -17, 30, 38, 16, -25, 37, 2, 29, 27, 12, 14, 5, 17, -21, 31, -30, 39, -3, -2, 7, 18, -14, 3, -20, 34, -34, -38, -29, 36, 8, 28, -37, 9, -1, 50, 23, -41, -6, -32
47, 2, -4, -42, -29, -20, 4, -14, 29, 20, -21, 30, 32, 45, -19, -16, 35, 12, 1, 33, -47, 46, 16, 7, 3, 9, -34, 22, 43, -41, 6, 27, -8, -17, -37, 21, -35, -23, -9, -43, 26, -26, -5, -6, -48, 13, -46, 5, 39, 50, 11, 36, 41, 23, 25, 34, -24, 17, -39, 42, 14, -33, -27, -40, 15, 19, -15, -2, -13, -3, 48, -30, 24, -38, 0, 10, -12, 18, -1, -22, -36, -45, 38, -28, -44, 37, -11, 31, -31, 8, 44, 40, 49, -50, -7, -32, -25, 28, -18, -10
36, -13, -24, 28, -14, 1, -23, 40, -34, -31, -47, 25, 17, 8, 41, 12, -36, 24, -33, 46, 31, 15, 30, 29, -37, 49, -1, -26, -20, -43, -10, -3, 9, 43, -9, -38, -25, -44, 45, 14, -2, 27, 34, 11, -15, -41, 5, 32, -32, 19, -11, 47, 10, 39, -50, -49, 38, 48, 20, -39, -45, 22, -30, 42, 13, -6, 37, 4, -40, -19, 18, -21, 21, 6, -7, -17, -29, 3, -5, -18, -28, -22, 50, -46, 33, 44, 7, 23, 26, -42, -35, -48, -12, 35, -8, 2, -27, -4, 16, 0
-47, -1, 38, 18, -23, 47, 10, -15, 20, -46, 46, -7, -13, 34, 3, -12, -42, 4, 27, -28, -32, -38, -5, 7, -20, -26, -16, 49, -49, 39, 13, 16, 19, -10, 12, -40, 17, 48, 43, -29, 1, -41, -39, 25, -30, 37, 36, -17, 22, 33, 44, 26, -45, 42, 5, 45, -34, 6, -50, -3, 40, 32, 30, 35, -35, -21, 8, -8, 23, -37, 2, -22, -9, -14, -4, -48, -43, 29, -11, -44, -33, 21, -36, 28, -25, -27, 9, 14, 50, -19, -2, 0, 24, -31, -18, -24, 11, 41, -6, 15
15, 8, -23, 5, -46, -8, 39, -10, 38, -38, -41, 41, -15, 24, 40, -18, 3, 29, -16, -25, 45, -50, -32, -1, -37, -22, -7, 34, -44, 47, -40, -42, 32, -29, 2, 18, 23, 43, -12, -34, 16, -39, 12, 48, -17, 50, 11, 9, 6, -31, 35, -2, 20, -9, -21, -27, 37, 25, -47, -35, 46, -13, -30, -48, 19, -33, 1, -11, 17, -24, -19, 36, 28, 4, -5, -4, -43, -28, 21, 26, -3, -49, 44, -26, 0, 49, 22, -14, -45, -6, 10, 31, 42, 13, 27, 33, 14, 7, -36, 30
29, 10, 12, -40, -7, 16, -5, -8, 41, -37, -11, -30, 24, 0, 13, 6, 23, 36, 19, 11, -49, 2, 8, 46, 28, -22, -17, -9, 26, 5, -36, -25, -42, -41, 30, 39, -44, -21, -12, -34, 37, -50, 18, -20, -39, -2, -31, -10, 21, -43, 20, 17, 35, 3, -45, 42, 50, -48, -29, 33, 31, -24, 40, 34, 49, 7, -28, -1, 9, -3, 1, -47, -19, -4, -13, -27, 22, -26, -46, 44, -35, 15, 45, -33, 38, -14, -38, 48, -16, 4, 32, 27, -18, -6, -15, 47, 43, -32, -23, 14
32, 7, 28, 34, 31, 27, 35, -33, -45, -3, -16, 44, -12, 3, -40, -2, 36, -10, -38, -25, 15, 14, 12, 4, -20, -48, 1, -37, -28, 49, 10, -30, -35, -21, -31, -27, -39, -6, -29, 9, 20, 30, 25, 22, 5, -49, 8, 21, 19, -43, -18, -22, 50, -47, 17, 41, 38, -24, 33, -17, 39, 13, -13, -11, -34, 37, -9, 11, 16, 29, -46, -42, 6, -41, 47, 2, 46, -44, -15, -23, -19, 40, 43, 18, -50, 23, -26, -32, 0, 45, -7, 26, -1, -8, 42, -14, 48, -5, 24, -36
-18, 18, 21, 44, -45, 1, -31, -11, -47, -5, 28, -17, -10, -16, 32, 34, -4, 12, 39, 9, -48, -32, -41, 45, 24, -22, 14, -7, 42, 20, -39, -27, -9, 19, 38, 25, 23, 46, 43, -29, -33, -14, 13, -34, 4, -12, 26, -23, 49, -8, 5, 30, -42, 10, 6, -30, -6, -25, 3, 17, -36, -38, 40, -20, -13, 29, 0, -50, -1, -46, 48, -21, -44, 8, 22, -15, 27, -26, -35, 11, -2, -40, 2, 36, 33, -28, 35, -24, 50, 37, 7, -37, -49, -43, -19, 15, 41, 16, 47, -3
-23, 43, -8, -3, 23, 41, 26, 19, 14, 34, 6, 4, 2, 50, 7, 10, 46, -21, 9, 29, -6, 21, 12, -24, -17, -22, -46, -32, -34, -35, -11, -19, -28, -1, 48, 28, 27, 3, 20, -42, -2, -25, -45, 30, -47, 13, -18, -30, 37, 5, -26, 36, -33, 32, -7, 24, -50, 22, 25, -39, -27, 42, 31, -9, -13, -5, 18, 39, -20, -14, 8, 11, 45, 35, -16, -37, 16, 40, -12, 38, -40, 49, -38, -41, 47, 44, 33, -44, -10, -4, -15, 15, 17, -48, -49, -29, 1, -31, -43, -36";

            var inputParser = new StringInputParser(columnDelimiter: ",");

            var inputCostGrid = inputParser.Parse(inputStr);

            var stopwatch = new System.Diagnostics.Stopwatch();

            stopwatch.Start();
            var actualPath = _target.GetLowestTraversalPath(inputCostGrid);

            stopwatch.Stop();

            Assert.True(stopwatch.Elapsed < TimeSpan.FromSeconds(1));
        }