예제 #1
0
파일: TourTest.cs 프로젝트: sfcta/DaySim
        public void TestTourWrapper2()
        {
            Global.Configuration = new Configuration {
                HouseholdSamplingRateOneInX = 1
            };

            PersonWrapper    person            = TestHelper.GetPersonWrapper();
            PersonDayWrapper personDay         = TestHelper.GetPersonDayWrapper(personWrapper: person, income: -1);
            CondensedParcel  originParcel      = new CondensedParcel();
            CondensedParcel  destinationParcel = new CondensedParcel();
            int destinationDepartureTime       = 1;
            int destinationPurpose             = Constants.Purpose.BUSINESS;
            int destinationArrivalTime         = 3;

            Global.Configuration.Coefficients_BaseCostCoefficientIncomeLevel     = 25000;
            Global.Configuration.Coefficients_StdDeviationTimeCoefficient_Other  = .75;
            Global.Configuration.Coefficients_MeanTimeCoefficient_Other          = .45;
            Global.Configuration.Coefficients_BaseCostCoefficientPerMonetaryUnit = 5;
            Tour        subtour = new Tour();
            TourWrapper tour    = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                  destinationDepartureTime, destinationPurpose);
            TourWrapper wrapper = new TourWrapper(subtour, tour);

            Assert.Equal(tour, wrapper.ParentTour);
            Assert.Equal(1261, wrapper.DestinationDepartureTime);
            Assert.Equal(1261, wrapper.DestinationArrivalTime);
            Assert.Equal(0, wrapper.DestinationPurpose);
            Assert.Equal(null, wrapper.DestinationParcel);
            Assert.Equal(null, wrapper.OriginParcel);
            Assert.Equal(person, wrapper.Person);
            Assert.Equal(personDay, wrapper.PersonDay);

            Assert.Equal(0, wrapper.DestinationAddressType);
            Assert.Equal(null, wrapper.DestinationArrivalBigPeriod);
            Assert.Equal(false, wrapper.DestinationModeAndTimeHaveBeenSimulated);
            Assert.Equal(0, wrapper.DestinationParcelId);
            Assert.Equal(0, wrapper.DestinationZoneKey);
            Assert.Equal(0, wrapper.EarliestOriginDepartureTime);
            Assert.Equal(0, wrapper.FullHalfTour1Sequence);
            Assert.Equal(0, wrapper.FullHalfTour2Sequence);
            Assert.Equal(null, wrapper.GetHalfTour(Constants.TourDirection.DESTINATION_TO_ORIGIN));
            Assert.Equal(null, wrapper.GetHalfTour(Constants.TourDirection.ORIGIN_TO_DESTINATION));
            Assert.Equal(false, wrapper.HalfTour1HasBeenSimulated);
            Assert.Equal(0, wrapper.HalfTour1Trips);
            Assert.Equal(false, wrapper.HalfTour2HasBeenSimulated);
            Assert.Equal(0, wrapper.HalfTour2Trips);
//			Assert.Equal(false, wrapper.HasSubtours);
            Assert.Equal(0, wrapper.IndicatedTravelTimeFromDestination);
            Assert.Equal(0, wrapper.IndicatedTravelTimeToDestination);


            Assert.Equal(false, wrapper.IsHomeBasedTour);
            Assert.Equal(false, wrapper.IsMissingData);
            Assert.Equal(false, wrapper.IsParkAndRideMode);
        }
예제 #2
0
파일: TourTest.cs 프로젝트: sfcta/DaySim
        public void TestTourWrapperTimeCoefficient()
        {
            Global.Configuration = new Configuration {
                HouseholdSamplingRateOneInX = 1
            };
            PersonWrapper    person            = TestHelper.GetPersonWrapper();
            PersonDayWrapper personDay         = TestHelper.GetPersonDayWrapper(personWrapper: person, income: -1);
            CondensedParcel  originParcel      = new CondensedParcel();
            CondensedParcel  destinationParcel = new CondensedParcel();
            int destinationDepartureTime       = 1;
            int destinationPurpose             = Constants.Purpose.SCHOOL;
            int destinationArrivalTime         = 3;

            Global.Configuration.Coefficients_BaseCostCoefficientIncomeLevel    = 25000;
            Global.Configuration.Coefficients_StdDeviationTimeCoefficient_Other = .75;
            Global.Configuration.Coefficients_MeanTimeCoefficient_Other         = .45;

            Global.Configuration.Coefficients_StdDeviationTimeCoefficient_Work   = .76;
            Global.Configuration.Coefficients_MeanTimeCoefficient_Work           = .46;
            Global.Configuration.Coefficients_BaseCostCoefficientPerMonetaryUnit = 5;
            TourWrapper wrapper = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                  destinationDepartureTime, destinationPurpose);

            Assert.Equal(.45, wrapper.TimeCoefficient);

            destinationPurpose = Constants.Purpose.WORK;
            wrapper            = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                 destinationDepartureTime, destinationPurpose);
            Assert.Equal(.46, wrapper.TimeCoefficient);

            Global.Configuration.UseRandomVotDistribution = true;
            wrapper = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                      destinationDepartureTime, destinationPurpose);
            Assert.Equal(.46, wrapper.TimeCoefficient);            //This constructor suppresses randomVOT


            person             = TestHelper.GetPersonWrapper();
            personDay          = TestHelper.GetPersonDayWrapper(personWrapper: person, income: -1);
            destinationPurpose = Constants.Purpose.BUSINESS;
            Tour tour = new Tour();

            wrapper = new TourWrapper(tour, personDay, destinationPurpose, false);
            Assert.Equal(-.001, wrapper.TimeCoefficient);            //This constructor does not suppress randomVOT

            Global.Configuration.Coefficients_StdDeviationTimeCoefficient_Work = .8;
            Global.Configuration.Coefficients_MeanTimeCoefficient_Work         = -.03;
            person             = TestHelper.GetPersonWrapper();
            personDay          = TestHelper.GetPersonDayWrapper(personWrapper: person, income: -1);
            destinationPurpose = Constants.Purpose.WORK;
            tour    = new Tour();
            wrapper = new TourWrapper(tour, personDay, destinationPurpose, false);
            Assert.Equal(-.0303002, Math.Round(wrapper.TimeCoefficient, 7));            //This constructor does not suppress randomVOT
        }
예제 #3
0
        public static TourWrapper GetTourWrapper()
        {
            PersonWrapper    person            = TestHelper.GetPersonWrapper();
            PersonDayWrapper personDay         = TestHelper.GetPersonDayWrapper(personWrapper: person, income: -1);
            CondensedParcel  originParcel      = new CondensedParcel();
            CondensedParcel  destinationParcel = new CondensedParcel();
            int destinationDepartureTime       = 1;
            int destinationPurpose             = Constants.Purpose.BUSINESS;
            int destinationArrivalTime         = 3;

            Global.Configuration.Coefficients_BaseCostCoefficientIncomeLevel     = 25000;
            Global.Configuration.Coefficients_StdDeviationTimeCoefficient_Other  = .75;
            Global.Configuration.Coefficients_MeanTimeCoefficient_Other          = .45;
            Global.Configuration.Coefficients_BaseCostCoefficientPerMonetaryUnit = 5;
            TourWrapper wrapper = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                  destinationDepartureTime, destinationPurpose);

            return(wrapper);
        }
예제 #4
0
        public void TestAutoOwnershipModel()
        {
            Global.Configuration = new Configuration {
                NProcessors = 1
            };
            ParallelUtility.Init();
            Global.Configuration.AutoOwnershipModelCoefficients = "c:\\a.txt";
            ParallelUtility.Register(Thread.CurrentThread.ManagedThreadId, 0);
            List <IPerson> persons = new List <IPerson> {
                new Person()
            };
            CondensedParcel  residenceParcel = new CondensedParcel();
            HouseholdWrapper household       = TestHelper.GetHouseholdWrapper(persons, residenceParcel: residenceParcel);

            household.Init();
            AutoOwnershipModel model = new AutoOwnershipModel();

            model.RunInitialize(new TestCoefficientsReader());
            model.Run(household);
        }
예제 #5
0
        public void TestAutoOwnershipModelNullHouseholdException()
        {
            Global.Configuration = new Configuration {
                NProcessors = 1
            };
            ParallelUtility.Init();
            Global.Configuration.AutoOwnershipModelCoefficients = "c:\\a.txt";
            ParallelUtility.Register(Thread.CurrentThread.ManagedThreadId, 0);
            List <IPerson> persons = new List <IPerson> {
                new Person()
            };
            CondensedParcel  residenceParcel = new CondensedParcel();
            HouseholdWrapper household       = TestHelper.GetHouseholdWrapper(persons, residenceParcel: residenceParcel);

            household.Init();
            AutoOwnershipModel model = new AutoOwnershipModel();

            model.RunInitialize(new TestCoefficientsReader());
            ArgumentNullException ex = Assert.Throws <ArgumentNullException>(() => model.Run(null));

            Assert.Equal("Value cannot be null.\r\nParameter name: household", ex.Message);
        }
예제 #6
0
파일: TourTest.cs 프로젝트: sfcta/DaySim
        public void TestTourWrapperCostCoefficient()
        {
            Global.Configuration = new Configuration {
                HouseholdSamplingRateOneInX = 1
            };
            PersonWrapper    person            = TestHelper.GetPersonWrapper();
            PersonDayWrapper personDay         = TestHelper.GetPersonDayWrapper(personWrapper: person, income: -1);
            CondensedParcel  originParcel      = new CondensedParcel();
            CondensedParcel  destinationParcel = new CondensedParcel();
            int destinationDepartureTime       = 1;
            int destinationPurpose             = Constants.Purpose.BUSINESS;
            int destinationArrivalTime         = 3;

            Global.Configuration.Coefficients_BaseCostCoefficientIncomeLevel     = 25000;
            Global.Configuration.Coefficients_StdDeviationTimeCoefficient_Other  = .75;
            Global.Configuration.Coefficients_MeanTimeCoefficient_Other          = .45;
            Global.Configuration.Coefficients_BaseCostCoefficientPerMonetaryUnit = 5;
            TourWrapper wrapper = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                  destinationDepartureTime, destinationPurpose);

            Assert.Equal(5, wrapper.CostCoefficient);

            Global.Configuration.Coefficients_CostCoefficientIncomePower_Other = 2;
            wrapper = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                      destinationDepartureTime, destinationPurpose);
            Assert.Equal(5, wrapper.CostCoefficient);

            person    = TestHelper.GetPersonWrapper(income: 50000);
            personDay = TestHelper.GetPersonDayWrapper(income: 50000);
            wrapper   = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                        destinationDepartureTime, destinationPurpose);
            Assert.Equal(1.25, wrapper.CostCoefficient);


            Global.Configuration.Coefficients_CostCoefficientIncomePower_Other = 8;
            wrapper = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                      destinationDepartureTime, destinationPurpose);
            Assert.Equal(5.0 / 256.0, wrapper.CostCoefficient);
        }
예제 #7
0
파일: PersonTest.cs 프로젝트: sfcta/DaySim
        public void TestPersonWrapper()
        {
            Global.Configuration = new Configuration {
                HouseholdSamplingRateOneInX = 1
            };
            int             autoDistanceToUsualSchool = 1;
            int             autoDistanceToUsualWork   = 2;
            int             autoTimeToUsualSchool     = 3;
            int             autoTimeToUsualWork       = 4;
            int             gender                       = 2;
            int             id                           = 99;
            int             paperDiary                   = 5;
            int             payParkingAtWorkplace        = 1;
            int             personType                   = Constants.PersonType.CHILD_UNDER_5;
            int             proxyResponse                = 6;
            int             sequence                     = 7;
            int             transitPassOwnershipFlag     = 1;
            int             usualArrivalPeriodToWork     = 2;
            int             usualDeparturePeriodFromWork = 3;
            int             usualModeToWork              = 4;
            CondensedParcel usualSchoolParcel            = new CondensedParcel();
            int             usualSchoolParcelId          = 5;
            int             usualSchoolZoneKey           = 6;
            CondensedParcel usualWorkParcel              = new CondensedParcel();
            int             usualWorkParcelId            = 7;
            int             usualWorkZoneKey             = 8;
            bool            worksAtHome                  = false;

            List <IPerson> persons = new List <IPerson>()
            {
                new Person()
                {
                    AutoDistanceToUsualSchool = autoDistanceToUsualSchool,
                    AutoDistanceToUsualWork   = autoDistanceToUsualWork,
                    AutoTimeToUsualSchool     = autoTimeToUsualSchool,
                    AutoTimeToUsualWork       = autoTimeToUsualWork,
                    Gender                       = gender,
                    Id                           = id,
                    PaperDiary                   = paperDiary,
                    PaidParkingAtWorkplace       = payParkingAtWorkplace,
                    PersonType                   = personType,
                    ProxyResponse                = proxyResponse,
                    Sequence                     = sequence,
                    TransitPassOwnership         = transitPassOwnershipFlag,
                    UsualArrivalPeriodToWork     = usualArrivalPeriodToWork,
                    UsualDeparturePeriodFromWork = usualDeparturePeriodFromWork,
                    UsualModeToWork              = usualModeToWork,
                    UsualSchoolParcelId          = usualSchoolParcelId,
                    UsualSchoolZoneKey           = usualSchoolZoneKey,
                    UsualWorkParcelId            = usualWorkParcelId,
                    UsualWorkZoneKey             = usualWorkZoneKey,
                }
            };
            HouseholdWrapper household = TestHelper.GetHouseholdWrapper(persons);
            PersonWrapper    wrapper   = new PersonWrapper(persons[0], household)
            {
                UsualSchoolParcel = usualSchoolParcel, UsualWorkParcel = usualWorkParcel
            };                                                                                                                                                     //TestHelper.GetPersonWrapper(age: 37, personType: Constants.PersonType.FULL_TIME_WORKER,

            //                          gender: 1, workerType: 1, studentType: 0, persons:persons);
            Assert.Equal(autoDistanceToUsualSchool, wrapper.AutoDistanceToUsualSchool);
            Assert.Equal(autoDistanceToUsualWork, wrapper.AutoDistanceToUsualWork);
            Assert.Equal(autoTimeToUsualSchool, wrapper.AutoTimeToUsualSchool);
            Assert.Equal(autoTimeToUsualWork, wrapper.AutoTimeToUsualWork);
            Assert.Equal(gender, wrapper.Gender);
            Assert.Equal(household, wrapper.Household);
            Assert.Equal(id, wrapper.Id);
            Assert.Equal(paperDiary, wrapper.PaperDiary);
            Assert.Equal(payParkingAtWorkplace, wrapper.PayToParkAtWorkplaceFlag);
            Assert.Equal(personType, wrapper.PersonType);
            Assert.Equal(proxyResponse, wrapper.ProxyResponse);
            Assert.Equal(sequence, wrapper.Sequence);

            Assert.Equal(transitPassOwnershipFlag, wrapper.TransitPassOwnershipFlag);
            Assert.Equal(usualArrivalPeriodToWork, wrapper.UsualArrivalPeriodToWork);
            Assert.Equal(usualDeparturePeriodFromWork, wrapper.UsualDeparturePeriodFromWork);
            Assert.Equal(usualModeToWork, wrapper.UsualModeToWork);
            Assert.Equal(usualSchoolParcel, wrapper.UsualSchoolParcel);
            Assert.Equal(usualSchoolParcelId, wrapper.UsualSchoolParcelId);
            Assert.Equal(usualSchoolZoneKey, wrapper.UsualSchoolZoneKey);
            Assert.Equal(usualWorkParcel, wrapper.UsualWorkParcel);
            Assert.Equal(usualWorkParcelId, wrapper.UsualWorkParcelId);
            Assert.Equal(usualWorkZoneKey, wrapper.UsualWorkZoneKey);
            Assert.Equal(worksAtHome, wrapper.WorksAtHome);
        }
예제 #8
0
파일: TripTest.cs 프로젝트: sfcta/DaySim
        public void TestTripWrapper()
        {
            Global.Configuration = new Configuration();
            Global.Configuration.HouseholdSamplingRateOneInX = 256;

            int    id                     = 1;
            int    tourId                 = 2;
            int    householdId            = 3;
            int    personSequence         = 4;
            int    day                    = 5;
            int    tourSequence           = 6;
            int    halfTourId             = 7;
            int    sequence               = 8;
            int    surveyTripSequence     = 9;
            int    originPurpose          = 10;
            int    destinationPurpose     = 11;
            int    originAddressType      = 12;
            int    destinationAddressType = 13;
            int    originParcelId         = 14;
            int    originZoneKey          = 15;
            int    destinationParcelId    = 16;
            int    destinationZoneKey     = 17;
            int    mode                   = 18;
            int    pathType               = 19;
            int    driverType             = 20;
            int    departureTime          = 21;
            int    arrivalTime            = 22;
            int    activityEndTime        = 23;
            double travelTime             = 24.01;
            double travelCost             = 25.01;
            double travelDistance         = 26.01;
            double valueOfTime            = 27.01;
            double expansionFactor        = 28.01;

            Trip trip = new Trip
            {
                ActivityEndTime        = activityEndTime,
                ArrivalTime            = arrivalTime,
                Day                    = day,
                DepartureTime          = departureTime,
                DestinationAddressType = destinationAddressType,
                DestinationParcelId    = destinationParcelId,
                DestinationPurpose     = destinationPurpose,
                DestinationZoneKey     = destinationZoneKey,
                DriverType             = driverType,
                ExpansionFactor        = expansionFactor,
                HalfTour               = halfTourId,
                HouseholdId            = householdId,
                Id   = id,
                Mode = mode,
                OriginAddressType  = originAddressType,
                OriginParcelId     = originParcelId,
                OriginPurpose      = originPurpose,
                OriginZoneKey      = originZoneKey,
                PathType           = pathType,
                PersonSequence     = personSequence,
                Sequence           = sequence,
                SurveyTripSequence = surveyTripSequence,
                TourId             = tourId,
                TourSequence       = tourSequence,
                TravelCost         = travelCost,
                TravelDistance     = travelDistance,
                TravelTime         = travelTime,
                ValueOfTime        = valueOfTime,
            };

            TourWrapper tour = TestHelper.GetTourWrapper();

            TourWrapper.HalfTour halfTour = new TourWrapper.HalfTour(tour);
            TripWrapper          wrapper  = new TripWrapper(trip, tour, halfTour);

            Assert.Equal(id, wrapper.Id);
            Assert.Equal(tour, wrapper.Tour);
            Assert.Equal(tour.Household, wrapper.Household);
            Assert.Equal(tour.Person, wrapper.Person);
            Assert.Equal(day, wrapper.Day);
            Assert.Equal(halfTour, wrapper.HalfTour);
            Assert.Equal(sequence, wrapper.Sequence);
            Assert.Equal(originPurpose, wrapper.OriginPurpose);
            Assert.Equal(destinationPurpose, wrapper.DestinationPurpose);
            Assert.Equal(destinationAddressType, wrapper.DestinationAddressType);
            Assert.Equal(originParcelId, wrapper.OriginParcelId);
            Assert.Equal(originZoneKey, wrapper.OriginZoneKey);
            Assert.Equal(destinationParcelId, wrapper.DestinationParcelId);
            Assert.Equal(destinationZoneKey, wrapper.DestinationZoneKey);
            Assert.Equal(mode, wrapper.Mode);
            Assert.Equal(pathType, wrapper.PathType);
            Assert.Equal(driverType, wrapper.DriverType);
            Assert.Equal(departureTime.ToMinutesAfter3AM(), wrapper.DepartureTime);
            Assert.Equal(arrivalTime.ToMinutesAfter3AM(), wrapper.ArrivalTime);
            Assert.Equal(activityEndTime.ToMinutesAfter3AM(), wrapper.ActivityEndTime);
            Assert.Equal(valueOfTime, wrapper.ValueOfTime);

            int newDepartureTime = 100;

            wrapper.DepartureTime = newDepartureTime;
            Assert.Equal(newDepartureTime.ToMinutesAfterMidnight().ToMinutesAfter3AM(), wrapper.DepartureTime);

            Assert.Equal(0, wrapper.ArrivalTimeLimit);

            wrapper.ArrivalTimeLimit = 2;
            Assert.Equal(2, wrapper.ArrivalTimeLimit);

            Assert.Equal(0, wrapper.EarliestDepartureTime);
            wrapper.EarliestDepartureTime = 2;
            Assert.Equal(2, wrapper.EarliestDepartureTime);

            Assert.Equal(0, wrapper.LatestDepartureTime);
            wrapper.LatestDepartureTime = 2;
            Assert.Equal(2, wrapper.LatestDepartureTime);


            Assert.Equal(null, wrapper.DestinationParcel);
            CondensedParcel destinationParcel = new CondensedParcel();

            wrapper.DestinationParcel = destinationParcel;
            Assert.Equal(destinationParcel, wrapper.DestinationParcel);


            Assert.Equal(false, wrapper.IsMissingData);
            wrapper.IsMissingData = true;
            Assert.Equal(true, wrapper.IsMissingData);

            /*TripModeImpedance[] impedances = wrapper.GetTripModeImpedances();
             * wrapper.HUpdateTripValues();
             * wrapper.SetActivityEndTime();
             * wrapper.SetDriverOrPassenger();
             * wrapper.SetOriginAddressType();
             * wrapper.SetTourSequence();
             * wrapper.SetTripValueOfTime();
             * wrapper.Invert();
             */
        }
예제 #9
0
        public static HouseholdWrapper GetHouseholdWrapper(List <IPerson> persons, int size            = 16, int vehiclesAvailable = 12,
                                                           double expansionFactor                      = .67,
                                                           double fractionWorkersWithJobsOutsideRegion = .25,
                                                           int income                      = 25000,
                                                           int id                          = 3,
                                                           Household household             = null,
                                                           CondensedParcel residenceParcel = null)
        {
            ChoiceModelFactory.Parcels = new Dictionary <int, CondensedParcel>();
            int residenceParcelId = 99;

            ChoiceModelFactory.Parcels.Add(residenceParcelId, residenceParcel == null ? new CondensedParcel() : residenceParcel);


            int workers            = 6;
            int fulltimeWorkers    = 4;
            int partTimeWorkers    = 2;
            int retiredAdults      = 3;
            int otherAdults        = 1;
            int collegeStudents    = 0;
            int highSchoolStudents = 1;
            int kidsBetween5And15  = 1;
            int kidsBetween0And4   = 1;
            int ownOrRent          = 1;
            int residenceType      = 2;
            int residenceZoneId    = 4;
            int residenceZoneKey   = 5;
            int sampleType         = 7;

            if (household == null)
            {
                household = new Household
                {
                    CollegeStudents = collegeStudents,
                    ExpansionFactor = expansionFactor,
                    FractionWorkersWithJobsOutsideRegion =
                        fractionWorkersWithJobsOutsideRegion,
                    FulltimeWorkers    = fulltimeWorkers,
                    HighSchoolStudents = highSchoolStudents,
                    Income             = income,
                    Id = id,
                    KidsBetween0And4  = kidsBetween0And4,
                    KidsBetween5And15 = kidsBetween5And15,
                    OtherAdults       = otherAdults,
                    OwnOrRent         = ownOrRent,
                    PartTimeWorkers   = partTimeWorkers,
                    ResidenceParcelId = residenceParcelId,
                    ResidenceType     = residenceType,
                    ResidenceZoneId   = residenceZoneId,
                    ResidenceZoneKey  = residenceZoneKey,
                    RetiredAdults     = retiredAdults,
                    SampleType        = sampleType,
                    Size = size,
                    VehiclesAvailable = vehiclesAvailable,
                    Workers           = workers
                }
            }
            ;

            HouseholdWrapper wrapper = new HouseholdWrapper(household)
            {
                PersonPersister            = new TestPersonPersister(persons),
                PersonWrapperCreator       = new TestPersonWrapperCreator(),
                HouseholdDayPersister      = new TestHouseholdDayPersister(),
                HouseholdDayWrapperCreator = new TestHouseholdDayWrapperCreator(),
                HouseholdPersister         = new TestHouseholdPersister(),
            };

            return(wrapper);
        }
예제 #10
0
파일: TourTest.cs 프로젝트: sfcta/DaySim
        public void TestTourWrapperMode()
        {
            Global.Configuration = new Configuration {
                HouseholdSamplingRateOneInX = 1
            };

            PersonWrapper    person            = TestHelper.GetPersonWrapper();
            PersonDayWrapper personDay         = TestHelper.GetPersonDayWrapper(personWrapper: person, income: -1);
            CondensedParcel  originParcel      = new CondensedParcel();
            CondensedParcel  destinationParcel = new CondensedParcel();
            int destinationDepartureTime       = 1;
            int destinationPurpose             = Constants.Purpose.BUSINESS;
            int destinationArrivalTime         = 3;

            Global.Configuration.Coefficients_BaseCostCoefficientIncomeLevel     = 25000;
            Global.Configuration.Coefficients_StdDeviationTimeCoefficient_Other  = .75;
            Global.Configuration.Coefficients_MeanTimeCoefficient_Other          = .45;
            Global.Configuration.Coefficients_BaseCostCoefficientPerMonetaryUnit = 5;
            TourWrapper wrapper = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                  destinationDepartureTime, destinationPurpose);

            Assert.Equal(false, wrapper.IsAnAutoMode);
            Assert.Equal(false, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(false, wrapper.IsHov2Mode);
            Assert.Equal(false, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(false, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.BIKE;
            Assert.Equal(false, wrapper.IsAnAutoMode);
            Assert.Equal(false, wrapper.IsAnHovMode);
            Assert.Equal(true, wrapper.IsBikeMode);
            Assert.Equal(false, wrapper.IsHov2Mode);
            Assert.Equal(false, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(true, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.HOV2;
            Assert.Equal(true, wrapper.IsAnAutoMode);
            Assert.Equal(true, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(true, wrapper.IsHov2Mode);
            Assert.Equal(false, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(false, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.HOV3;
            Assert.Equal(true, wrapper.IsAnAutoMode);
            Assert.Equal(true, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(false, wrapper.IsHov2Mode);
            Assert.Equal(true, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(false, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.HOVDRIVER;
            Assert.Equal(true, wrapper.IsAnAutoMode);
            Assert.Equal(true, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(true, wrapper.IsHov2Mode);
            Assert.Equal(false, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(false, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.HOVPASSENGER;
            Assert.Equal(true, wrapper.IsAnAutoMode);
            Assert.Equal(true, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(false, wrapper.IsHov2Mode);
            Assert.Equal(true, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(false, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.NONE;
            Assert.Equal(false, wrapper.IsAnAutoMode);
            Assert.Equal(false, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(false, wrapper.IsHov2Mode);
            Assert.Equal(false, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(false, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.OTHER;
            Assert.Equal(false, wrapper.IsAnAutoMode);
            Assert.Equal(false, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(false, wrapper.IsHov2Mode);
            Assert.Equal(false, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(false, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.PARK_AND_RIDE;
            Assert.Equal(false, wrapper.IsAnAutoMode);
            Assert.Equal(false, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(false, wrapper.IsHov2Mode);
            Assert.Equal(false, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(false, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.SCHOOL_BUS;
            Assert.Equal(false, wrapper.IsAnAutoMode);
            Assert.Equal(false, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(false, wrapper.IsHov2Mode);
            Assert.Equal(false, wrapper.IsHov3Mode);
            Assert.Equal(true, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(false, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.SOV;
            Assert.Equal(true, wrapper.IsAnAutoMode);
            Assert.Equal(false, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(false, wrapper.IsHov2Mode);
            Assert.Equal(false, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(true, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(false, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.TRANSIT;
            Assert.Equal(false, wrapper.IsAnAutoMode);
            Assert.Equal(false, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(false, wrapper.IsHov2Mode);
            Assert.Equal(false, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(true, wrapper.IsTransitMode);
            Assert.Equal(false, wrapper.IsWalkMode);
            Assert.Equal(false, wrapper.IsWalkOrBikeMode);

            wrapper.Mode = Constants.Mode.WALK;
            Assert.Equal(false, wrapper.IsAnAutoMode);
            Assert.Equal(false, wrapper.IsAnHovMode);
            Assert.Equal(false, wrapper.IsBikeMode);
            Assert.Equal(false, wrapper.IsHov2Mode);
            Assert.Equal(false, wrapper.IsHov3Mode);
            Assert.Equal(false, wrapper.IsSchoolBusMode);
            Assert.Equal(false, wrapper.IsSovMode);
            Assert.Equal(false, wrapper.IsTransitMode);
            Assert.Equal(true, wrapper.IsWalkMode);
            Assert.Equal(true, wrapper.IsWalkOrBikeMode);
        }
예제 #11
0
파일: TourTest.cs 프로젝트: sfcta/DaySim
        public void TestTourWrapperPurpose()
        {
            Global.Configuration = new Configuration {
                HouseholdSamplingRateOneInX = 1
            };

            PersonWrapper    person            = TestHelper.GetPersonWrapper();
            PersonDayWrapper personDay         = TestHelper.GetPersonDayWrapper(personWrapper: person, income: -1);
            CondensedParcel  originParcel      = new CondensedParcel();
            CondensedParcel  destinationParcel = new CondensedParcel();
            int destinationDepartureTime       = 1;
            int destinationPurpose             = Constants.Purpose.BUSINESS;
            int destinationArrivalTime         = 3;

            Global.Configuration.Coefficients_BaseCostCoefficientIncomeLevel     = 25000;
            Global.Configuration.Coefficients_StdDeviationTimeCoefficient_Other  = .75;
            Global.Configuration.Coefficients_MeanTimeCoefficient_Other          = .45;
            Global.Configuration.Coefficients_StdDeviationTimeCoefficient_Work   = .76;
            Global.Configuration.Coefficients_MeanTimeCoefficient_Work           = .46;
            Global.Configuration.Coefficients_BaseCostCoefficientPerMonetaryUnit = 5;
            TourWrapper wrapper = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                  destinationDepartureTime, destinationPurpose);

            Assert.Equal(false, wrapper.IsEscortPurpose);
            Assert.Equal(false, wrapper.IsMealPurpose);
            Assert.Equal(false, wrapper.IsMedicalPurpose);
            Assert.Equal(false, wrapper.IsPersonalBusinessOrMedicalPurpose);
            Assert.Equal(false, wrapper.IsRecreationPurpose);
            Assert.Equal(false, wrapper.IsSchoolPurpose);
            Assert.Equal(false, wrapper.IsShoppingPurpose);
            Assert.Equal(false, wrapper.IsSocialOrRecreationPurpose);
            Assert.Equal(false, wrapper.IsSocialPurpose);
            Assert.Equal(false, wrapper.IsWorkPurpose);

            destinationPurpose = Constants.Purpose.ESCORT;
            wrapper            = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                 destinationDepartureTime, destinationPurpose);
            Assert.Equal(true, wrapper.IsEscortPurpose);
            Assert.Equal(false, wrapper.IsMealPurpose);
            Assert.Equal(false, wrapper.IsMedicalPurpose);
            Assert.Equal(false, wrapper.IsPersonalBusinessOrMedicalPurpose);
            Assert.Equal(false, wrapper.IsRecreationPurpose);
            Assert.Equal(false, wrapper.IsSchoolPurpose);
            Assert.Equal(false, wrapper.IsShoppingPurpose);
            Assert.Equal(false, wrapper.IsSocialOrRecreationPurpose);
            Assert.Equal(false, wrapper.IsSocialPurpose);
            Assert.Equal(false, wrapper.IsWorkPurpose);

            destinationPurpose = Constants.Purpose.MEAL;
            wrapper            = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                 destinationDepartureTime, destinationPurpose);
            Assert.Equal(false, wrapper.IsEscortPurpose);
            Assert.Equal(true, wrapper.IsMealPurpose);
            Assert.Equal(false, wrapper.IsMedicalPurpose);
            Assert.Equal(false, wrapper.IsPersonalBusinessOrMedicalPurpose);
            Assert.Equal(false, wrapper.IsRecreationPurpose);
            Assert.Equal(false, wrapper.IsSchoolPurpose);
            Assert.Equal(false, wrapper.IsShoppingPurpose);
            Assert.Equal(false, wrapper.IsSocialOrRecreationPurpose);
            Assert.Equal(false, wrapper.IsSocialPurpose);
            Assert.Equal(false, wrapper.IsWorkPurpose);

            destinationPurpose = Constants.Purpose.MEDICAL;
            wrapper            = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                 destinationDepartureTime, destinationPurpose);
            Assert.Equal(false, wrapper.IsEscortPurpose);
            Assert.Equal(false, wrapper.IsMealPurpose);
            Assert.Equal(true, wrapper.IsMedicalPurpose);
            Assert.Equal(true, wrapper.IsPersonalBusinessOrMedicalPurpose);
            Assert.Equal(false, wrapper.IsRecreationPurpose);
            Assert.Equal(false, wrapper.IsSchoolPurpose);
            Assert.Equal(false, wrapper.IsShoppingPurpose);
            Assert.Equal(false, wrapper.IsSocialOrRecreationPurpose);
            Assert.Equal(false, wrapper.IsSocialPurpose);
            Assert.Equal(false, wrapper.IsWorkPurpose);

            destinationPurpose = Constants.Purpose.PERSONAL_BUSINESS;
            wrapper            = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                 destinationDepartureTime, destinationPurpose);
            Assert.Equal(false, wrapper.IsEscortPurpose);
            Assert.Equal(false, wrapper.IsMealPurpose);
            Assert.Equal(false, wrapper.IsMedicalPurpose);
            Assert.Equal(true, wrapper.IsPersonalBusinessOrMedicalPurpose);
            Assert.Equal(false, wrapper.IsRecreationPurpose);
            Assert.Equal(false, wrapper.IsSchoolPurpose);
            Assert.Equal(false, wrapper.IsShoppingPurpose);
            Assert.Equal(false, wrapper.IsSocialOrRecreationPurpose);
            Assert.Equal(false, wrapper.IsSocialPurpose);
            Assert.Equal(false, wrapper.IsWorkPurpose);

            destinationPurpose = Constants.Purpose.RECREATION;
            wrapper            = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                 destinationDepartureTime, destinationPurpose);
            Assert.Equal(false, wrapper.IsEscortPurpose);
            Assert.Equal(false, wrapper.IsMealPurpose);
            Assert.Equal(false, wrapper.IsMedicalPurpose);
            Assert.Equal(false, wrapper.IsPersonalBusinessOrMedicalPurpose);
            Assert.Equal(true, wrapper.IsRecreationPurpose);
            Assert.Equal(false, wrapper.IsSchoolPurpose);
            Assert.Equal(false, wrapper.IsShoppingPurpose);
            Assert.Equal(true, wrapper.IsSocialOrRecreationPurpose);
            Assert.Equal(false, wrapper.IsSocialPurpose);
            Assert.Equal(false, wrapper.IsWorkPurpose);

            destinationPurpose = Constants.Purpose.SCHOOL;
            wrapper            = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                 destinationDepartureTime, destinationPurpose);
            Assert.Equal(false, wrapper.IsEscortPurpose);
            Assert.Equal(false, wrapper.IsMealPurpose);
            Assert.Equal(false, wrapper.IsMedicalPurpose);
            Assert.Equal(false, wrapper.IsPersonalBusinessOrMedicalPurpose);
            Assert.Equal(false, wrapper.IsRecreationPurpose);
            Assert.Equal(true, wrapper.IsSchoolPurpose);
            Assert.Equal(false, wrapper.IsShoppingPurpose);
            Assert.Equal(false, wrapper.IsSocialOrRecreationPurpose);
            Assert.Equal(false, wrapper.IsSocialPurpose);
            Assert.Equal(false, wrapper.IsWorkPurpose);

            destinationPurpose = Constants.Purpose.SHOPPING;
            wrapper            = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                 destinationDepartureTime, destinationPurpose);
            Assert.Equal(false, wrapper.IsEscortPurpose);
            Assert.Equal(false, wrapper.IsMealPurpose);
            Assert.Equal(false, wrapper.IsMedicalPurpose);
            Assert.Equal(false, wrapper.IsPersonalBusinessOrMedicalPurpose);
            Assert.Equal(false, wrapper.IsRecreationPurpose);
            Assert.Equal(false, wrapper.IsSchoolPurpose);
            Assert.Equal(true, wrapper.IsShoppingPurpose);
            Assert.Equal(false, wrapper.IsSocialOrRecreationPurpose);
            Assert.Equal(false, wrapper.IsSocialPurpose);
            Assert.Equal(false, wrapper.IsWorkPurpose);

            destinationPurpose = Constants.Purpose.SOCIAL;
            wrapper            = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                 destinationDepartureTime, destinationPurpose);
            Assert.Equal(false, wrapper.IsEscortPurpose);
            Assert.Equal(false, wrapper.IsMealPurpose);
            Assert.Equal(false, wrapper.IsMedicalPurpose);
            Assert.Equal(false, wrapper.IsPersonalBusinessOrMedicalPurpose);
            Assert.Equal(false, wrapper.IsRecreationPurpose);
            Assert.Equal(false, wrapper.IsSchoolPurpose);
            Assert.Equal(false, wrapper.IsShoppingPurpose);
            Assert.Equal(true, wrapper.IsSocialOrRecreationPurpose);
            Assert.Equal(true, wrapper.IsSocialPurpose);
            Assert.Equal(false, wrapper.IsWorkPurpose);

            destinationPurpose = Constants.Purpose.WORK;
            wrapper            = new TourWrapper(person, personDay, originParcel, destinationParcel, destinationArrivalTime,
                                                 destinationDepartureTime, destinationPurpose);
            Assert.Equal(false, wrapper.IsEscortPurpose);
            Assert.Equal(false, wrapper.IsMealPurpose);
            Assert.Equal(false, wrapper.IsMedicalPurpose);
            Assert.Equal(false, wrapper.IsPersonalBusinessOrMedicalPurpose);
            Assert.Equal(false, wrapper.IsRecreationPurpose);
            Assert.Equal(false, wrapper.IsSchoolPurpose);
            Assert.Equal(false, wrapper.IsShoppingPurpose);
            Assert.Equal(false, wrapper.IsSocialOrRecreationPurpose);
            Assert.Equal(false, wrapper.IsSocialPurpose);
            Assert.Equal(true, wrapper.IsWorkPurpose);
        }