Esempio n. 1
0
        public void PassingCarsSolutionTest()
        {
            PassingCars testPassingCars = new PassingCars();

            int[] arrayTest = new int[] { 0, 1, 0, 1, 1 };
            Assert.AreEqual(5, testPassingCars.Solution(arrayTest));
        }
        public void test_solution_givenNonEmptyArray_returnsTheNumberOfPairs(int[] given, int expected)
        {
            var target = new PassingCars();
            int actual = target.solution(given);

            Assert.AreEqual(expected, actual);
        }
Esempio n. 3
0
        public void PassingSars_Should_Process_Simple_Array()
        {
            PassingCars subject = new PassingCars();

            int[] array  = { 0, 1, 0, 1, 1 };
            int   result = subject.solution(array);

            Assert.Equal(5, result);
        }
Esempio n. 4
0
        public void Amount_SampleExample_5()
        {
            var cars   = new[] { 0, 1, 0, 1, 1 };
            var solver = new PassingCars(cars);

            var passingTotal = solver.Amount();

            passingTotal.Should().Be(5);
        }
Esempio n. 5
0
        public void PassingCars_Should_Process_West_Only_Array()
        {
            PassingCars subject = new PassingCars();

            int[] array  = { 1, 1, 1, 1, 1 };
            int   result = subject.solution(array);

            Assert.Equal(0, result);
        }
        public void PassingCarsSolutionTest()
        {
            var passingCars = new PassingCars();

            int[] array  = { 0, 1, 0, 1, 1 };
            int   result = passingCars.Solve(array);

            Assert.AreEqual(5, result);
        }
Esempio n. 7
0
        public void Amount_OnePair_1()
        {
            var cars   = new[] { 0, 1 };
            var solver = new PassingCars(cars);

            var passingTotal = solver.Amount();

            passingTotal.Should().Be(1);
        }
Esempio n. 8
0
        public void Amount_AllEastBeforeAllWest_Multiplication(int amountWest, int amountEast)
        {
            var cars = Enumerable.Repeat(0, amountEast)
                       .Concat(Enumerable.Repeat(1, amountWest))
                       .ToArray();
            var solver = new PassingCars(cars);

            var passingTotal = solver.Amount();

            passingTotal.Should().Be(amountEast * amountWest);
        }
Esempio n. 9
0
        public void Amount_MoreThanBillion_MinusOne()
        {
            var cars = Enumerable.Repeat(0, 1_000_000)
                       .Concat(Enumerable.Repeat(1, 1_000_000))
                       .ToArray();
            var solver = new PassingCars(cars);

            var passingTotal = solver.Amount();

            passingTotal.Should().Be(-1);
        }
        public void SolutionSimpleTest()
        {
            // Arrange
            int[] A = new int[] { 0, 1, 0, 1, 0, 1, 0 };

            // Action
            int actual = PassingCars.Solution(A);

            // Assert
            int expected = 6;

            Assert.AreEqual(expected, actual);
        }
        public void Solution_SmallArray_Correct()
        {
            //Arrange - Given
            var array = new int[] { 0, 1, 0, 1, 1 };

            //Act - When
            var result = PassingCars.Solution(array);

            //Assert - Then
            var expectedResult = 5;

            Assert.Equal(expectedResult, result);
        }
Esempio n. 12
0
        public void Amount_LargeRandom_Fast()
        {
            var random = new Random(DateTime.UtcNow.Millisecond);
            var cars   = Enumerable.Range(1, 1_000_000).Select(n => random.Next(0, 2)).ToArray();

            var stopWatch    = Stopwatch.StartNew();
            var solver       = new PassingCars(cars);
            var passingTotal = solver.Amount();

            stopWatch.Start();

            stopWatch.ElapsedMilliseconds.Should().BeLessOrEqualTo(1000);
            _outputHelper.WriteLine($"elapsed {stopWatch.Elapsed}");
        }
Esempio n. 13
0
        public void Case01()
        {
            // Arrange
            var A         = new int[] { 0, 1, 0, 1, 1 };
            var algorithm = new PassingCars();

            // Act
            int result = algorithm.solution(A);

            // Assert
            int expected = 5;

            Assert.Equal(expected, result);
        }
        public void SolutionExcedingMaxTest()
        {
            // Arrange
            int[] A = new int[100000];
            for (int i = 0; i < 30000; i++)
            {
                A[i] = i % 2 == 0 ? 0 : 1;
            }

            for (int i = 30000; i < 100000; i++)
            {
                A[i] = 1;
            }

            // Action
            int actual = PassingCars.Solution(A);

            // Assert
            int expected = -1;

            Assert.AreEqual(expected, actual);
        }
Esempio n. 15
0
        static void Main(string[] args)
        {
            Console.WriteLine($"BinaryGap is {BinaryGap.Solution(9)}");
            Console.WriteLine($"BinaryGap is {BinaryGap.Solution(529)}");
            Console.WriteLine($"BinaryGap is {BinaryGap.Solution(20)}");
            Console.WriteLine($"BinaryGap is {BinaryGap.Solution(15)}");
            Console.WriteLine($"BinaryGap is {BinaryGap.Solution(32)}");
            Console.WriteLine($"BinaryGap is {BinaryGap.Solution(1041)}");
            Console.WriteLine(Environment.NewLine);

            var result = CyclicRotation.Solution(new[] { 1, 2, 3, 4 }, 2);

            Console.WriteLine($"CyclicRotation: {string.Join('-', result)}");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine($"OddOccurrencesInArray: {OddOccurrencesInArray.Solution(new[] {1, 1, 2, 2, 3, 4, 4})}");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine($"FrogJmp: {FrogJmp.Solution(10, 85, 30)}");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine($"PermMissingElem: {PermMissingElem.Solution(new[] {6, 7, 8, 1, 2, 4, 5})}");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine($"TapeEquilibrium: {TapeEquilibrium.Solution(new[] {3,1,2,4,3})}");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine($"FrogRiverOne: {FrogRiverOne.Solution(5,new[] {1,3,1,4,2,3,6,5,4})}");
            Console.WriteLine(Environment.NewLine);

            var maxCounter = MaxCounters.Solution(5, new[] { 3, 4, 4, 6, 1, 4, 4 });

            Console.WriteLine($"MaxCounters: {string.Join('-', maxCounter)}");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine($"MissingInteger: {MissingInteger.Solution(new []{1, 3, 6, 4, 1, 2})}");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine($"PermCheck: {PermCheck.Solution(new []{4,1,3,2})}");
            Console.WriteLine($"PermCheck: {PermCheck.Solution(new []{4,1,3})}");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine($"CountDiv: {CountDiv.Solution(11, 345, 17)}");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine($"PassingCars: {PassingCars.Solution(new []{0,1,0,1,1})}");
            Console.WriteLine(Environment.NewLine);

            // Console.WriteLine($"MinAvgTwoSlice: {MinAvgTwoSlice.Solution(new []{4,2,2,5,1,5,8})}");
            // Console.WriteLine(Environment.NewLine);
            //
            Console.WriteLine($"MaxProductOfThree: {MaxProductOfThree.Solution(new []{-3,1,2,-2,5,6})}");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine($"Triangle: {Triangle.Solution(new []{10,2,5,1,8,20})}");
            Console.WriteLine($"Triangle: {Triangle.Solution(new []{10,50,5,1})}");
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine($"Brackets: {Brackets.Solution("{[()()]}")}");
            Console.WriteLine($"Brackets: {Brackets.Solution("([)()]")}");
            Console.WriteLine(Environment.NewLine);
        }
 public void TwoMuchTest()
 {
     int[] A = new int[1500000];
     A[0] = 1;
     Assert.AreEqual(-1, PassingCars.Solution(A));
 }
 public void OneDirectionTest()
 {
     Assert.AreEqual(0, PassingCars.Solution(Enumerable.Repeat(1, 5).ToArray()));
 }
 public void OneCarMiddleTest()
 {
     int[] A = new int[5];
     A[2] = 1;
     Assert.AreEqual(2, PassingCars.Solution(A));
 }
 public void ReverseCarsTest()
 {
     Assert.AreEqual(5, PassingCars.Solution(new [] { 0, 1, 0, 1, 1 }));
 }
 public void ExtremeTest()
 {
     int[] A = new int[1500000];
     A[999999] = 1;
     Assert.AreEqual(500000, PassingCars.Solution(A));
 }
 public void Initialize()
 {
     _passingCars = new PassingCars();
 }
 public void OneDirectionReverseTest()
 {
     Assert.AreEqual(0, PassingCars.Solution(new int[5]));
 }
 public void EmptyArrayTest()
 {
     Assert.AreEqual(0, PassingCars.Solution(new int[0]));
 }
 public void ExampleReversTest()
 {
     Assert.AreEqual(5, PassingCars.Solution(new [] { 1, 0, 1, 0, 0 }));
 }
 public void TwoCarsTest()
 {
     Assert.AreEqual(1, PassingCars.Solution(new [] { 0, 1 }));
 }
 public void ExampleTest()
 {
     Assert.AreEqual(5, PassingCars.Solution(new int[] { 0, 1, 0, 1, 1 }));
 }
 public void OneCarSouthTest()
 {
     int[] A = new int[6];
     A[0] = 1;
     Assert.AreEqual(5, PassingCars.Solution(A));
 }