public void Test_SemiNumericComparer(string s1, string s2, int expectedResult)
        {
            /// Arrange
            var comparer = new SemiNumericComparer();

            // Act
            var result = comparer.Compare(s1, s2);

            // Assert
            result.Should().Be(expectedResult);
        }
        public List <GroupedJoinedModel> GroupTrips(List <JoinedTripsModel> joinedTripsModelList)
        {
            var semiNumericComparer = new SemiNumericComparer();

            var buses = joinedTripsModelList.Where(x => x.JoinedTrips.Any(y => y.AgencyId == 1 ||
                                                                          y.AgencyId == 6 ||
                                                                          y.AgencyId == 7 ||
                                                                          y.AgencyId == 8 ||
                                                                          y.AgencyId == 9 ||
                                                                          y.AgencyId == 10 ||
                                                                          y.AgencyId == 11 ||
                                                                          y.AgencyId == 17 ||
                                                                          y.AgencyId == 18))
                        .OrderBy(z => z.BusLineName, semiNumericComparer)
                        .ToList();

            var trams = joinedTripsModelList.Where(x => x.JoinedTrips.Any(y => y.AgencyId == 2))
                        .OrderBy(z => z.BusLineName, semiNumericComparer)
                        .ToList();
            var trolleys = joinedTripsModelList.Where(x => x.JoinedTrips.Any(y => y.AgencyId == 5))
                           .OrderBy(z => z.BusLineName, semiNumericComparer)
                           .ToList();

            return(new List <GroupedJoinedModel>()
            {
                new GroupedJoinedModel()
                {
                    Group = Group.Buses, JoinedTripModels = buses
                },
                new GroupedJoinedModel()
                {
                    Group = Group.Trams, JoinedTripModels = trams
                },
                new GroupedJoinedModel()
                {
                    Group = Group.Trolleys, JoinedTripModels = trolleys
                }
            });
        }