예제 #1
0
 public void WhenSecondTimetableCallIsAfterLastThenThrows() {
     var station = TestDataFactory.CreateStation1();
     var target = new Train(TrainCategory.Freight, "G1234");
     var call1 = new StationCall(station.Tracks.First(), new Time(12, 30), new Time(12, 45));
     var call2 = new StationCall(station.Tracks.First(), new Time(12, 50), new Time(12, 55));
     target.Add(call1);
     target.Add(call2);
 }
        public void AddsFirstTimetableCall()
        {
            var station = TestDataFactory.CreateStation1();
            var call    = new StationCall(station.Tracks.First(), new Time(12, 30), new Time(12, 45));

            Target.Add(call);
            Assert.IsFalse(Target.CheckTrainTimeSequence().Any());
        }
예제 #3
0
        static void Main(string[] args)
        {
            Train train = new Train();

            train.Add(new Carriage()
            {
                ComfortClass       = ComfortClass.common,
                NumberOfPassengers = 64,
                NumberOfBaggage    = 64
            });
            train.Add(new Carriage()
            {
                ComfortClass       = ComfortClass.reservedSeat,
                NumberOfPassengers = 48,
                NumberOfBaggage    = 48
            });
            train.Add(new Carriage()
            {
                ComfortClass       = ComfortClass.reservedSeat,
                NumberOfPassengers = 48,
                NumberOfBaggage    = 48
            });
            train.Add(new Carriage()
            {
                ComfortClass       = ComfortClass.coupe,
                NumberOfPassengers = 24,
                NumberOfBaggage    = 24
            });
            train.Add(new Carriage()
            {
                ComfortClass       = ComfortClass.common,
                NumberOfPassengers = 64,
                NumberOfBaggage    = 64
            });
            System.Console.WriteLine("Нетсортированный состав:\n");
            foreach (var i in train)
            {
                System.Console.WriteLine("{0}, {1}, {2}", i.ComfortClass, i.NumberOfPassengers, i.NumberOfBaggage);
            }
            train.SortByComfortClass();
            System.Console.WriteLine("\nОтсортированный состав:\n");
            foreach (var i in train)
            {
                System.Console.WriteLine("{0}, {1}, {2}", i.ComfortClass, i.NumberOfPassengers, i.NumberOfBaggage);
            }

            System.Console.WriteLine("\nЧисленность пассажиров в поезде:{0}",
                                     train.GetCommonNumberOfPassengers());
            System.Console.WriteLine("Численность багажа в поезде:{0}\n",
                                     train.GetCommonNumberOfBaggage());
            System.Console.WriteLine("Вагоны с численостью пассажиров в диапазоне от 48 до 64:\n");
            foreach (var i in train.GetCarriages(48, 64))
            {
                System.Console.WriteLine("{0}, {1}, {2}", i.ComfortClass, i.NumberOfPassengers, i.NumberOfBaggage);
            }

            System.Console.ReadLine();
        }
예제 #4
0
 public void CalculateStandingSpotsTest()
 {
     Train train = new Train(1, 1);
     Wagon wagon1 = new Wagon(1, 25, 10);
     Wagon wagon2 = new Wagon(2, 15, 4);
     train.Add(wagon1);
     train.Add(wagon2);
     Assert.AreEqual(14, train.TotalStandingSpots);
 }
예제 #5
0
 public static Train CreateTrain1() {
     var stations = Stations.ToArray();
     var train = new Train(TrainCategory.Freight, "G1234");
     var startTime = new Time(12, 00);
     train.Add(new StationCall(stations[0]["3"], startTime, startTime.Add(30)));
     train.Add(new StationCall(stations[1]["2"], startTime.Add(50), startTime.Add(57)));
     train.Add(new StationCall(stations[2]["1"], startTime.Add(70), startTime.Add(180)));
     return train;
 }
예제 #6
0
        public void WhenArrival1IsSameTimeAsDeparture2ThenNotConflict()
        {
            Train1.Add(new StationCall(Target, new Time(12, 00), new Time(12, 30)));
            Train2.Add(new StationCall(Target, new Time(12, 30), new Time(12, 45)));
            var validationErrors = Target.GetValidationErrors(null);

            Assert.AreEqual(0, validationErrors.Count());
            Assert.IsFalse(validationErrors.Any(ve => string.IsNullOrWhiteSpace(ve.Text)));
        }
예제 #7
0
 public static Train CreateTrain2() {
     var stations = Stations.ToArray();
     var train = new Train(TrainCategory.Passenger, "P4321");
     var startTime = new Time(12, 00);
     train.Add(new StationCall(stations[2]["2"], startTime, startTime.Add(30)));
     train.Add(new StationCall(stations[1]["1"], startTime.Add(45), startTime.Add(51)));
     train.Add(new StationCall(stations[0]["3"], startTime.Add(70), startTime.Add(180)));
     return train;
 }
예제 #8
0
        public void CalculateStandingSpotsTest()
        {
            Train train  = new Train(1, 1);
            Wagon wagon1 = new Wagon(1, 25, 10);
            Wagon wagon2 = new Wagon(2, 15, 4);

            train.Add(wagon1);
            train.Add(wagon2);
            Assert.AreEqual(14, train.TotalStandingSpots);
        }
예제 #9
0
        public void Test4() //Add
        {
            Train train = new Train();

            train = train.MakeList(7);
            train = train.Add(train, 4);
            Assert.AreEqual(8, Count(train));

            train = train.Add(train, 10);
            Assert.AreEqual(8, Count(train));
        }
예제 #10
0
 public void ToStringWithMultipleWagonsTest()
 {
     Train train = new Train(1, 1);
     Wagon wagon1 = new Wagon(1, 1, 1);
     Wagon wagon2 = new Wagon(2, 1, 1);
     Wagon wagon3 = new Wagon(3, 1, 1);
     Wagon wagon4 = new Wagon(4, 1, 1);
     train.Add(wagon1);
     train.Add(wagon2);
     train.Add(wagon3);
     train.Add(wagon4);
     Assert.AreEqual("1 - 2 - 3 - 4", train.ToString());
 }
예제 #11
0
        public static Train CreateTrainInOppositeDirection(string category, string number, Time startTime)
        {
            var stations = Stations.ToArray();
            var train    = new Train(number)
            {
                Category = category
            };

            train.Add(new StationCall(stations[2]["2"], startTime, startTime));
            train.Add(new StationCall(stations[1]["1"], startTime.Add(25), startTime.Add(30)));
            train.Add(new StationCall(stations[0]["3"], startTime.Add(55), startTime.Add(55)));
            return(train);
        }
예제 #12
0
        public void ToStringWithMultipleWagonsTest()
        {
            Train train  = new Train(1, 1);
            Wagon wagon1 = new Wagon(1, 1, 1);
            Wagon wagon2 = new Wagon(2, 1, 1);
            Wagon wagon3 = new Wagon(3, 1, 1);
            Wagon wagon4 = new Wagon(4, 1, 1);

            train.Add(wagon1);
            train.Add(wagon2);
            train.Add(wagon3);
            train.Add(wagon4);
            Assert.AreEqual("1 - 2 - 3 - 4", train.ToString());
        }
예제 #13
0
        public void AddWagonNullTest()
        {
            Train train  = new Train(1, 1);
            Wagon wagon1 = null;

            train.Add(wagon1);
        }
예제 #14
0
        [TestMethod] public void AddsFirstTimetableCall() {
            var station = TestDataFactory.CreateStation1();
            var target = new Train(TrainCategory.Freight, "G1234");
            var call = new StationCall(station.Tracks.First(), new Time(12,30) , new Time(12,45));
            target.Add(call);

        }
예제 #15
0
 private void SetUpKeys()
 {
     Scene.InputManager.AddKeyDownHandler(Keys.Up, (o, e) => Train.Add(Scene, Train.Direction.Up));
     Scene.InputManager.AddKeyDownHandler(Keys.Down, (o, e) => Train.Add(Scene, Train.Direction.Down));
     Scene.InputManager.AddKeyDownHandler(Keys.Left, (o, e) => Train.Add(Scene, Train.Direction.Left));
     Scene.InputManager.AddKeyDownHandler(Keys.Right, (o, e) => Train.Add(Scene, Train.Direction.Right));
     Scene.InputManager.AddKeyDownHandler(Keys.S, (o, e) => Scene.TimeScale = 0.2f);
 }
예제 #16
0
        public void ToStringWithOneWagonTest()
        {
            Train train = new Train(1, 1);
            Wagon wagon = new Wagon(1, 1, 1);

            train.Add(wagon);
            Assert.AreEqual("1", train.ToString());
        }
        public void ArrivalAfterDepartureThrows()
        {
            var track  = TestDataFactory.CreateStationTrack();
            var target = new StationCall(track, new Time(12, 00), new Time(11, 59));

            Train.Add(target);
            var validationErrors = target.GetValidationErrors();

            Assert.AreEqual(1, validationErrors.Count());
            Assert.IsFalse(validationErrors.Any(ve => string.IsNullOrWhiteSpace(ve.Text)));
        }
예제 #18
0
    public Train GetTrain()
    {
        Train tempBackpack = new Train();

        foreach (string item in backpack)
        {
            Item tempItem = ItemFactory.CreateItem(item);
            tempBackpack.Add(tempItem);
        }
        tempBackpack.Cash = cash;
        return(tempBackpack);
    }
 public void TrainAddMethod()
 {
     try
     {
         defaultTrain.Add(dummyDomino);
     }
     catch (Exception e)
     {
         Assert.Fail("The method threw an exception with the message: " +
                     e.Message);
     }
 }
예제 #20
0
 public void SetUpAllTests()
 {
     d11 = new Domino(1, 1);
     d12 = new Domino(1, 2);
     d23 = new Domino(2, 3);
     d31 = new Domino(3, 1);
     h   = new Hand();
     t   = new MexicanTrain();
     t.Add(d11);
     h.Add(d12);
     h.Add(d23);
     h.Add(d31);
 }
예제 #21
0
 private void Calculate79DbOfficial()
 {
     try
     {
         var reply        = new DublinBus.DublinBusRTPIServiceSoapClient(DublinBus.DublinBusRTPIServiceSoapClient.EndpointConfiguration.DublinBusRTPIServiceSoap);
         var objReply     = reply.GetRealTimeStopDataAsync(6030, false).Result;
         var objConverted = new BusTimeResult(objReply);
         Bus79a.AddRange(objConverted.Result.Select(o => new TimeItem(o.Name, o.DueTime.ToString())).ToList());
     }
     catch (Exception ex)
     {
         Train.Add(new TimeItem("error", "-1"));
     }
 }
예제 #22
0
 public void WhenNoCallsThenTimeslotIsFree()
 {
     Train1.Add(new StationCall(Target, new Time(12, 00), new Time(12, 30)));
     Assert.AreEqual(1, Target.Calls.Count);
     Assert.AreEqual(Train1.Calls[0], Target.Calls.First());
 }
예제 #23
0
        private static IEnumerable <Message> GetTrains(Timetable timetable, Excel.Workbook book)
        {
            var messages = new List <Message>();

            Excel.Worksheet sheet        = book.Worksheets["Trains"] as Excel.Worksheet;
            var             r            = 2;
            Train           currentTrain = null;

            while (true)
            {
                var row = (Array)sheet.get_Range(Cell("A", r), Cell("K", r)).Cells.Value;
                if (row.GetValue(1, 1) == null)
                {
                    break;
                }
                else
                {
                    var type = row.Value(9).ToUpperInvariant();
                    switch (type)
                    {
                    case "TRAINDEF":
                        if (currentTrain != null)
                        {
                            timetable.AddTrain(currentTrain);
                        }
                        var trainId = row.Value(TrainIdColumn);
                        currentTrain = new Train(trainId.ParseTrainNumber(), trainId)
                        {
                            Category = trainId.ParsesTrainCategory()
                        };
                        break;

                    case "TIMETABLE":
                        try
                        {
                            var station       = timetable.Layout.Station(row.Value(3));
                            var arrivalTime   = Time.Parse(row.Value(5));
                            var departureTime = Time.Parse(row.Value(6));
                            var note          = row.Value(11);
                            if (station.IsNone)
                            {
                                messages.Add(Message.Error(string.Format(CultureInfo.CurrentCulture, Resources.Strings.ThereIsNoStationWithSignatureOrName, station.Value)));
                            }
                            else
                            {
                                var trackNumber = row.Value(4);
                                var track       = station.Value.Track(trackNumber);
                                if (track.IsNone)
                                {
                                    messages.Add(Message.Error(string.Format(CultureInfo.CurrentCulture, Resources.Strings.TrainAtStationAtTimeRefersToANonexistingTrack, currentTrain, station.Value, arrivalTime, departureTime, trackNumber)));
                                }

                                if (messages.CanContinue())
                                {
                                    var call = new StationCall(track.Value, Time.Parse(row.Value(5)), Time.Parse(row.Value(6)));
                                    if (!string.IsNullOrWhiteSpace(note))
                                    {
                                        call.Notes.Add(new StationCallNote(note));
                                    }
                                    currentTrain.Add(call);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            messages.Add(Message.System(ex.Message));
                        }
                        break;

                    default:
                        break;
                    }
                }
                r++;
            }
            if (currentTrain != null)
            {
                timetable.AddTrain(currentTrain);
            }
            return(messages);
        }
예제 #24
0
 public void AddWagonNullTest()
 {
     Train train = new Train(1, 1);
     Wagon wagon1 = null;
     train.Add(wagon1);
 }
예제 #25
0
        public void Add_WhenBookingIsNull_ShouldThrowArgumentNull()
        {
            Booking booking = null;

            exampleTrain.Add(booking);
        }
예제 #26
0
 public void ToStringWithOneWagonTest()
 {
     Train train = new Train(1, 1);
     Wagon wagon = new Wagon(1, 1, 1);
     train.Add(wagon);
     Assert.AreEqual("1", train.ToString());
 }