public void WinContest_GivenSchedule_ReturnsExpectedValue(string schedule, long expectedValue)
        {
            var sut    = new BusScheduler(new RecordFormatter(null));
            var result = sut.WinContest(schedule);

            Assert.Equal(expectedValue, result);
        }
        public void GetNextBusProduct_GivenValidTimestampAndBusses_ReturnsExpectedResult()
        {
            var sut    = new BusScheduler(new RecordFormatter(null));
            var result = sut.GetNextBusProduct(939, "7,13,x,x,59,x,31,19");

            Assert.Equal(295, result);
        }
示例#3
0
        public void Part1Sample()
        {
            BusScheduler       busScheduler       = new BusScheduler();
            BusSchedulerResult busSchedulerResult = busScheduler.FindBus(GetSampleInput());
            long answer = busSchedulerResult.BusId * busSchedulerResult.MinutesWaited;

            Assert.Equal(295, answer);
        }
示例#4
0
        public void Part1()
        {
            BusScheduler       busScheduler       = new BusScheduler();
            BusSchedulerResult busSchedulerResult = busScheduler.FindBus(StringListRetriever.Retreive("InputList13.txt").ToList());
            long answer = busSchedulerResult.BusId * busSchedulerResult.MinutesWaited;

            Assert.Equal(6568, answer);
        }
示例#5
0
        public static void Part2(string[] input)
        {
            Helper.PrintChallengePart("Part 2");

            BusScheduler bus    = new BusScheduler(input);
            long         result = bus.CalculateSynchronicity();

            Console.WriteLine("Result: " + result);
        }
示例#6
0
        public static void Part1(string[] input)
        {
            Helper.PrintChallengePart("Part 1");

            BusScheduler bus    = new BusScheduler(input);
            int          result = bus.CalculateWaitingTime();

            Console.WriteLine("Result: " + result);
        }
示例#7
0
        public void Day13Part2()
        {
            // Arrange
            string[] input = Helper.ParseInput(@"Inputs\\Day13_example.txt");

            //Act
            BusScheduler bus    = new BusScheduler(input);
            long         result = bus.CalculateSynchronicity();

            //Assert
            Assert.AreEqual((long)1068781, result);
        }
示例#8
0
        public void Day13Part1()
        {
            // Arrange
            string[] input = Helper.ParseInput(@"Inputs\\Day13_example.txt");

            //Act
            BusScheduler bus    = new BusScheduler(input);
            int          result = bus.CalculateWaitingTime();

            //Assert
            Assert.AreEqual(295, result);
        }
示例#9
0
        /// <summary>
        /// TuringBusses.Cmd entry point
        /// </summary>
        /// <param name="args">Command line arguments (not used)</param>
        static void Main(string[] args)
        {
            var filePath  = "./input";
            var reader    = new FileReader();
            var formatter = new RecordFormatter(reader);
            var records   = formatter.FormatFile(filePath, "\n", true);

            var timeStamp = int.Parse(records.First());

            var scheduler = new BusScheduler(formatter);

            var product = scheduler.GetNextBusProduct(timeStamp, records.Skip(1).First());

            Console.WriteLine(product);

            var timeStamp2 = scheduler.WinContest(records.Skip(1).First());

            Console.WriteLine(timeStamp2);
        }
示例#10
0
        public void Part2(string schedule, long expected)
        {
            var sut = new BusScheduler(schedule);

            Assert.Equal(expected, sut.ScheduleByOffset());
        }
示例#11
0
        public void Part1(string schedule, int departureTime, int expected)
        {
            var sut = new BusScheduler(schedule);

            Assert.Equal(expected, sut.Schedule(departureTime));
        }
示例#12
0
        public void Part2Sample()
        {
            BusScheduler busScheduler = new BusScheduler();

            Assert.Equal(1068781, busScheduler.FindSequentialDepartures(GetSampleInput()));
        }