public void GivenOneBribe_WhenGettingMinimumBribes_ThenItReturnsOne()
        {
            var queue  = new int[] { 2, 1 };
            var result = NewYearChaos.GetMinimumBribes(queue);

            Assert.Equal(1, result);
        }
示例#2
0
        public void TestCase2()
        {
            //Arrange
            string fileName = "input11.txt";
            string path     = Path.Combine(Environment.CurrentDirectory, @"Array\Data\NewYearChaos\input\", fileName);
            String input    = File.ReadAllText(path);
            int    numTasks = int.Parse(input.Split('\n')[0].Trim().Split(' ')[0]);

            for (int i = 1; i <= numTasks; i++)
            {
                int   j         = 0;
                int   arrLength = int.Parse(input.Split('\n')[i * 2 - 1].Trim().Split(' ')[0]);
                int[] arr       = new int[arrLength];
                foreach (var col in input.Split('\n')[i * 2].Trim().Split(' '))
                {
                    arr[j] = int.Parse(col.Trim());
                    j++;
                }
                //Act
                var m = NewYearChaos.MinimumBribes(arr);
                //Assert
                switch (i)
                {
                case 1:
                    Assert.AreEqual("4", m);
                    break;

                default:
                    break;
                }
            }
        }
        public void GivenTestCaseOne2_WhenGettingMinimumBribes_ThenItReturnsExpectedValue()
        {
            var queue  = new int[] { 1, 2, 5, 3, 7, 8, 6, 4 };
            var result = NewYearChaos.GetMinimumBribes(queue);

            Assert.Equal(7, result);
        }
        public void GivenBribeIsGreaterThanTwo_WhenGettingMinimumBribes_ThenItReturnsNegOne()
        {
            var queue  = new int[] { 2, 5, 1 };
            var result = NewYearChaos.GetMinimumBribes(queue);

            Assert.Equal(-1, result);
        }
        public void GivenSampleTwo_WhenGettingMinimumBribes_ThenItReturnsExpectedValue()
        {
            var queue  = new int[] { 2, 5, 1, 3, 4 };
            var result = NewYearChaos.GetMinimumBribes(queue);

            Assert.Equal(-1, result);
        }
        public void IsTooChaotic_ReturnsExpectedResult()
        {
            var queue = new int[] { 5, 1 };

            var result = NewYearChaos.IsTooChaotic(queue, 0);

            Assert.True(result);
        }
        public void GivenSingleQueue_WhenGettingMinimumBribes_ThenItReturnsZero()
        {
            var result = NewYearChaos.GetMinimumBribes(new int[1] {
                1
            });

            Assert.Equal(0, result);
        }
        public void IsQueueTooChaotic3_ReturnsExpectedResult()
        {
            var queue = new int[] { 2, 1, 5, 3, 4 };

            var result = NewYearChaos.IsQueueTooChaotic(queue);

            Assert.False(result);
        }
        public void IndexOfFirstBribe4_ReturnsExpectedResult()
        {
            var queue = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };

            var result = NewYearChaos.IndexOfFirstBribe(queue);

            Assert.Equal(-1, result);
        }
        public void IndexOfFirstBribe2_ReturnsExpectedResult()
        {
            var queue = new int[] { 1, 2, 4, 3 };

            var result = NewYearChaos.IndexOfFirstBribe(queue);

            Assert.Equal(2, result);
        }
示例#11
0
        public void NewYearChaosTestCase3()
        {
            int[] input          = Array.ConvertAll("1 2 5 3 7 8 6 4".Split(' '), qTemp => Convert.ToInt32(qTemp));
            var   expectedOutput = "7";

            var actualOutput = NewYearChaos.Solve(input);

            Assert.AreEqual(expectedOutput, actualOutput);
        }
示例#12
0
        public void NewYearChaosTestCase2()
        {
            int[] input          = Array.ConvertAll("2 5 1 3 4".Split(' '), qTemp => Convert.ToInt32(qTemp));
            var   expectedOutput = ImpossibleMessage;

            var actualOutput = NewYearChaos.Solve(input);

            Assert.AreEqual(expectedOutput, actualOutput);
        }
        public void Swap_ReturnsExpectedResult()
        {
            var queue          = new int[] { 2, 1 };
            var expectedResult = new int[] { 1, 2 };

            var result = NewYearChaos.Swap(queue, 0);

            Assert.Equal(expectedResult, result);
        }
示例#14
0
        public void WhenThen(string input, string expected)
        {
            var reader      = new StringReader(input);
            var expectedArr = expected.Split(',');
            var algorithm   = new NewYearChaos();

            int t = Convert.ToInt32(reader.ReadLine());

            for (int tItr = 0; tItr < t; tItr++)
            {
                int n = Convert.ToInt32(reader.ReadLine());

                int[] q      = Array.ConvertAll(reader.ReadLine().Split(' '), qTemp => Convert.ToInt32(qTemp));
                var   result = algorithm.minimumBribes(q);

                Assert.AreEqual(expectedArr[tItr], result);
            }
        }
示例#15
0
        public void Run()
        {
            PrintProblem();

            Console.WriteLine("t:");
            int t = Convert.ToInt32(Console.ReadLine());

            for (int tItr = 0; tItr < t; tItr++)
            {
                Console.WriteLine("n:");
                int n = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("q:");
                int[] q = System.Array.ConvertAll(Console.ReadLine().Split(' '), qTemp => Convert.ToInt32(qTemp))
                ;
                NewYearChaos.minimumBribes(q);
                Console.ReadKey();
            }
        }
示例#16
0
 public void TestInitialize()
 {
     _solution = new NewYearChaos();
 }
        public void IndexOfFirstBribe3_ReturnsExpectedResult(int[] queue, int expectedIndex)
        {
            var result = NewYearChaos.IndexOfFirstBribe(queue);

            Assert.Equal(expectedIndex, result);
        }
示例#18
0
        public void TestCases(int[] A, int expected)
        {
            var count = NewYearChaos.GetBribeCount(A);

            Assert.Equal(expected, count);
        }