Exemple #1
0
        public void Solve_AB_Logs()
        {
            var logger = new MemoryEventLogger();
            var world  = WorldBuilder.CreateForExercise2("A,B", logger);
            var hours  = world.Solve();

            var actual   = logger.Logs;
            var expected = new []
            {
                "{\"event\":\"DEPART\",\"time\":0,\"transport_id\":0,\"kind\":\"Truck\",\"location\":\"FACTORY\",\"destination\":\"PORT\",\"cargo\":[{\"cargo_id\":0,\"destination\":\"A\",\"origin\":\"FACTORY\"}]}",
                "{\"event\":\"DEPART\",\"time\":0,\"transport_id\":1,\"kind\":\"Truck\",\"location\":\"FACTORY\",\"destination\":\"B\",\"cargo\":[{\"cargo_id\":1,\"destination\":\"B\",\"origin\":\"FACTORY\"}]}",
                "{\"event\":\"ARRIVE\",\"time\":1,\"transport_id\":0,\"kind\":\"Truck\",\"location\":\"PORT\",\"cargo\":[{\"cargo_id\":0,\"destination\":\"A\",\"origin\":\"FACTORY\"}]}",
                "{\"event\":\"DEPART\",\"time\":1,\"transport_id\":0,\"kind\":\"Truck\",\"location\":\"PORT\",\"destination\":\"FACTORY\",\"cargo\":[]}",
                "{\"event\":\"LOAD\",\"time\":1,\"duration\":1,\"transport_id\":2,\"kind\":\"Ship\",\"location\":\"PORT\",\"cargo\":[{\"cargo_id\":0,\"destination\":\"A\",\"origin\":\"FACTORY\"}]}",
                "{\"event\":\"ARRIVE\",\"time\":2,\"transport_id\":0,\"kind\":\"Truck\",\"location\":\"FACTORY\",\"cargo\":[]}",
                "{\"event\":\"DEPART\",\"time\":2,\"transport_id\":2,\"kind\":\"Ship\",\"location\":\"PORT\",\"destination\":\"A\",\"cargo\":[{\"cargo_id\":0,\"destination\":\"A\",\"origin\":\"FACTORY\"}]}",
                "{\"event\":\"ARRIVE\",\"time\":5,\"transport_id\":1,\"kind\":\"Truck\",\"location\":\"B\",\"cargo\":[{\"cargo_id\":1,\"destination\":\"B\",\"origin\":\"FACTORY\"}]}",
                "{\"event\":\"DEPART\",\"time\":5,\"transport_id\":1,\"kind\":\"Truck\",\"location\":\"B\",\"destination\":\"FACTORY\",\"cargo\":[]}",
                "{\"event\":\"ARRIVE\",\"time\":8,\"transport_id\":2,\"kind\":\"Ship\",\"location\":\"A\",\"cargo\":[{\"cargo_id\":0,\"destination\":\"A\",\"origin\":\"FACTORY\"}]}",
                "{\"event\":\"UNLOAD\",\"time\":8,\"duration\":1,\"transport_id\":2,\"kind\":\"Ship\",\"location\":\"PORT\",\"cargo\":[{\"cargo_id\":0,\"destination\":\"A\",\"origin\":\"FACTORY\"}]}",
                "{\"event\":\"DEPART\",\"time\":9,\"transport_id\":2,\"kind\":\"Ship\",\"location\":\"A\",\"destination\":\"PORT\",\"cargo\":[]}"
            };

            Assert.That(actual.Count, Is.EqualTo(12));
            Assert.That(actual, Is.EquivalentTo(expected));
        }
Exemple #2
0
        public void Solve_B_LoadUnloadShip()
        {
            var logger = new EmptyEventLogger();
            var world  = WorldBuilder.CreateForExercise2("B", logger);
            var hours  = world.Solve();

            Assert.That(hours, Is.EqualTo(5));
        }
Exemple #3
0
        private static void SolveInput(string[] args)
        {
            var input       = args[0];
            var eventLogger = new FileEventLogger(input.Replace(",", ""));
            var world       = WorldBuilder.CreateForExercise2(input, eventLogger);
            var totalTime   = world.Solve();

            Console.WriteLine($"Total time {totalTime}");
        }
Exemple #4
0
        private static void CreateTraces()
        {
            var inputs = new[]
            {
                "A",
                "B",
                "A,A",
                "B,B",
                "A,B",
                "A,B,B",
                "A,A,B,A,B,B,A,B",
                "A,B,B,B,A,B,A,A,A,B,B,B"
            };

            inputs.ForEach(x =>
            {
                var eventLogger = new FileEventLogger(x.Replace(",", ""));
                var world       = WorldBuilder.CreateForExercise2(x, eventLogger);
                var totalTime   = world.Solve();
                Console.WriteLine($"Solve '{x}' total time '{totalTime}'");
            });
        }